struts2中针对session使用的过滤器
在基于struts2开发的web项目中,经常会用到filter过滤器,对session进行验证。如果session失效,则提示登录失效并返回到登录页面。
如下便是简单的实现过程。
首先是Filter:
public class FirstFilter implements Filter {
public void init(FilterConfig cong) {
// do nothing
}
public void doFilter(ServletRequest srequest, ServletResponse sresponse,
FilterChain chain) {
try {
HttpServletRequest requst = (HttpServletRequest) srequest;
HttpServletResponse response = (HttpServletResponse) sresponse;
HttpSession session = requst.getSession();
//从session从取出userid,如果为空说明没有登录,将其转到登录页面.
Object obj = session.getAttribute("userId");
if (obj == null) {
//跳转到登陆页面
response.sendRedirect("/Expert_DataBase/pages/loginTransfer.jsp");
} else {
//如果存在则跳出过滤器继续执行
chain.doFilter(srequest, sresponse);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void destroy() {
//do nothing
}
}
接下来要在web.xml里对filter进行配置
<!-- Struts2 -->
<!-- 配置Struts2的session的Filter -->
<filter>
<!-- 声明filter -->
<filter-name>struts-session</filter-name>
<filter-class>com.zxt.expert.util.FirstFilter</filter-class>
</filter>
<!-- 定义Struts2的session Filter拦截的URL -->
<filter-mapping>
<filter-name>struts-session</filter-name>
<url-pattern>/formengine/zsf_switchSystemMenu.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-session</filter-name>
<url-pattern>/expertsinfo/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-session</filter-name>
<url-pattern>/taskinfo/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-session</filter-name>
<url-pattern>/attachment/*</url-pattern>
</filter-mapping>
……
这个可以自己添加需要进行过滤的路径。
如此,便可以实现对session的过滤了,如果session失效的话,会退回到登录页面。
推荐阅读
-
Nodejs中的JWT和Session的使用
-
JSP中 Session和作用域的使用
-
web.py在SAE中的Session问题解决方法(使用mysql存储)
-
jsp 开发之struts2中s:select标签的使用
-
微信小程序授权 获取用户的openid和session_key【后端使用java语言编写】,我写的是get方式,目的是测试能否获取到微信服务器中的数据,后期我会写上post请求方式。
-
flask框架中的cookie和session使用
-
.net core中的Authorization过滤器使用
-
页面使用struts2标签获取List中的对象属性值,Struts2常用标签总结
-
解析php框架codeigniter中如何使用框架的session
-
session在PHP大型web应用中的使用