servlet串行拦截器实现例子
至于串行过滤器有什么作用,我实在不知。我的理解是它只是说明 过滤器的串行运行方式
需求:当用户没有登录访问更新页面的时候,跳转到登录页面
1.登录页面:login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="UserLoginServlet" method="post">username:<input type="text" value="<%=null == request.getAttribute("username")?"" : request.getAttribute("username") %>" name="username"><br>password:<input type="text" name="password"><br>authority:<select name="authority"><option value="1" <%="1".equals(request.getAttribute("authority"))?"selected = selected" : "" %>>common user</option><option value="2" <%="2".equals(request.getAttribute("authority"))?"selected = selected" : "" %>>adminstrator</option></select><br><input type="submit"> </form></body> </html>
login.jsp
2.登录页面的servet容器
package com.filter;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import com.javabean.User;public class UserLoginServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{String username = (String)req.getParameter("username");String password = (String)req.getParameter("password");String authority = (String)req.getParameter("authority");if("1".equals(authority) && "zhangsan".equals(username) && "123".equals(password)){User user = new User();user.setUsername(username);user.setPassword(password);user.setAuthority(authority);HttpSession session = req.getSession();session.setAttribute("user",user);req.getRequestDispatcher("index.jsp").forward(req, resp);return ;}if("2".equals(authority) && "lisi".equals(username) && "456".equals(password)){User user = new User();user.setUsername(username);user.setPassword(password);user.setAuthority(authority);HttpSession session = req.getSession();session.setAttribute("user",user);req.getRequestDispatcher("index.jsp").forward(req, resp);return ;}System.out.println("meiyou denglu");resp.sendRedirect("login.jsp?error=true&username="+username+"&authority="+authority);}}
UserLoginServlet
3.主页面index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ page import="com.javabean.User" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <a href="QueryServletFilter">query</a><br> <% User user = (User)session.getAttribute("user"); if(null == user) {response.sendRedirect("login.jsp");return; }if("2".equals(((User)session.getAttribute("user")).getAuthority())){%> <a href="UpdateServletFilter">update</a><%} %> </body> </html>
index.jsp
4.查询servlet. QueryServletFilter
package com.filter;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class QueryServletFilter extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{System.out.println("QueryServletFilter run");} }
View Code
5.更新servlet容器. UpdateServletFilter
package com.filter;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class UpdateServletFilter extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{System.out.println("UpdateServletFilter run");} }
UpdateServletFilter
6.web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>filter</display-name><servlet><servlet-name>UserLoginServlet</servlet-name><servlet-class>com.filter.UserLoginServlet</servlet-class></servlet><servlet-mapping><servlet-name>UserLoginServlet</servlet-name><url-pattern>/filter/UserLoginServlet</url-pattern></servlet-mapping><servlet><servlet-name>QueryServletFilter</servlet-name><servlet-class>com.filter.QueryServletFilter</servlet-class></servlet><servlet-mapping><servlet-name>QueryServletFilter</servlet-name><url-pattern>/filter/QueryServletFilter</url-pattern></servlet-mapping><servlet><servlet-name>UpdateServletFilter</servlet-name><servlet-class>com.filter.UpdateServletFilter</servlet-class></servlet><servlet-mapping><servlet-name>UpdateServletFilter</servlet-name><url-pattern>/filter/UpdateServletFilter</url-pattern></servlet-mapping><!-- filter start --><filter><description>this is the servlet filter example</description><filter-name>userLoginServletFilter1</filter-name><filter-class>com.filter.UserLoginServletFilter</filter-class></filter><!-- 演示过滤器串行运行 --><filter><description>this is the servlet filter example</description><filter-name>userLoginServletFilter2</filter-name><filter-class>com.filter.UserLoginServletFilter2</filter-class></filter><!-- url-pattern表示只过滤 UpdateServletFilter这一个servlet容器--><filter-mapping><filter-name>userLoginServletFilter1</filter-name><url-pattern>/filter/UpdateServletFilter</url-pattern></filter-mapping><!-- url-pattern表示只过滤 UpdateServletFilter这一个servlet容器--><filter-mapping><filter-name>userLoginServletFilter2</filter-name><url-pattern>/filter/UpdateServletFilter</url-pattern></filter-mapping><!-- filter end --> </web-app>
web.xml
7.filter拦截器 UserLoginServletFilter
package com.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;public class UserLoginServletFilter implements Filter {@Overridepublic void destroy(){System.out.println("destroy");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException{HttpServletRequest req = (HttpServletRequest)request;HttpSession s = req.getSession();if(req.getRequestURI().endsWith("login.jsp") || req.getRequestURI().endsWith("UserLoginServlet")){System.out.println("Filter1 start");filterChain.doFilter(request, response);System.out.println("filter1 end");return ;}if(null == s.getAttribute("user")){System.out.println("Filter1 start..");((HttpServletResponse)response).sendRedirect("login.jsp");return;}else{System.out.println("Filter1 start....");filterChain.doFilter(request, response);}}@Overridepublic void init(FilterConfig filterConfig) throws ServletException{System.out.println("init");}}
UserLoginServletFilter
8.filter拦截器2 UserLoginServletFilter2
package com.filter;import java.io.IOException;import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse;public class UserLoginServletFilter2 implements Filter {@Overridepublic void destroy(){System.out.println("destory2");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException{System.out.println("doFilter2 start");filterChain.doFilter(request, response);System.out.println("doFilter2 end");}@Overridepublic void init(FilterConfig arg0) throws ServletException{System.out.println("init2");}}
UserLoginServletFilter2
web.xml中url-pattern属性值表示访问的路径。
转载于:https://www.cnblogs.com/feiguo/p/3804019.html
servlet串行拦截器实现例子相关推荐
- AngularJS 拦截器和好棒例子
2019独角兽企业重金招聘Python工程师标准>>> Interceptors in AngularJS and Useful Examples 有日期,我喜欢. $httpAng ...
- springboot _配置过滤器、拦截器、使用原生servlet
配置过滤器.拦截器.使用原生servlet 过滤器和拦截器的根本区别 过滤器是servlet规范规定的,只能用于web程序中,而拦截器是在spring容器中,它不依赖servlet容器. 拦截器属于S ...
- 垃圾收集器–串行,并行,CMS,G1(以及Java 8中的新增功能)
4个Java垃圾收集器–错误的选择如何严重影响性能 在2014年,对于大多数开发人员来说,还有两件事仍然是个谜:垃圾收集和了解异性. 由于我对后者知之甚少,所以我认为我会对前者大吃一惊,特别是因为在该 ...
- jsp/servlet过滤器和struts2拦截器的有什么区别
jsp/servlet过滤器和struts2拦截器的有什么区别 542430725 | 浏览 3715 次 问题未开放回答 推荐于2016-11-14 01:43:29 最佳答案 过滤器,是在ja ...
- 过滤器、拦截器、监听器的区别与使用
一.拦截器与过滤器的区别 过滤器 (Filter) 过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看到Filter 接口中定义了三个方法 ...
- springboot拦截器 跳过_springboot创建拦截器过程图解
springboot创建拦截器过程图解 这篇文章主要介绍了springboot创建拦截器过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一. ...
- spring过滤器Filter 、 拦截器Interceptor 、 切片Aspect 详解
springboot 过滤器Filter vs 拦截器Interceptor vs 切片Aspect 详解 1 前言 最近接触到了过滤器和拦截器,网上查了查资料,这里记录一下,这篇文章就来仔细剖析下过 ...
- 拦截器,过滤器,监听器原理
过滤器 创建一个Filter 只需两个步骤: (1)创建Filter 处理类: (2)在web.xml 文件中配置Filter . 创建Filter 必须实现javax.servlet.Filte ...
- structs2拦截器详解
Struts2(XWork)提供的拦截器的功能说明: 拦截器 名字 说明 Alias Interceptor alias 在不同请求之间将请求参数在不同名字件转换,请求内容不变 Chaining In ...
最新文章
- x86架构手机_都是芯片,为什么电脑CPU不能用在手机里?
- push代码到github时,每次都要输入用户名和密码的问题
- 看完这篇Exception 和 Error,和面试官扯皮就没问题了
- 《Engineering》评选2021年全球十大工程成就
- 7_12_2013 G: Mahjong problem
- 散列查找 散列表(哈希表)
- 2018-2019-1 20165219 实验三 实时系统
- Oracle在HPUX IA64平台登陆缓慢问题分析
- STM32 位段详解
- python画中秋的月亮_水彩中秋月亮教程
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上医院预约挂号系统
- 把照片存QQ相册会越来越模糊,你们会把照片存在哪里?
- linux安装运行jmeter,Linux下安装运行Jmeter程序
- IE不能打开网页的解决方案
- 百度文库刷财富值软件,如何刷百度文库财富值
- jquery省市县三级导航栏
- Unity3D新手入门教程 (b站阿发) 总结框架笔记
- 计算某年新年是星期几的公式【不过这天怎么也该是假期吧?】
- html给页面添加艺术型边框,如何为2016word的页面设置艺术型页面边框
- 浅析为什么没有朝代在武汉建都?
热门文章
- Swin Transformer V2!MSRA原班人马提出了30亿参数版本的Swin Transformer!
- Video-Touch:手势识别实现多用户远程控制机器人
- 微软亚研院 CVPR 2021 9篇视觉研究前沿进展
- 多功能的图像超分辨模型:用于盲图像超分辨的非对称卷积神经网络
- 资深程序员:Python中你不知道的那些小工具
- java stack 类 效率_Java中ArrayList、LinkedList、Vector、Stack的比较
- 重磅更新!YoloV4最新论文!解读yolov4框架
- 2020-11-08
- 听说你还不懂哈夫曼树和哈夫曼编码
- 小白视角来看传说中的卷积神经网络