三(5)、JSP九大内置对象——session
来源:互联网 发布:内存 知乎 编辑:程序博客网 时间:2024/06/15 23:25
- session
- 一session几个常用例子
- 二基本方法
- 三设置销毁时间
- 四session的生命周期
- 五session几个常用的方法
- 六session的一个例子
- session
session
每个用户的一次会话就是session。
session对象是客户端与服务器的一次会话,在Web中session表示从进入网站到关闭网站的这段时间。当客户访问一个服务器时,客户会在服务器上的几个页面互相切换,这时服务器时通过session对象来知道这是同一个用户
一、session几个常用例子
session通常的用处:
- 保存登用户信息
- 将某些数据存储在session中,这样用户可以访问这个网站的多个页面
- 防止用户登入到某个页面中(重)
- 网上商城中的购物车
二、基本方法
<!--session的唯一标识符 --><%= session.getId() %><!-- session的创建时间--><%= new java.util.Date(session.getCreationTime()).toString()%><!--session的最后访问时间--><%= new java.util.Date(session.getLastAccessedTime()).toString() %><!--session的有效时间--><%= session.getMaxInactiveInterval()%><!--设置session的有效时间--><% session.setMaxInactiveInterval(10);//时间为10秒过期%>
<!--session的创建时间--><%//设置时间格式SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//实例话时间对象Date d=new Date(session.getCreationTime());%>//format()格式化session创建时间:<%=sdf.format(d) %>
<!--获取session中所有属性--><% String [] names=session.getValueNames(); for(int i=0;i<names.length;i++) { out.println(names[i]+" "); }%>
三、设置销毁时间
在项目里的WEB-INF中的web-xml中设置
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list><!-- 设置session销毁时间(分钟) --> <session-config> <session-timeout>10</session-timeout> </session-config></web-app>
四、session的生命周期
(1)创建:
当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个session ID,每次客户端向服务器端发送请求时,都会将此session ID携带过去,服务端会对此session ID进行校验。
(2)活动:
某次会话当中通过超链接打开的新页面属于同一次会话,或者只要当前会话页面没有关闭,重新打开新的浏览器窗口访问同一项目资源时,还是属于同一次会话。除非本次会话的所有页面都关闭后在重新访问某个jsp或者servlet将会创建新的会话,但是注意是注意原有会话还存在,只是这个旧的session ID仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端校验。
(3)销毁session
第一:调用session.invalidate()
第二:session过期
第三:服务器重新启动
五、session几个常用的方法
1.内容保存在session中,同时在其他页面中获取session内容
<!--将内容“我们”保存在HttpSession中的“a”--><% session.setAttribute("session_name","session_value")session.setAttribute("a",我们);%><!--从HttpSession中获取“a”的值--><% session.getAttribute("a");%>
2.销毁session的内容 (重)
<% session.invalidate();%>
由于我们保存了session的内容,当我们要退出的时候必须销毁所有保存在session的信息,这时候用到session.invalidate( )
六、session的一个例子
1.创建login.jsp用于登入
<body> <form action="do_login.jsp" method="post"> username:<input type="text" name="username"><br> passward:<input type="text" name="passward"><br> <input type="submit" name="提交"> <input type="reset" name="重置"> </form> </body>
通过post方法提交信息到do_login.jsp中
2.创建do_login.jsp处理信息
<% String username=request.getParameter("username"); String passward=request.getParameter("passward"); if(username!=null&&passward!=null){ session.setAttribute("username",username); response.setHeader("refresh","1;URL=welcome.jsp"); }%>
通过request.getParameter( )方法获取提交“username”“passward”信息,通过session.setAttribute( )将username保存在session中,通过response.setHeader( )自动刷新跳转到welcome.jsp中
3.创建welcome
<%if(session.getAttribute("username")!=null){ %> 欢迎:<%= session.getAttribute("username") %>用户 <a href="loginout.jsp">注销</a> <%}else{ %> 请登入:<a href="login.jsp">登入</a> <%} %> <%if(session.isNew()) {%> 欢迎新用户 <%} else{%> 欢迎老用户 <%} %> </body>
通过session.getAttribute(“username”) 获取到username信息。注销是跳转到loginout.jsp
4.创建loginout.jsp将session内容销毁
<%session.invalidate(); response.setHeader("refresh","1;URL=welcome.jsp");%>
通过session.invalidate()销毁session,在跳转到welcome.jsp中判断是否还有session内容
- 三(5)、JSP九大内置对象——session
- JSP九大内置对象之session
- JSP——九大内置对象
- 三(2)、JSP九大内置对象——request(重要)
- 三(4)、JSP九大内置对象——response
- 三(6)、JSP九大内置对象——application
- 三(7)、JSP九大内置对象——config
- 三(8)、JSP九大内置对象——page
- 三(9)、JSP九大内置对象——pageContext
- 三(3)、JSP九大内置对象——exception
- 三(1)、JSP九大内置对象——out
- JSP九大内置对象(三)
- JSP内置对象(三)——session对象
- JSP九大内置对象详解(三)
- jsp九大内置对象之session对象
- jsp九大内置对象(二)
- JSP——基础语法和九大内置对象
- JSP学习——九大内置对象
- python学习笔记之002.py
- 服务器杂谈
- Java多线程之对象锁,问:到底是哪个对象?
- WindowsService监听端口
- spring源码(10)从缓存中获取到单例bean的后续操作(对FactoryBean的处理)
- 三(5)、JSP九大内置对象——session
- jq:对input框的一些操作,单选框,多选框
- hbuilder常用快捷键
- Java-I/O流
- Python可视化seaborn练习题
- 训练总结8.10
- Hue与hadoop的集成配置
- 多校6 HDU-6106 Classes 容斥原理
- python学习笔记之003.py