回看JSP——解决提交form表单出现的乱码问题
来源:互联网 发布:怎么积累淘宝关注人数 编辑:程序博客网 时间:2024/05/22 11:58
最近又开始把JSP重新拿出来学一遍,有了不少的收货,有些之前没注意到的小细节也发现了解决的方法,比如form表单的乱码问题。乱码问题在写web程序时很常见,也很让人头疼,有时候一个疏忽就会出现乱码,接下来我主要讲一下我学到的解决方法。
(一)使用post请求提交表单出现乱码问题
现在有如下的代码,这段代码会使用post方式 提交相应的内容到request.jsp这个页面。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!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>用户注册</title></head><body><h1>用户注册</h1><hr/><form action="request.jsp" method="post">用户名:<input type="text" name="userName" /> <br/>爱好:<input type="checkbox" name="favorite" value="read">阅读<input type="checkbox" name="favorite" value="music">音乐<input type="checkbox" name="favorite" value="dance">跳舞<br/><input type="submit" value="提交"/></form></body></html>requst.jsp的代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!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>request内置对象</title></head><body><h1>request内置对象</h1><hr/>用户名:<%=request.getParameter("userName") %><br/>爱好:<%String[] favorites = request.getParameterValues("favorite");if(null != favorites) {for(String favorite : favorites) {out.println(favorite + " ");}}%><br/></body></html>对于从reg.jsp提交过来的请求,如果只是使用requst.getParameter(String name)的方式来获取userName的参数值,如果userName的值里面包含中文,那么获取到的值就会出现乱码现象。出现这个问题的原因是提交表单时tomcat服务器(以tomcat为例)默认提交的字符编码是ISO-8859,但是中文的编码为UTF-8,request.jsp收到请求时未给request请求设置字符集,而要解决这个问题,就需要服务器端的最开始处将请求的数据设置为“UTF-8”就行了,输入如下语句:request. setCharacterEncoding(“UTF-8”);这样用户在服务器端获取到的中文数据就不再是乱码了。注意在使用setCharacterEncoding方法设置字符编码时设置的编码要与请求页面的字符编码一致。
(二)通过URL传递参数出现的乱码问题
很多时候会通过URL来传递请求参数,如下对reg.jsp的代码做了修改:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!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>用户注册</title></head><body><h1>用户注册</h1><hr/><form action="request.jsp" method="post">用户名:<input type="text" name="userName" /> <br/>爱好:<input type="checkbox" name="favorite" value="read">阅读<input type="checkbox" name="favorite" value="music">音乐<input type="checkbox" name="favorite" value="dance">跳舞<br/><input type="submit" value="提交"/></form><a href="request.jsp?userName=李四">通过URL方式提交参数</a></body></html>添加了一个超链接,指向的也是request.jsp,传递了一个userName为李四的参数,这时通过request.getParameter(String name)方式获取参数值时也会出现乱码,而要解决这个乱码可以通过修改服务器的配置来实现,以tomcat服务器为例,修改tomcat 目录-> conf-> server.xml,修改如下内容:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>添加一个URIEncoding的配置即可。
还有更多的解决form表单乱码的方法可以参考这篇文章。
0 0
- 回看JSP——解决提交form表单出现的乱码问题
- JSP+Servlet学习经验1:解决form表单提交后相应页面中文乱码的问题
- 解决在JSP通过表单提交参数时,出现的乱码问题
- 解决 jsp表单提交中文乱码问题!
- 解决ajax提交表单出现乱码的问题
- Form表单提交数据的乱码问题
- Html的form表单提交到jsp中出现中文乱码
- jsp中form表单提交到serlvet中文乱码问题
- jsp表单提交中文乱码的解决
- 解决JSP的Form表单提交method=get时乱码
- form表单提交乱码问题
- Spring MVC 解决form表单提交中文乱码问题
- jsp提交表单的乱码问题
- jsp表单提交的中文乱码问题
- 解决表单提交时的乱码问题
- jsp表单提交乱码问题
- jsp提交表单乱码问题
- 表单form内容提交,中文乱码解决
- foreach语句和continue语句
- 82. Remove Duplicates from Sorted List II
- [网络流]poj1149 PIGS
- Shiro 介绍
- 【NOIP模拟】腐败
- 回看JSP——解决提交form表单出现的乱码问题
- hdu2089 数位dp
- 程序猿的8个好习惯
- child伪类选择符入门(2)
- linux下cp复制文件或目录指令介绍
- Minimum height tree
- bzoj3159: 决战
- MFC学习笔记——ASSERT、GetSystemMenu、IDM_ABOUTBOX
- shiro demo