通过过滤器解决post方式请求参数编码问题和响应编码问题
2016-09-16 10:16
567 查看
1。SetCharacterEncodingFilter.java文件:
2。web.xml文件:
3。ServletDemo2.java文件:
4。1.jsp文件:
运行结果:
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>
运行结果:
张珊珊 你好啊,你吃了吗
相关文章推荐
- 利用过滤器解决GET和POST请求编码问题
- WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法
- Http请求post方法,请求和响应中文乱码问题的一点解决方法
- 解决servlet中文乱码问题及get、post请求方式的讲解
- iOS开发工具-如何使用网络封包分析工具Charles,通过配置proxy对http、https、tcp、udp 等协议的请求响应过程交互信息进行分析、判断、解决我们移动开发中的遇到的各种实际问题。
- WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法
- javawebday56(粗粒度权限控制通过过滤器 请求编码问题 )
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- 各种编码问题产生原因以及解决办法---------响应编码,请求编码,URL编码
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法
- 解决“HTTP/1.1 405 Method not allowed”问题,让静态文件响应POST请求[原创]
- 解决在Unity3D中通过Post向服务器提交请求,表单中带有中文导致的乱码问题!
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)
- Web容器下的get和post方式请求的乱码问题解决
- 解决spring3.0.5使用RestTemplate发送post请求响应中文乱码问题
- WebService 通过POST方式访问时候,因 URL 意外地以“/方法名”结束,请求格式无法识别 解决办法
- C++ ws2_32封装http请求,支持http get、post、filedown,解决请求编码问题
- 使用过滤器(Filter)解决请求参数中文乱码问题(复杂方式)