java dochain,Java filter中的chain.doFilter详解
转载:
一.chain.doFilter作用
1.一般filter都是一个链,web.xml 里面配置了几个就有几个。一个一个的连在一起
request -> filter1 -> filter2 ->filter3 -> …. -> request resource.
2.chain.doFilter将请求转发给过滤器链下一个filter , 如果没有filter那就是你请求的资源
二.举例
input.jsp 是用来提交输入的 : 当提交后,过滤器检测姓名和年龄 .
如果正常的话会提交给output.jsp 如果不正常提交给erroroutput.jsp.
在此 , 同时也有一个过滤器,防止乱码问题存在 , 该过滤器检测一个页面是否设置了字符编码,如果没有则进行设置。
1.input.jsp
name | |
age | |
2.web.xml
encodefilter
encodefilter
servletbean.encodefilter
encoding
GB2312
encodefilter
/*
myfilter
myfilter
servletbean.myfilter
myfilter
/output.jsp
3.encodefilter.java
package servletbean;
public class encodefilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null) {
System.out.println(encoding);
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);//到下一个链
}
public void init(FilterConfig fConfig) throws ServletException {
this.config=fConfig;
encoding=fConfig.getInitParameter("encoding");//获得目标编码格式
}
}
3.myfilter.java
package servletbean;
import javax.swing.JOptionPane;
public class myfilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
response.setContentType("text/html");
response.setCharacterEncoding("GB2312");
PrintWriter out=response.getWriter();
String name="";
String age="";
int age1;
name=request.getParameter("name");
age=request.getParameter("age");
RequestDispatcher dispatch=request.getRequestDispatcher("erroroutput.jsp");
if(name==null||name==""||name==" "||age==null) {
JOptionPane.showMessageDialog(null,"用户名和年龄输入错误!");
dispatch.forward(request, response);
return;
}
else{
try {
age1=Integer.parseInt(age);
}catch(Exception e){
//JOptionPane.showMessageDialog(null,"年龄必须为数字!");
dispatch.forward(request,response);
return;//如果是错误页面就到erroroutput.jsp中
}
}
//这里表示是正确的,也就是说,他回去找下一个链,但是它下面已经没有了,所以就会去跳转页面了,此跳转的页面就是action="output.jsp"了
chain.doFilter(request, response);
}
}
转载地址:http://blog.csdn.net/haofengjiao/article/details/70186381
标签:Java,name,chain,request,filter,doFilter,jsp,response
来源: https://www.cnblogs.com/cuiqq/p/11912002.html
java dochain,Java filter中的chain.doFilter详解相关推荐
- Java filter中的chain.doFilter详解
一.chain.doFilter作用 1.一般filter都是一个链,web.xml 里面配置了几个就有几个.一个一个的连在一起 request -> filter1 -> filter2 ...
- java configuration类_JAVA中的Configuration类详解
本文主要研究的是java中的configuration类的用法,涉及maven自动加载,pom.xml配置和简单的java代码,具体如下. properties文件是java平台默认的配置文件格式,其 ...
- java linux tracert_Linux系统中tracert命令使用详解
Linux系统中Tracert命令用来显示数据包到达目标主机是所经过的路径.下面由学习啦小编为大家整理了linux系统中tracert命令使用详解,希望对大家有帮助! Linux系统中tracert命 ...
- 浅谈filter中的chain.doFilter(request, response)的作用
filter在web开发中可谓是神通广大,想必大家都有所了解,在这里不作赘述. 下面主要谈一谈chain.doFilter(request, response);这条语句是怎么回事,过滤器的作用就是之 ...
- 过滤器filter中的chain.doFilter(request, response)的作用
请求到达servlet之前,拦截下来做预处理,处理之后便执行chain.doFilter(request, response)这个方法.chain.doFilter将请求转发给过滤器链下一个filte ...
- chain.doFilter详解
一.chain.doFilter作用 1. 一般filter都是一个链,web.xml 里面配置了几个就有几个.一个一个的连在一起 request -> filter1 -> filter ...
- java io系统_java中的io系统详解
Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...
- java获取文件大小_Java中获取文件大小的详解及实例代码
Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法, ...
- java transient 关键字_java中的transient关键字详解
前言 说实话学了一段时间java的朋友对于transient这个关键字依旧很陌生基本没怎么用过,但是transient关键字在java中却起到了不可或缺的地位!如果要说讲到,我觉得最可能出现的地方是I ...
最新文章
- spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例...
- 在SLES-11-SP1-i586上搭建apache+php环境
- Asp.Net Mvc之模型注解
- Linux内存映射私有对象,Linux访问内存映射的对象
- 函数指针实现无类型打印
- [转载] Python基础知识:构造函数中self用法
- 电脑系统怎么重装?U盘安装Windows XP系统保姆级教程
- 什么是无线射频识别技术(RFID)
- 洛谷:P1878 舞蹈课(普及/提高-,stl,堆)
- 类和对象1:基础学习
- CDH-TXKT-hive、impala
- three.js 控制动画进度 进度条拖拽控制
- 可视化设计,类Excel的快速开发平台
- Web TOP10漏洞之sql注入
- /backend_agg.py:238: RuntimeWarning: Glyph 26085 missing from current font.
- 人工智能数学课高等数学线性微积分数学教程笔记
- 手机端抓包http/https-Fiddler的设置
- IDM设置和解决下载速度慢方法2022.7.11
- 【威联通 NAS QNAP】学习篇
- 渝粤题库 陕西师范大学 《旅游法规》作业
热门文章
- 干货 | 有赞数据仓库实践之路
- Flask-SQLAlchemy 对数据库的过滤查询
- Python类中的私有属性和私有方法
- 有功功率 无功功率 功率因数
- Ignite Compute helloworld-分布式计算
- Two-Stream RNN/CNN for Action Recognition in 3D Videos-阅读笔记
- 【C++】C++类的学习(五)——纯虚函数与抽象类
- leetcode —— 面试题 17.12. BiNode
- leetcode - 1191. K 次串联后最大子数组之和
- 论文编写时,如何添加参考文献索引