java过滤器

java过滤器
java过滤器

在基于 JSP 页面系统设计开发中,经常有一批页面需要对用户的身份进行验证,只有合法的用户才可以访问这些页面。显然可以在每个页面中添加身份验证,但这样做会给编程造成很大的麻烦,而且增加多余的代码。那么,如何解决JSP 页面用户身份验证呢?

二、JSP 页面中用户身份验证分析

在有多个用户使用的 JSP 系统中,为了保障系统的隐秘性安全性,就需要对登录系统的用户进行身份验证以保证用户身份的合法性。一个用户首次登录系统后会在session 对象中留下它的标识[1],就可以利用这个标识来完成各个JSP页面的用户身份验证。为了避免每个页面都进行身份验证而出现的麻烦,这里将通过Servlet 过滤器对JSP 页面统一进行身份验证。

三、用户身份验证的设计思路和技术要点

1、设计思路

Servlet 过滤器验证用户是围绕session 对象进行的。首先是实现用户登录的功能,在用户登录成功后产生一个session 标识;然后创建Servlet 过滤器,判断标识值是否正确,如果正确则通过验证,否则将给出提示信息并跳转到用户登录页面。

2、技术要点

使用 Servlet 过滤器实现JSP 页面中用户身份验证,首先必须实现Filter 接口,且重写doFilter() 方法,由doFilter() 方法去处理过滤业务;其次,在web.xml 文件中配置Servlet 过滤器,指定过滤器的名称、过滤器包所在类的名称及过滤器的映射范围等[2]。

四、JSP 页面中用户身份验证的实现

1、用户身份合法性确认

为了能够使用 Servlet 过滤器实现用户对JSP 页面访问的合法性验证,首先需要根据用户登录号和密码等与数据库中的信息相比较,若能匹配成功,则是用户登录成功,就用session 对象存储该用户的标识;然后再由Servlet 过滤器实现对用户访问的各个页面的过滤。存储用户登录成功的session 标识的核心代码为:session.setAttribute("user",

用户登录号 )。

2、Servlet 过滤器的实现

用 Servlet 过滤器实现用户身份验证的关键代码如下:

package hzu.util.filters;

public class UserFilter extends HttpServlet implements Filter {

private FilterConfig filterConfig;

public void init(FilterConfig filterConfig)

throws ServletException{

this.filterConfig=filterConfig;

}[NextPage]

public void doFilter(ServletRequest request,ServletResponse response, FilterChain chain) throws ServletException,IOException{

HttpSession session=((HttpServletRequest)

request).getSession();

if(session.getAttribute(“user”)= =null){

PrintWriter out=response.getWriter();

out.print(“");

out.flush();

out.close();

}

else{

chain.doFilter(request, response);

}

}

}

3、在web.xml 中配置Servlet 过滤器

在编写完Servlet过滤器后,要在web.xml文件中配置过滤器。也就是通过标签指定Servlet过滤器的名称、过滤器包所在类的名称,通过标签配置Servlet 过滤器的映射路径[3]。其关键代码如下:

UserLoginFilter

hzu. https://www.360docs.net/doc/0b849856.html,erFilter

filter-class>

UserLoginFilter

[/ 目录名]/*

request

forward

include

相关主题
相关文档
最新文档