专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 在Java Filter中如何进行页面重定向

在Java Filter中如何进行页面重定向

更新时间:2022-05-05 09:12:23 来源:动力节点 浏览1975次

简介

Filter过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

功能在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest 。根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据。

在HttpServletResponse到达客户端之前,拦截HttpServletResponse 。根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

在java过滤器中如何进行页面重定向

系统采用Struts架构,想在java过滤器中判断session是否失效,失效即跳转到登录页面,不好使啊!

代码如下:

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
String indexPage = config.getInitParameter("indexPage");
// 设置request编码用的字符集
request.setCharacterEncoding("utf-8"); // ①
HttpServletRequest requ = (HttpServletRequest) request;
HttpSession session = requ.getSession(true);
System.out.println("进入Session过滤器");
// 获取客户请求的页面
String requestPath = requ.getServletPath();
System.out.println("S请求动作:" + requestPath);
if (!requestPath.endsWith("/login_noauth1.do")) {
String userid = String.valueOf(session.getAttribute("username"));
if (userid.equals("null")) {
((HttpServletResponse) response).sendRedirect(indexPage);
return;
} else {
chain.doFilter(request, response);
}
} else {
chain.doFilter(request, response);
}
}

以上就是关于“在Java Filter中如何进行页面重定向”的介绍,大家如果想了解更多相关知识,不妨来关注一下动力节点的Java在线学习,里面的课程内容从入门到精通,细致全面,通俗易懂,适合没有基础的小白学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>