form.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*"%>
<!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>
<center><h3>用户登录</h3></center>
<body style="text-align: center;">
<a href="<%=request.getContextPath()%>/CharacterServlet?name=
传智播客&password=123456">点击超链接</a>
<form action="<%=request.getContextPath() %>/CharacterServlet" method="get">
<table border="1" width="600px" cellpadding="0" cellspacing="0" align="center">
<tr>
<td height="30px" align="center">用户名:</td>
<td>&nbsp;<input type="text" name="username"/></td>
</tr>
<tr>
<td height="30px" align="center">密&nbsp;码:</td>
<td>&nbsp;<input type="password" name="password"/></td>
</tr>
<tr>
<td height="30px" colspan="2" align="center">
<input type="submit" value="登录" />&nbsp;&nbsp;&nbsp;&nbsp;
<input type="reset" value="重置" />
</td>
</tr>
</table>
</form>
</body>
</html>

过滤器:

 /**
*
*/
package cn.itcast.filter; import java.io.IOException;
import java.io.UnsupportedEncodingException; 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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import javax.servlet.http.HttpServletResponse; import com.sun.org.apache.regexp.internal.recompile; /**TODO
* @author sqy
* 2018年8月5日上午9:46:57
*/
public class CharacterFilter implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException { } @Override
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
//拦截所有请求 解决全站中文编码
//指定 request 和response的编码
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8"); CharacterRequest characterRequest = new CharacterRequest(request);
chain.doFilter(characterRequest, response); } @Override
public void destroy() { } }
/**
* TODO 针对request对象进行包装
* @author sqy
* 2018年8月5日上午11:12:18
*/
class CharacterRequest extends HttpServletRequestWrapper{ public CharacterRequest(HttpServletRequest request) {
super(request);
} public String getParameter(String name){
String value = super.getParameter(name);
if(value==null){
return null;
}
String method = super.getMethod();
if("get".equalsIgnoreCase(method)){
try {
value = new String(value.getBytes("iso-8859-1"),"utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} } return value; } }

处理页面请求:

 /**
*
*/
package cn.itcast.chapter01.servlet; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; /**TODO
* @author sqy
* 2018年8月5日上午9:42:11
*/
public class CharacterServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response){
System.out.println(request.getParameter("username"));
System.out.println(request.getParameter("password"));
} public void doPost(HttpServletRequest request,HttpServletResponse response){
doGet(request, response);
}
}

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_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>chapter01</display-name> <filter>
<filter-name>CharacterFilter</filter-name>
<filter-class>cn.itcast.filter.CharacterFilter</filter-class>
</filter> <filter-mapping>
<filter-name>CharacterFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <servlet>
<servlet-name>CharacterServlet</servlet-name>
<servlet-class>cn.itcast.chapter01.servlet.CharacterServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CharacterServlet</servlet-name>
<url-pattern>/CharacterServlet</url-pattern>
</servlet-mapping> </web-app>

java之过滤器的更多相关文章

  1. java编码过滤器

    1.java编码过滤器的作用: java过滤器能够对目标资源的请求和响应进行截取,过滤信息执行的优先级高于servlet. 2.java过滤器的使用: (1)编写一个普通的java类,实现Filter ...

  2. java 文件过滤器

    创建文件过滤器 MyFilter ,实现 FileFilter 接口,实现 accept() 方法: package com.test.IODemo1; import java.io.File; im ...

  3. Java Filter过滤器(拦截路径的配置+拦截方式的配置+生命周期+多个过滤器的先后执行顺序)

    Java Filter过滤器+Listen监听器 啥是过滤器 顾名思义即过滤掉一些东西,比如我们经历的高考中考都是过滤器,他过滤掉一些在学习这一方面不是很好的人,而那些成绩好的人则升入高中,大学. 但 ...

  4. Java web--Filter过滤器分IP统计访问次数

    分IP统计访问次数即网站统计每个IP地址访问本网站的次数. 分析 因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便. 因为需要分IP统计,所以可以在过滤器中创建 ...

  5. java中用过滤器解决字符编码问题

    java的web程序经常出现中文乱码的问题,用一个实现了Filter接口的过滤器类可以较好地解决这个问题. 方式一 EncodingFilter import java.io.IOException; ...

  6. Java 创建过滤器 解析xml文件

    今天写了一个过滤器demo,现在是解析actions.xml文件,得到action中的业务规则:不需要导入任何jar包 ActionFilter过滤器类: package accp.com.xh.ut ...

  7. Java Filter过滤器的简单总结

    1.Filter的介绍 Filter技术是servlet 2.3新增加的功能.它能够对Servlet容器的请求和响应对象进行检查和修改. Filter本身并不生成请求和响应对象,只是提供过滤功能. F ...

  8. java利用过滤器实现编码的转换,内容输出的替换

    在页面建个表单 <form action="login.do" method="post"> <input type="text&q ...

  9. java之过滤器Filter

    Java三大器之过滤器(Filter)的工作原理和代码演示   一.Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对w ...

  10. java文件过滤器的使用

    前言: java.io.FileFilter(过滤器接口)boolean accept(File pathname) File类提供了如下方法使用过滤器:public File[] listFiles ...

随机推荐

  1. (87)Wangdao.com第二十天_JavaScript document 节点对象

    document 节点对象, 代表整个文档,每张网页都有自己的 document 对象. window.document 当浏览器开始加载文档时就存在了 正常的网页使用 document 或者 win ...

  2. React 简介及其基本使用

    相关概念: 插件: 别人写好的第三方库 xxx 插件: jQuery 插件  /  react 插件 全家桶: 核心库 + 相关插件 构建项目: 对项目源码 进行 编译.合并.压缩......处理,生 ...

  3. centos中安装配置nginx完成之后主机无法访问

    原因 VMware中安装centos7,安装配置完成nginx后,主机无法访问.虚拟机没有放行Nginx默认端口80. 解决办法 首先:开启 web 端口 firewall-cmd --permane ...

  4. mysql 日志类型

    mysql有四种日志: 所有日志:general log 慢查询日志:slow log 二进制日志:binary log 错误日志:error log windows下在my.ini里配置,linux ...

  5. [ionic3.x开发记录]ng-content使用

    在ionic开发公用组件的时候,我一直在想有没有angular有没有像vue一样的slot插槽.方便组件后期扩展. 然后去翻文档,发现有ng-content这么个东西,用法很像vue的slot. 组件 ...

  6. numpy(二)

    通用函数: np.add  加 np.subtract  减 np.multiply  乘 np.divide  除 np.floor_divide  地板乘除法,取商 np.power  指数运算  ...

  7. 查看虚拟机里的Centos7的IP

    这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先 学会查看虚拟机里的Centos7的IP地址 首先我们登录操作系统 用 ...

  8. python一次性解压多层嵌套zip压缩包

    zip包里的结构不是固定的,有可能只需要解压一次就完成了,有可能解压后里面还存在zip文件,需要继续进行解压缩 写了个简单的递归函数来实现解压非固定结构zip包,若解压后的zip子目录下仍含有zip文 ...

  9. spring注解:反射与配置

    上图运行结果按下图配置文件中的配置,进行的spring扫描加载.无论是componentScan方式,还是xml配置方式,如果one是实现了一个接口的类,如one_Interface,那么在程序中用o ...

  10. vue中keep-alive使用时,注意要点

    <keep-alive exclude="QRCode,NewsInfor,VipRecordDetail"> <router-view></rout ...