jsp过滤器
来源:互联网 发布:淘宝网新款连衣裙 编辑:程序博客网 时间:2024/05/18 01:20
在基于 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(“<script language=javascript>alert(„您还没登录 , 请登录!!‟);javascript:location=‟系统登录的主页面 ';</script>");
out.flush(); out.close();
} else{
chain.doFilter(request, response);
} } }
3、在 web.xml 中配置 Servlet 过滤器 在编写完Servlet过滤器后,要在web.xml文件中配置过滤器。也就是通过<filter></filter>标签指定Servlet过滤器的名称、过滤器包所在类的名称,通过<filter-mapping></filter-mapping>标签配置 Servlet 过滤器的映射路径 [3]。其关键代码如下:
<filter>
<filter-name>UserLoginFilter</filter-name>
<filter-class>hzu. util.filters.UserFilter</ filter-class>
</filter>
<filter-mapping>
<filter-name>UserLoginFilter</filter-name>
<url-pattern>[/ 目录名 ]/*</url-pattern>
<dispatcher>request</dispatcher>
<dispatcher>forward</dispatcher>
<dispatcher>include</dispatcher>
</filter-mapping>
- JSP过滤器
- jsp过滤器
- JSP过滤器
- JSP过滤器
- jsp---->过滤器
- jsp过滤器
- jsp 过滤器
- jsp过滤器
- JSP 过滤器
- JSP过滤器
- jsp过滤器
- JSP过滤器
- JSP 过滤器
- JSP过滤器
- jsp 过滤器
- JSP 过滤器
- JSP 过滤器
- jsp--过滤器
- js光标选中文本框部分内容
- Android init.rc文件浅析
- java数学类Math的常用方法
- CMYK图片在IE中无法显示的问题
- QT中关于QString的一些小结
- jsp过滤器
- PHP生成唯一字符串的方法,产生唯一码的方法分析
- 相对于XP快捷键 Win7有很大变化这些快捷键你是必须知道的
- 黑马程序员 Java集合框架
- android开发中如何开启用户安装的应用程序?
- android中View绘制过程分析
- 正确删除MySQL BIN-LOG 日志实操
- C++ 内连接与外连接
- Unicode编码的使用心得及Unicode格式的INI文件