通过过滤器解决post方式请求参数编码问题和响应编码问题
来源:互联网 发布:linux i2c驱动 编辑:程序博客网 时间:2024/05/16 00:46
1。SetCharacterEncodingFilter.java文件:
package com.itheima.encoding;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;//解决post方式请求参数和响应编码问题的过滤器public class SetCharacterEncodingFilter implements Filter { private FilterConfig filterConfig; public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { String encoding = filterConfig.getInitParameter("encoding");//用户可能忘记了配置该参数 if(encoding==null){ encoding = "UTF-8";//默认编码 } request.setCharacterEncoding(encoding);//只能解决POST请求参数的中文问题 response.setCharacterEncoding(encoding);//输出流编码 response.setContentType("text/html;charset="+encoding);//输出流编码,通知了客户端应该使用的编码 chain.doFilter(request, response); } public void destroy() { }}
2。web.xml文件:
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>ServletDemo2</servlet-name> <servlet-class>ServletDemo2</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo2</servlet-name> <url-pattern>/servlet/ServletDemo2</url-pattern> </servlet-mapping><welcome-file-list> <welcome-file>index.jsp</welcome-file></welcome-file-list><filter> <filter-name>SetCharacterEncodingFilter</filter-name> <filter-class>com.itheima.encoding.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping><!-- 按照此标签的出现顺序 --> <filter-name>SetCharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
3。ServletDemo2.java文件:
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 ServletDemo2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.getWriter().write(name+"<br/>"); response.getWriter().write("你好啊,你吃了吗"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }}
4。1.jsp文件:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>title</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="${pageContext.request.contextPath}/servlet/ServletDemo2" method="post"> <input type="text" name="name"/><input type="submit" value="保存"/> </form> </body></html>
运行结果:
张珊珊你好啊,你吃了吗
0 0
- 通过过滤器解决post方式请求参数编码问题和响应编码问题
- 利用过滤器解决GET和POST请求编码问题
- 中文编码过滤器: 界面输出中文及中文请求参数(post方式有效)编码过滤器
- 参数传递中的编码问题(get和post方式)
- 参数传递中的编码问题(get和post方式)
- 参数传递中的编码问题(get和post方式)
- Http响应和请求的编码问题
- 全站编码问题 请求和响应编码的处理
- post&get请求编码问题
- OkHttp post请求编码问题
- 过滤器解决中文编码问题
- 过滤器解决中文编码问题
- 全局过滤器解决编码问题
- 【Filter】利用过滤器Filter解决post传递的编码问题与利用EL表达式简化参数传递
- 获取请求参数编码问题
- http请求参数编码问题
- HTTP请求和响应中 中文urlEncode urlDecode编码问题
- Web请求响应编码问题详解
- (转载)jstl中<c:forEach>的用法
- 了解测试
- Random-0至100间的50个随机数
- 设计模式——模板方法模式(C++)
- 程序员之禅
- 通过过滤器解决post方式请求参数编码问题和响应编码问题
- 在复杂的项目开发中使用结对编程
- Android三种播放视频的方式
- 浏览器快捷方式被流氓不定时调戏肿么办
- ACM C++ 计算两点间的距离
- Struts2.0学习笔记---类型转换
- 一个很简单的查看电脑所支持的最大内存的方法
- HTML之标签
- 搜狗2017校园招聘笔试题