Java学习笔记之:Java Servlet 过滤器配置
一、步骤
1.创建一类实现Filter接口,重写父类的方法
public class SimpleFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
2.配置web.xml文件,
<!-- filter配置 -->
<filter>
<filter-name>filter</filter-name>
<filter-class>com.mxp.filter.UserFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<!-- <url-pattern>*.do</url-pattern> --><!-- url的配置方式 -->
<url-pattern>/*</url-pattern><!-- 通配过滤的是所有url -->
</filter-mapping>
3.在dofilter()方法中处理可以放行的请求
二、过滤器的生命周期
1.服务器启动的时候执行初始化方法,它的初始化方法在servlet的init()方法之前执行
2.在用户每一次发起url请求的时候会执行dofilter()方法,在doget()和dopost()方法之前执行.需要注意的是filter过滤的是url,而servlet的doget和dopost方法处理的是request请求
3.在服务器销毁的时候执行destroy()方法
三、实例
1.index.jsp添加一个超链接
<a href="login.do">测试</a> <br>
2.新建servlet文件,用来处理超链接的请求
public class UserServlet extends HttpServlet {
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
System.out.println("servletinit");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("servletdo");
req.getRequestDispatcher("main.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
3.添加过滤器
public class UserFilte implements Filter {
// 销毁
public void destroy() {
System.out.println("destroy");
}
// 过滤
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("UserFilte do");
arg2.doFilter(arg0, arg1);//相当于放行
}
// 初始化
public void init(FilterConfig arg0) throws ServletException {
System.out.println("UserFilteinit");
}
}
4.web.xml配置
<servlet>
<servlet-name>USER</servlet-name>
<servlet-class>com.hgd.servlet.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>USER</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> <filter>
<filter-name>filter</filter-name>
<filter-class>com.hgd.filter.UserFilte</filter-class>
</filter>
<filter-mapping>
<filter-name>filter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
5.部署并打开主页,在控制台可以看到当服务器运行过滤器已经初始化了

6.点击“测试”超链接,从控制台输出可以看出只有当过滤器请求通过了才会执行servlet中的dopost或doget方法

Java学习笔记之:Java Servlet 过滤器配置的更多相关文章
- Java 学习笔记之读取jdbc.propertyes配置参数
package test; import java.io.IOException; import java.io.InputStream; import java.util.Properties; p ...
- Java学习笔记--通过java.net.URLConnection发送HTTP请求
http://www.cnblogs.com/nick-huang/p/3859353.html 使用Java API发送 get请求或post请求的步骤: 1. 通过统一资源定位器(java.net ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- JAVA学习笔记之JAVA 对象引用以及赋值
关于对象与引用之间的一些基本概念. 初学Java时,在很长一段时间里,总觉得基本概念很模糊.后来才知道,在许多Java书中,把对象和对象的引用混为一谈.可是,如果我分不清对象与对象引用, 那实在没 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- Java 学习笔记(4)——java 常见类
上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...
- JAVA学习笔记-1.Tomcat&Servlet
##web相关概念 1.软件架构 1.C/S 2.B/S 2.资源分类 1.静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源, 静态资源可以直接被浏览器解析. * 如:html, css, ...
- Java学习笔记一——安装JDK并配置环境变量
下载安装JDK1.8 在官网上下载JDK,官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...
随机推荐
- 堡垒机初识--paramiko模块
一.paramiko模块 Python的paramiko模块基于SSH用于连接远程服务器并执行相关的操作. 1.1 在windows上安装paramiko模块 测试环境: win10 , python ...
- (转)JAVA 十六个常用工具类
一. org.apache.commons.io.IOUtils closeQuietly 关闭一个IO流.socket.或者selector且不抛出异常.通常放在finally块 toString ...
- 即时通信系统Openfire分析之一:Openfire与XMPP协议
引言 目前互联网产品使用的即时通信协议有这几种:即时信息和空间协议(IMPP).空间和即时信息协议(PRIM).针对即时通讯和空间平衡扩充的进程开始协议SIP(SIMPLE)以及XMPP.PRIM与 ...
- MySql 插入数据库报错 Incorrect string value: '\xF0\xA0\x86\xA2'
今天从nginx日志分析搜索关键字,然后把关键字插入到Mysql数据库里,出现如下错误 SQL state [HY000]; error code [1366]; Incorrect string v ...
- HDU 5145 分块 莫队
给定n个数,q个询问[l,r]区间,每次询问该区间的全排列多少种. 数值都是30000规模 首先考虑计算全排列,由于有同种元素存在,相当于每次在len=r-l+1长度的空格随意放入某种元素即$\bin ...
- 始终要重载toString
本文涉及到的概念 1.重载toString方法的意义 2.两个注意事项 1.重载toString方法的意义 重载toString,返回关于当前实例的描述信息.这在调试错误,打印实例信息时,可以带来 ...
- HDU 5995 Kblack loves flag (模拟)
题目链接 Problem Description Kblack loves flags, so he has infinite flags in his pocket. One day, Kblack ...
- PHP对象1: 创建对象与 $this
<?php class perl{ public $name; function __construct($name){ echo '一个对象造好了<br/>'; $this-> ...
- MongoDB之主从复制和副本集(四)
简单主从复制 采用一主一从或一主多从的布署模式,可以将读写分离开来,提高数据库的可用性,不过mongodb的主从模式并不能在主节点崩溃后,从节点替换主节点的工作,一般可以在开发阶段使用. 实现步骤 设 ...
- 【appium】根据UIAutomator定位元素等等资料
https://www.cnblogs.com/paulwinflo/p/4742529.html http://www.cnblogs.com/meitian/p/6103391.html http ...