JSP Session管理

简介:

  本篇讲述JSP中session的相关知识和管理方法;

  先说说cookie与session

  在web中常用的两种用户信息管理方式:cookie 和 session.

  cookie是保存在用户客户端的数据,用于避免每次发送http请求时,连带过多的数据,造成复杂化。所以Cookie保存在客户端中,根据服务器端的要求,保存特定的内容,在每次http请求后,自动添加一定的内容。

  session是保存在服务器端的数据,用于验证几次请求是否属于同一会话,在同一会话中,会避免进行不必要的验证,保证用户的操作连贯性。

  合理的使用session与cookie都会保证web应用的高可以用性,以及良好的用户体验。但是不必要的操作也会影响到web安全风险和服务器的使用效率。

  session常用的方法

  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]+"&nbsp;&nbsp;");
        }
    %><br>
    <%
        //session.invalidate();//执行销毁后,服务器直接就删除了会话的相关内容;
    %>
复制代码

  可得到如下的结果:

  session声明周期

  session生命周期中包含3个阶段:

  1 创建

  在第一次用户访问JSP页面时,会创建相应的session,保存在服务器中。之后的请求,服务器都会携带此session id进行校验。

  2 活动

  在同一会话期间,打开新的链接都属于同一会话。

  3 销毁

  关闭浏览器;使用session.invalidate()销毁session;会话过期

  管理session过期

  session默认时30分钟过期。

  1 通过函数方法设置过期时间,单位为秒

session.setMaxInactiveInterval(60);//单位是秒

  2 配置web.xml,单位为分钟

  <session-config>
      <session-timeout>1</session-timeout>
  </session-config>

  通过tomcat监控管理session

  如果第一次登陆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,tomcat-users.xml被重置

  出现上面现象的原因是,你的eclipse在绑定tomcat后,工程中多了一个叫server的工程。

  打开该工程会发现有几个配置文件,在eclipse重启tocmat,会把这几个配置文件覆盖到我们自己安装的tocmat中。

  因此修改这里的配置文件,即可!

 

本文转自博客园xingoo的博客,原文链接:JSP Session管理,如需转载请自行联系原博主。
相关文章
|
SQL Java BI
JSP超市销售管理统myeclipse开发sql数据库BS模式java编程网页结构
JSP 超市销售管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLSERVER2008,使用java语言开发
44 0
|
5月前
|
存储 Java 开发者
JSP 教程 之 JSP Session 2
JSP教程讲解了如何使用Session进行会话跟踪。HTTP协议本身无状态,但JSP通过HttpSession接口存储用户信息。默认开启会话跟踪,可设置`&lt;%@ page session=&quot;false&quot; %&gt;`禁用。session对象提供多种方法,如getAttribute()获取绑定对象,getCreationTime()获取创建时间,setAttribute()用于存储数据,以及invalidate()使会话失效。这些方法便于开发者管理用户会话和数据。
42 0
|
5月前
|
Java
JSP 教程 之 JSP Session 1
JSP教程讲解了三种维持HTTP会话的方法:Cookies、隐藏表单域和重写URL。尽管Cookies是最常见的,但由于不总被支持,所以不推荐。隐藏表单域在表单提交时能跟踪会话,但超链接无法触发。重写URL是更通用的方法,即使在无Cookie支持下仍能工作,但需对每个URL动态添加session ID,增加了复杂性。
25 2
|
6月前
|
存储 Java 应用服务中间件
JSP实现简易的聊天功能(Session机制)
这是一个使用JSP实现的简易聊天功能,基于Session机制和服务器端全局应用空间Application。用户通过login.jsp登录,信息存储在Session中。container.jsp展示聊天界面,包括用户列表、聊天内容和输入框,同时处理发送、清空和刷新等操作。view.jsp动态显示聊天历史,根据用户颜色选择改变消息显示。多用户间通过切换浏览器模拟聊天。网址格式为:http://localhost:8080/项目名/...。如果仅本机可访问,可能因不在同一局域网,需确保所有设备在同一网络并使用本机IP替代localhost。
58 3
|
5月前
|
Java 应用服务中间件
JSP 教程 之 JSP Session 4
JSP教程讲解了HTTP无状态特性及Session管理。删除Session数据可通过移除特定属性(removeAttribute())或注销整个会话(invalidate())。设置会话超时使用setMaxInactiveInterval()。在Servlet 2.4及以上版本,可用logout()登出用户并结束相关session。Tomcat的web.xml配置中,&lt;session-timeout&gt;15&lt;/session-timeout&gt;定义了15分钟超时,而getMaxInactiveInterval()以秒返回此值(默认30分钟为1800秒)。
35 0
|
5月前
|
Java
JSP 教程 之 JSP Session 3
该JSP教程介绍了如何使用HTTP Session处理无状态HTTP协议。示例展示了通过HttpSession对象获取会话的创建和最后访问时间,并利用session跟踪用户访问次数和ID。如果会话新建,则设置访问计数和用户ID;否则,更新访问计数。页面以表格形式展示会话ID、创建时间、最后访问时间、用户ID和访问次数。请尝试访问指定URL进行实践。
24 0
|
6月前
|
存储 网络协议 Java
基于JSP的辅导员工作管理的设计与实现
基于JSP的辅导员工作管理的设计与实现
36 2
|
6月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
172 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
6月前
|
人工智能 前端开发 JavaScript
基于Springboot+JSP社区志愿者管理平台
本项目基于Springboot+JSP开发实现一个前后端分离的社区志愿者管理平台系统。前端用户注册登录后可以查看相关活动信息、培训信息、新闻咨询信息等,并申请参与活动和参加志愿者的培训活动,在线在线论坛的讨论,在个人中心处可以查看自己参与的活动和培训。后台管理员主要管理人员信息、活动信息、培训信息、资讯信息、留言信息和轮播图信息等,具体参看下面系统功能展示。
|
存储 设计模式 JavaScript
掌握JavaWeb开发的必备技能:Servlet、JSP、Cookie、Session、EL、JSTL详解 ~~~~B站老杜--Servlet-JSP-课堂笔记(三)
当某个特殊的事件发生(特殊的事件发生其实就是某个时机到了。)之后,被web服务器自动调用。 思考一个业务场景
78 0