如何在JSP中实现过滤器?
来源:互联网 发布:冷藏车运输的优化 编辑:程序博客网 时间:2024/06/02 13:25
有一个java web项目, 用户登录信息存放在session中, 以"user"为key存放(如果"user"对应的值为空, 则说明用户没有登录), 要求只有登录的用户才能访问manager目录下的服务(manager/*.htm), 请写出大体思路, 并实现关键部分的代码
本题,我认为应该用过滤器,是最好的,1.访问manager目录下的服务(manager/*.htm),由于,此目录下都是静态文件,没法在html文件里写入java代码,对Session作校验,2.如果写成一个Servlet,配置映射路径为 manager/*,虽然能对以此结尾的URl作在Servlet里做校验,但无法跳转到指定的html文件,例如:manager/test1.html,此时,不会是直接访问该静态文件,而是又是映射到Servlet中,以此循环,无法实现访问静态文件。由于有这些性质,所以只能用过滤器方式来实现这种功能。过程:先实现一个过滤器,包括配置及处理类,映射路径写成manager/*,因此只要出现此映射结尾的,都会转到处理类上,并对Session用校验,未登陆的,才跳转到用户登陆页面index.jsp,成功登陆的,直接跳转到url指定的路径上。
目录结构如下:||--index.jsp (登陆页面)||---WEB-INF||--web.xml (添加过滤器配置 )|--manager| |||---test1.html||---test2.html|src——MyFilter.java( implements Filter) (过滤器处理类)
关键代码: 1.web.xml (配置过滤器)
... <filter> <filter-name>MyFilter</filter-name> <filter-class>com.temp.MyFilter</filter-class> </filter> <filter-mapping> <filter-name>MyFilter</filter-name> <url-pattern>/manager/*</url-pattern> </filter-mapping>...
2.MyFilter.java(过滤器处理类)
...//实现接口Filter的doFilter(..)方法public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest hreq = (HttpServletRequest)request;HttpServletResponse hres = (HttpServletResponse)response;String user = request.getParameter("user");String pwd = request.getParameter("pwd");//用户登陆if(user!=null&&pwd!=null&&user.equals("admin")&&pwd.equals("admin")){hreq.getSession().setAttribute("user", "1");}//获取SessionString flag = (String)hreq.getSession().getAttribute("user");if(flag==null){//重新登陆hres.sendRedirect("/myproject/index.jsp");}else{//跳转到指定的html文件chain.doFilter(hreq, hres);}}...
- 如何在JSP中实现过滤器?
- 在项目中,过滤器如何配置?可以实现拦截!
- 在JSP中如何实现MD5加密
- 在JSP中如何实现MD5加密
- 在JSP中如何实现MD5加密
- 在JSP中如何实现MD5加密
- 在JSP中如何实现MD5加密
- asp.net中实现jsp的过滤器
- 过滤器:覆盖过滤器如何在凝结水处理系统中应用
- 如何在Gmail中设置过滤器?
- 在ASP.NET中如何添加过滤器
- 如何在Qt中安装事件过滤器
- filter过滤器在项目中如何使用
- 在Servlet和JSP中如何实现多线程安全
- 如何在jsp中实现时间的动态显示?
- 在jsp中如何实现网页的自动更新
- 在JSP中使用过滤器解决中文乱码问题
- jsp中过滤器选择过滤器的写法
- c++碰到的一些细节知识
- Windows进程中的内存结构
- 重生
- XHTML标签写法应该注意的问题
- 环境恢复,九牛二虎,下周一还要继续。
- 如何在JSP中实现过滤器?
- oracle 采用存储过程批量提交
- 对不起,我不再爱你了
- sa
- VI/VIM的超帅学习演示图
- 我近4年的计算机学习经历
- JSF DataTable使用心得
- DTD
- PHP中数据库连接的设置问题