/**
* 采用filter解决session为空
* @author Administrator
*
*/
public class AuthFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest) servletRequest;
HttpServletResponse response=(HttpServletResponse) servletResponse;
/*设置参数的目的只是当会话不存在时,返回null还是新的session的区别,
参数为true时,返回的是null;
没有参数或是false则返回新的session */
HttpSession session=request.getSession(false);
System.out.println("url=" + request.getRequestURL());
System.out.println("uri=" + request.getRequestURI());
String requestURI = request.getRequestURI();
String targetURI = requestURI.substring(requestURI.lastIndexOf("/"));
System.out.println("targetURI=" + targetURI);
//如果访问的不是首页
if (!targetURI.equals("/login.jsp")) {
//如果session为空,session中没有user对象
if (session == null || session.getAttribute("user") == null) {
//重定向的首页,让用户登录
response.sendRedirect(request.getContextPath() + "/login.jsp");
return;
}
}
filterChain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
System.out.println("-------AuthFilter.init()---------");
}
}
分享到:
相关推荐
通过上述步骤,我们可以成功地搭建起Spring4.1 + Hibernate4 + Struts2的环境,并解决了session数据为空的问题。在实际开发中,还需要根据具体的应用场景对配置进行适当的调整,以确保应用能够稳定运行。同时,熟练...
- **默认命名空间**:如果没有显式指定命名空间,则默认为空字符串,即所有的Action都属于同一个命名空间。 #### 四、其他知识点 **1. Action名称的搜索顺序**: - Struts2在解析请求时,会根据请求路径中的...
`filter`即使没有匹配项也不会抛出异常,而是返回一个空的QuerySet。 Django处理HTTP请求的流程大致如下: 1. 启动一个支持WSGI的服务器,如Django的开发服务器或uWSGI,监听指定端口。 2. 当收到HTTP请求时,...
- **判断语句是否使用索引**:使用EXPLAIN分析SQL执行计划,查看“key”列是否为空。 8. **MySQL大表优化** - 使用分区技术,如范围分区、列表分区等。 - 建立合理的索引策略,避免不必要的全表扫描。 - 调整...
name Hierarchy 的名称,该值可以为空,为空时表示 Hirearchy 的名字和 Dimension 的名字相同。当一个 Dimension 有多个 Hierarchy 时,注意 name 值要唯一。 hasAll 布尔型的 , 决定是否包含全部的成员 member ...
熟悉Cookie与Session的工作机制,尝试自行编写Session类,并探索分布式Session的解决方案。 - **ASP.Net高级**:深入了解WebForm的内部机制,掌握AJAX的基本原理与实现方式。学习JSON的数据交换格式,了解jQuery ...
- **Session Lifecycle**:Compass 使用类似于 ORM 框架中的会话(Session)概念来管理对象的状态。每个会话都有自己的生命周期,包括打开、使用和关闭等阶段。 - **Template and Callback**:为了提高灵活性,...
全书一共被压缩为5个rar,这是第二个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
全书一共被压缩为5个rar,这是第五个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
全书一共被压缩为5个rar,这是第四个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...
全书一共被压缩为5个rar,这是第三个!!!! 其他的请看ID:ljtt123(本人分享) 本博客提供的所有教程的资源原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播。同时,转载时不要移除本申明。如产生任何...