统一处理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请求与响应是构建Web应用程序的核心机制,它允许客户端(通常是浏览器)与服务器进行通信。在Java Web中,这个过程通常涉及到Servlet,一个用于处理HTTP请求并生成响应的Java类。Servlet容器(如Tomcat)...
3. **Accept-Encoding**: 表示客户端可接受的内容编码方式,如"gzip"或"deflate",这通常用于压缩数据,减少传输量。 4. **Accept-Language**: 客户端优先的语言设置,用于告知服务器返回哪种语言的资源,如"zh-CN...
不同的编码方式,如ASCII、GBK、UTF-8等,对应着不同的字符集和编码规则。当编码和解码使用不同的字符集时,就可能出现乱码现象。 在Java Web中,乱码问题主要发生在两个阶段:一是客户端(浏览器)向服务器发送...
4. **关闭连接**:完成一次请求响应过程后,客户端与服务器之间的TCP连接被关闭。 在HTTP1.0中,每一次新的页面访问都需要重新建立TCP连接,这意味着对于每一个页面的访问,都会经历连接建立、数据传输、连接关闭的...
在IT领域,特别是Web开发与服务交互中,发送POST请求并处理XML格式的数据是一项常见的需求。根据提供的文件信息,我们可以深入解析如何使用Java语言通过Apache HttpClient库来实现这一功能。 ### 发送POST请求并...
在Yii框架中,请求和响应处理是构建Web应用的关键环节。Yii框架采用MVC(模型-视图-控制...开发者应深入理解Yii框架中的请求与响应处理机制,以便能够更好地利用框架提供的各种功能和组件,开发出健壮且高效的Web应用。
在传输层上压缩WebService的请求和响应是提高网络通信效率的一种常见策略,特别是在处理大量数据交换或带宽有限的环境中。这一技术旨在减小通过网络传输的数据量,从而加快数据传输速度,降低服务器负载,并节省网络...
虽然它提供了一种方便的方式来发送HTTP请求,但在处理非ASCII字符时,可能需要额外的步骤来确保正确编码。具体来说,我们需要在设置请求头时,明确指定字符集,比如`Content-Type: application/x-...
通过实现Filter接口并配置在web.xml文件中,我们可以对所有请求进行统一处理,比如登录验证、数据编码转换等。 编码过滤器的主要任务是解决字符编码问题。在HTTP请求中,默认的编码方式通常是ISO-8859-1,这与...
这些组件在Web应用中起到了类似于CPU的解析、执行指令的作用,对用户请求进行处理并返回响应。 1. **Servlet**:Servlet是Java Web的核心组件之一,它是Java编写的服务器端程序,主要功能是接收并响应来自客户端...
15. Transfer-Encoding: 响应传输的编码方式,如chunked。 16. Vary: 告诉缓存服务器如何根据请求头选择缓存资源。 17. WWW-Authenticate: 身份验证的挑战信息,用于401 Unauthorized响应。 以上是HTTP请求和响应头...
* Accept-Encoding:浏览器能够进行解码的数据编码方式。 * Authorization:授 权 信 息, 通 常 出 现 在 对 服 务 器 发 送 的 WWW-Authenticate 头的应答中。 * Connection:表示是否需要持久连接。 * Content-...
此外,`web.xml`中的配置标签如`post`、`get`和`过滤器`(filter)都是与Web应用中的请求处理密切相关的。`post`和`get`标签可能用于指定过滤器只对特定的HTTP方法生效,而`过滤器`标签则涉及过滤器的注册和映射。 ...
同时,其内置了对 JSON 的支持,可以自动处理请求和响应的编码解码。 8. **文件上传和下载**: 通过 `addFile` 方法,可以方便地将本地文件作为请求的一部分发送,这对于文件上传功能很有帮助。同时,`save_to` ...
当服务器发送一个响应时,必须告知浏览器所发送内容的类型,例如图片、文本文件、视频等,以及编码方式,这样浏览器才能正确地显示内容。 MIME类型是HTTP协议内容类型的基础,用于描述消息内容的性质和格式。它扩展...
头信息包含了关于请求或响应的元数据,如缓存策略、内容类型、编码方式等。 2. 请求头:请求头字段例如`Host`(指定服务器的域名和端口)、`User-Agent`(发送请求的应用程序信息)、`Accept`(客户端可接受的数据...
POST请求中文乱码可以通过在web.xml配置CharacterEncodingFilter解决,设定请求和响应的编码为UTF-8。对于GET请求,可以通过以下两种方式处理乱码: 1. 修改Tomcat配置文件,设置Connector的URIEncoding属性为"utf-8...
通过这种方式,我们确保了整个Web应用程序的请求和响应都使用一致的编码方式,避免了乱码问题。编码过滤器是一个非常实用的工具,对于处理多语言环境或包含复杂字符的Web应用来说,是必不可少的一部分。 总结一下,...
在HTTP协议中,请求头和响应头是网络通信中非常重要的一部分,它们承载了客户端与服务器之间交互的关键信息。本文将详细解析这些常见的HTTP头字段及其作用。 1. Accept:这个头字段指定了客户端能够接收的内容类型...
请求头和响应头包含额外的信息,如客户端的接收类型、用户代理、认证信息、响应的编码方式等,它们有助于服务器更好地理解客户端的需求和提供更精确的响应。 【Web服务器开发】 开发Web服务器涉及到接收并解析HTTP...