本篇讲述JSP中session的相关知识和管理方法;html
在web中经常使用的两种用户信息管理方式:cookie 和 session.web
cookie是保存在用户客户端的数据,用于避免每次发送http请求时,连带过多的数据,形成复杂化。因此Cookie保存在客户端中,根据服务器端的要求,保存特定的内容,在每次http请求后,自动添加必定的内容。浏览器
session是保存在服务器端的数据,用于验证几回请求是否属于同一会话,在同一会话中,会避免进行没必要要的验证,保证用户的操做连贯性。tomcat
合理的使用session与cookie都会保证web应用的高能够用性,以及良好的用户体验。可是没必要要的操做也会影响到web安全风险和服务器的使用效率。安全
session是JSP中的一个内置对象,能够在JSP代码中直接使用,他是HttpSession的实例,经常使用的方法以下:服务器
<% SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d = new Date(session.getCreationTime()); session.setAttribute("username","xingoo"); session.setAttribute("password","123"); session.setAttribute("age","26"); //設置Session生命期限 //session.setMaxInactiveInterval(2); %> Session建立时间:<%=sdf.format(d) %><br> Session的ID编号:<%=session.getId() %><br> Session获取:<%=session.getAttribute("username") %><br> Session中保存的屬性:<% String[] names = session.getValueNames(); for(int i=0;i<names.length;i++){ out.println(names[i]+" "); } %><br> <% //session.invalidate();//执行销毁后,服务器直接就删除了会话的相关内容; %>
可获得以下的结果:cookie
session生命周期中包含3个阶段:session
1 建立eclipse
在第一次用户访问JSP页面时,会建立相应的session,保存在服务器中。以后的请求,服务器都会携带此session id进行校验。函数
2 活动
在同一会话期间,打开新的连接都属于同一会话。
3 销毁
关闭浏览器;使用session.invalidate()销毁session;会话过时
session默认时30分钟过时。
1 经过函数方法设置过时时间,单位为秒
session.setMaxInactiveInterval(60);//单位是秒
2 配置web.xml,单位为分钟
<session-config> <session-timeout>1</session-timeout> </session-config>
若是第一次登录tomcat管理界面,会报用户权限错误,须要手动为tomcat设置用户密码以及用户权限。
在conf目录中,打开tomcat-users.xml
在tocmat-users标签中添加下面两行:
<tomcat-users> <role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui"/> </tomcat-users>
manager-gui用于授予用户 经过html管理tomcat 权限。
登录后点击 tomcat manager
在提示对话框中输入用户名密码,技能看到下面的管理界面
能够看到当咱们访问某个有session内容的页面后,工程中的session数目变成了1.
因为在web.xml中配置了session的过时时间为1分钟,所以后面的时间也显示了1分钟。
点击 数字1超连接 ,就能进入session目录!
能够看到session相关的内容,能够点击上面的按钮,刷新session管理界面。
点击sessionid 超连接,能够进入session的详细页面,参考以下:
能够根据该页面,检查session的相关内容等信息。
注意:因为我使用的是tomcat 6,因此其余版本登录位置可能有所不一样。
出现上面现象的缘由是,你的eclipse在绑定tomcat后,工程中多了一个叫server的工程。
打开该工程会发现有几个配置文件,在eclipse重启tocmat,会把这几个配置文件覆盖到咱们本身安装的tocmat中。
所以修改这里的配置文件,便可!