配置web.xml的filter(需要配置在Struts2插件过滤器前)
<filter> <filter-name>filter1</filter-name> <filter-class>filter.LoginFilter1</filter-class> </filter> <filter-mapping> <filter-name>filter1</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
增加Filter
package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginFilter1 implements Filter {//尝试改变JSESSIONID @Override public void destroy() { // TODO Auto-generated method stub System.out.println("LoginFilter1 destroy"); } @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest httpRequest = (HttpServletRequest)arg0; StringBuffer ul = httpRequest.getRequestURL(); if(ul.toString().contains("login!getintoindex.do")){ HttpSession session = httpRequest.getSession(false); if ( session != null && !session.isNew() ) {//isNew() Returns true if the client does not yet know about the session or if the client chooses not to join the session. HttpSession sessionOld = session; User user = (User)sessionOld.getAttribute("user"); sessionOld.invalidate(); session = httpRequest.getSession(true); session.setAttribute("user", user); System.out.println("LoginFilter1 doFilter,url: " + httpRequest.getRequestURL()+" , session id: " + httpRequest.getSession().getId()); } } if(ul.toString().contains("top!logout.do")){// HttpSession session = httpRequest.getSession(false); if ( session != null && !session.isNew() ) { HttpSession sessionOld = session; sessionOld.invalidate(); session = httpRequest.getSession(true); System.out.println("LoginFilter1 doFilter,logout. "); } } arg2.doFilter(arg0, arg1); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub System.out.println("LoginFilter1 init"); } }
相关推荐
在Web开发中,`jsessionid`是一个常见的概念,它关联到Java服务器会话(Session)的管理。本文将深入探讨`jsessionid`存在的问题以及相应的解决方案,并结合提供的`DisableUrlSessionFilter.java`和`web.xml`文件来...
在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...
### Tomcat中修改JSessionID在Cookie中的名称 在Tomcat服务器中,默认情况下,用于传递会话标识(即JSessionID)的Cookie名称为“JSESSIONID”。有时,出于安全考虑或其他需求,我们可能需要自定义这个名称。本文将...
重定义URL 使其直接进去网页 不用登录 用于:邮件链接直接进入网站
3. 登录成功后,服务器可能会返回一个会话标识(如JSESSIONID),存储在客户端的Cookie中,以便后续请求识别用户身份。 4. 当需要在两个站点间通信时,例如从web站向web2站发送用户登录信息,可以利用CORS或者JSONP...
- 移除`jsessionId`可能会对依赖于URL重写的会话管理机制造成影响,需要确保应用的其他部分能够正常处理这种改变。 #### 四、应用场景 - **安全性增强:**防止通过URL泄露会话ID,降低会话劫持的风险。 - **用户...
当Cookie不可用时,可以在URL中附加`JSESSIONID`来保持会话。在JSP中,可以使用`session.getAttribute()`和`session.setAttribute()`来读取和设置会话数据。 14. **JSP动作元素** JSP提供了一系列的动作元素,如`...
在主页面的JSP中,通过检查会话是否存在特定的属性来判断用户是否登录,并显示相应的界面。 总之,`HttpSession`、`jsp`和`servlet`是构建Web应用的重要工具,它们共同帮助开发者创建出能够处理用户状态、动态生成...
这个过程通常伴随着设置一个名为JSESSIONID的cookie,包含了session ID。之后,每当该浏览器发送请求时,都会携带这个cookie,服务器通过解析cookie获取session ID,从而找到对应的session数据。 **三、如何在JSP中...
获得请求头的各种参数信息jsp代码: ...获取接受客户提交信息的页面: /004.jsp 接受客户提交信息的长度: -1 ...获取头文件中指定头名字的全部值的一个枚举: JSESSIONID=7278C051AADA7370A6DB7492CDD13984
### JSP自定义标签知识点详解 #### 一、概述 JSP(JavaServer Pages)是一种基于Java技术的服务器端动态网页开发技术。JSP自定义标签则是为了提高JSP页面的可读性和重用性而引入的一个重要特性。通过自定义标签,...
这就需要使用会话管理技术,如JSESSIONID,来跟踪用户的登录状态和权限信息。 7. **MVC(Model-View-Controller)模式**:虽然这个项目没有明确提到使用框架,但其结构可能遵循了MVC设计模式。Servlet作为控制器...
然而,有时会出现“登录前后Cookie不一致”的问题,这可能会影响用户体验或引发安全性问题。本文将探讨这个问题的原因以及两种可能的解决方案。 **问题分析** 登录前后Cookie不一致的问题可能由以下几个原因引起:...
这可以通过设置JSESSIONID cookie或在服务器端维护会话对象来实现。 6. **支付接口集成**:为了实现在线支付功能,系统可能集成了第三方支付平台如支付宝或微信支付的API,进行支付请求的发送和支付状态的回调处理...
Cookie 路径属性安全设置 ...然而,在某些情况下,Cookie 中的路径属性可能会泄露项目路径,导致安全风险。本文将介绍如何解决 Cookie 路径属性暴露问题。 Cookie 路径属性的危险 在服务器中的项目中,如果 Cookie...
在"chapter8"这个文件名中,可能表示项目的某个章节或模块,可能是关于特定功能的实现,例如支付系统、用户登录注册或者书籍分类管理。通常,项目可能会按功能模块或开发阶段将代码划分为多个章节或子目录,便于管理...
7. **会话管理**:为了保持用户的登录状态,项目可能使用了会话管理技术,如JSESSIONID,来跟踪用户在整个系统的活动。 8. **安全性**:实训项目可能会涵盖基本的安全措施,如密码加密存储、防止SQL注入、XSS攻击...
有些网页需要你登录之后才...Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等。 2、之后我们要获取到用户正常登录的c
然而,现代Web应用,尤其是那些需要用户登录或保持用户特定数据的应用,如在线购物车,需要一种机制来维持一系列来自同一用户的请求之间的状态。例如,当用户将商品添加到购物车时,服务器需要能够识别这是同一个...
"季风流量统计系统jsp1.2版"是一款基于JavaServer Pages(JSP)技术构建的流量统计工具,专门用于追踪和分析网站的访问数据。该系统提供了多种维度的统计数据,帮助网站管理员深入了解用户行为,优化网站性能和用户...