`
Supanccy2013
  • 浏览: 220779 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

处理web请求与响应的编码方式统一

阅读更多
    统一处理web请求与响应的编码方式即使防止出现乱码问题的要求,也是实施输入校验,输出编码等安全管控的措施。建议统一采用UTF-9字符编码。

实现方案:
1,设置tomcat,使得tomcat在处理Get请求参数的时候用UTF-8编码。编辑tomcat的配置文件server.xml 设置<conector>URLEncoding属性为"UTF-8"。
 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
               URLEncoding="UFT-8"
             />
              <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"    
               URIEncoding="UTF-8"/>

注意:最好是把所有的connector的编码属性都设置成utf-8的。


2,用filter来设置处理post请求参数的编码方式为UTF-8

package com.supan.framework.filter;
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;

public class EncodingFilter implements Filter
{
	private String encoding = "utf-8";

	public void init(FilterConfig filterConfig) throws ServletException
	{
		String encodingParam = filterConfig.getInitParameter("encoding");
		if (null != encodingParam)
		{
			encoding = encodingParam;
		}
	}

	/**
	 * <读取filter配置的默认编码方式>
	 */
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain filterChin) throws IOException, ServletException
	{
		request.setCharacterEncoding(encoding);
		filterChin.doFilter(request, response);
	}

	public void destroy()
	{
	}
}


	<filter>
	     <filter-name>EncodingFilter</filter-name>
	     <filter-class>com.supan.framework.filter.EncodingFilter</filter-class>
	     <init-param>
	         <param-name>encoding</param-name>
	         <param-value>UTF-8</param-value>
	     </init-param>
	</filter>
	<filter-mapping>
	     <filter-name>EncodingFilter</filter-name>
	     <url-pattern>/*</url-pattern>
	</filter-mapping>



3,处理完get,post请求的参数编码之后,为每个jsp页面加入page指令,设置相应页面的编码方式为UTF-8,

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
或者直接在代码中设置相应的编码方式:
response.setCharacterEncoding("UTF-8");


至此系统统一编码处理,已经处理完毕,在所有地方都不能设置request,respon的编码格式也能正常显示中文字符。
下面是个实例:
登陆页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  
  <script type="text/javascript">
     function clearUserNameAndPassword()
     {
    	 document.getElementById("userName").value = "";
    	 document.getElementById("password").value = "";
     }
  </script>
  
  <body onload="clearUserNameAndPassword();">
    This is my JSP page. <br>
    <form action="dealLogin.jsp" method="get" autocomplete="false">
      <input type="text" name="userName" id="userName" autocomplete="false"/>
      <input type="password" name="password" id="password" autocomplete="false"/>
      <input type="submit" name="登陆"/>  
    </form>
  </body>
</html>


登陆处理页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
  <body>
      <%
         String userName = request.getParameter("userName");
         String password = request.getParameter("password");
      %>
      <%= userName %>
      <%= password %>
  </body>
</html>



注意:如果读取数据库数据,则需要把数据库编码统一设置成utf-8的编码

分享到:
评论

相关推荐

    Java Web请求与响应实例详解

    Java Web请求与响应是构建Web应用程序的核心机制,它允许客户端(通常是浏览器)与服务器进行通信。在Java Web中,这个过程通常涉及到Servlet,一个用于处理HTTP请求并生成响应的Java类。Servlet容器(如Tomcat)...

    Http协议之请求头和响应头

    3. **Accept-Encoding**: 表示客户端可接受的内容编码方式,如"gzip"或"deflate",这通常用于压缩数据,减少传输量。 4. **Accept-Language**: 客户端优先的语言设置,用于告知服务器返回哪种语言的资源,如"zh-CN...

    http协议请求响应详解

    4. **关闭连接**:完成一次请求响应过程后,客户端与服务器之间的TCP连接被关闭。 在HTTP1.0中,每一次新的页面访问都需要重新建立TCP连接,这意味着对于每一个页面的访问,都会经历连接建立、数据传输、连接关闭的...

    java web请求和响应中出现中文乱码问题的解析

    不同的编码方式,如ASCII、GBK、UTF-8等,对应着不同的字符集和编码规则。当编码和解码使用不同的字符集时,就可能出现乱码现象。 在Java Web中,乱码问题主要发生在两个阶段:一是客户端(浏览器)向服务器发送...

    发送Post请求,内容格式为xml,并获取响应内容

    在IT领域,特别是Web开发与服务交互中,发送POST请求并处理XML格式的数据是一项常见的需求。根据提供的文件信息,我们可以深入解析如何使用Java语言通过Apache HttpClient库来实现这一功能。 ### 发送POST请求并...

    解读PHP的Yii框架中请求与响应的处理流程

    在Yii框架中,请求和响应处理是构建Web应用的关键环节。Yii框架采用MVC(模型-视图-控制...开发者应深入理解Yii框架中的请求与响应处理机制,以便能够更好地利用框架提供的各种功能和组件,开发出健壮且高效的Web应用。

    在传输层上压缩WebService的请求和响应

    在传输层上压缩WebService的请求和响应是提高网络通信效率的一种常见策略,特别是在处理大量数据交换或带宽有限的环境中。这一技术旨在减小通过网络传输的数据量,从而加快数据传输速度,降低服务器负载,并节省网络...

    C++Http上传文件到web服务器,解决中文参数乱码

    虽然它提供了一种方便的方式来发送HTTP请求,但在处理非ASCII字符时,可能需要额外的步骤来确保正确编码。具体来说,我们需要在设置请求头时,明确指定字符集,比如`Content-Type: application/x-...

    javaweb全站请求编码过滤器

    通过实现Filter接口并配置在web.xml文件中,我们可以对所有请求进行统一处理,比如登录验证、数据编码转换等。 编码过滤器的主要任务是解决字符编码问题。在HTTP请求中,默认的编码方式通常是ISO-8859-1,这与...

    web仿照中央处理器

    这些组件在Web应用中起到了类似于CPU的解析、执行指令的作用,对用户请求进行处理并返回响应。 1. **Servlet**:Servlet是Java Web的核心组件之一,它是Java编写的服务器端程序,主要功能是接收并响应来自客户端...

    HTTP常见请求和响应头说明1

    15. Transfer-Encoding: 响应传输的编码方式,如chunked。 16. Vary: 告诉缓存服务器如何根据请求头选择缓存资源。 17. WWW-Authenticate: 身份验证的挑战信息,用于401 Unauthorized响应。 以上是HTTP请求和响应头...

    Http消息头中常用的请求头和响应头.docx

    * Accept-Encoding:浏览器能够进行解码的数据编码方式。 * Authorization:授 权 信 息, 通 常 出 现 在 对 服 务 器 发 送 的 WWW-Authenticate 头的应答中。 * Connection:表示是否需要持久连接。 * Content-...

    编码过滤器

    此外,`web.xml`中的配置标签如`post`、`get`和`过滤器`(filter)都是与Web应用中的请求处理密切相关的。`post`和`get`标签可能用于指定过滤器只对特定的HTTP方法生效,而`过滤器`标签则涉及过滤器的注册和映射。 ...

    PHPCurlClass可以轻松发送HTTP请求并与WebAPI集成

    同时,其内置了对 JSON 的支持,可以自动处理请求和响应的编码解码。 8. **文件上传和下载**: 通过 `addFile` 方法,可以方便地将本地文件作为请求的一部分发送,这对于文件上传功能很有帮助。同时,`save_to` ...

    轻松学Java Web开发

    当服务器发送一个响应时,必须告知浏览器所发送内容的类型,例如图片、文本文件、视频等,以及编码方式,这样浏览器才能正确地显示内容。 MIME类型是HTTP协议内容类型的基础,用于描述消息内容的性质和格式。它扩展...

    Http通过响应头控制浏览器行为

    头信息包含了关于请求或响应的元数据,如缓存策略、内容类型、编码方式等。 2. 请求头:请求头字段例如`Host`(指定服务器的域名和端口)、`User-Agent`(发送请求的应用程序信息)、`Accept`(客户端可接受的数据...

    springmvc+mybatis面试题

    POST请求中文乱码可以通过在web.xml配置CharacterEncodingFilter解决,设定请求和响应的编码为UTF-8。对于GET请求,可以通过以下两种方式处理乱码: 1. 修改Tomcat配置文件,设置Connector的URIEncoding属性为"utf-8...

    Servlet编码过滤器的实现

    通过这种方式,我们确保了整个Web应用程序的请求和响应都使用一致的编码方式,避免了乱码问题。编码过滤器是一个非常实用的工具,对于处理多语言环境或包含复杂字符的Web应用来说,是必不可少的一部分。 总结一下,...

    常见请求和响应头-说明1

    在HTTP协议中,请求头和响应头是网络通信中非常重要的一部分,它们承载了客户端与服务器之间交互的关键信息。本文将详细解析这些常见的HTTP头字段及其作用。 1. Accept:这个头字段指定了客户端能够接收的内容类型...

Global site tag (gtag.js) - Google Analytics