导航:首页 > 编程语言 > jsp处理请求参数编码

jsp处理请求参数编码

发布时间:2023-12-23 21:27:11

jsP 页面编码改为UTF-8或GBK,request.getParameter传值乱码

解决中文乱码
1)解决表单post方式提交参数时参数乱码
request.setCharacterEncoding("GBK");
注:a.置于得到的第一个参数之前【request.getParameter("XXX");】
b.不要写成response.setCharacterEnconding("GBK");
2) 解决表单get方式提交参数时的乱码
修改server.xml文件-->URIEncoding="GBK"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="GBK"/>
注:改变server.xml后tomcat不会reload,需要重启tomcat才会有效
3)解决的是servlet页面显示的乱码(servlet接受数据后显示数据)
response.setCharacterEnconding("GBK"); <==>
response.setContentType("text/html;charset=GBK");语句的后半句
4)url地址包含中文参数或者<jsp:param name="user" value="中文">
<%request.setCharacterEncoding("GBK");%>

注意:这里到底是用gbk或者是用utf-8与你jsp或html页面的编码方式有关,要保证servlet的编码方式与向其提交数据的jsp页面或html页面的编码一致。

如果你不想看这些东西,我可以给你一个模板代码
servlet文件头:
public class XXXXX extends HttpServlet{

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throwsServletException,IOException {
resp.setContentType("text/html;charset=gbk");
//解决的是servlet页面显示的乱码
req.setCharacterEncoding("GBK");
//解决post方式参数传递的参数乱码
PrintWriter out = resp.getWriter();
......
}

protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
this.doGet(req, resp);
}

}

jsp文件开头:
<%@ page contentType="text/html;charset=GBK"%>
<%request.setCharacterEnconding("GBK");%>

⑵ 如何解决 jsp 中url传值的中文乱码问题

第一步:在tomcat 的server.xml文件中设置web服务器端口配制中加下面两句:
useBodyEncodingForURI="true"
URIEncoding="UTF-8"

第二步:JSP页面编专码用UTF-8(也可以用“gb2312",第一步与属解码要一至)传值时编码一下:
以传递的参数为strPar为例, 在传递数据前将strPar进行编码java.net.URLEncoder.encode(strPar,"UTF-8");

第二步:解码 在获取数据服务器端Action中得到的strPar进行解码java.net.URLDecoder.decode(strPar,"UTF-8");
本人测试时传入action中可以不解码也正常。

举例:

Url传值:
<a href="myPage.jsp?strPar=<%=java.net.URLEncoder.encode("中文参数值","UTF-8")%>">点击这里</a>

//下面是解码
String cnStr=java.net.URLDecoder.decode(strPar,"GB2312");

⑶ JSP页面之间传递参数,参数中有中文,编码格式都设置的UTF-8,为什么还乱码

获取传过来的参数前

使用下面语句设置一下编码:

request.setCharacterEncoding("utf-8");

⑷ jsp插入数据库乱码 中文的参数怎么处理

1、JSP页面乱码
这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要在页面开始地方用下面代码指定字符集编码即可,
2、数据库乱码
这种乱码会使你插入数据库的中文变成乱码,或者读出显示时也是乱码,解决方法如下: 在数据库连接字符串中加入编码字符集 String
Url="jdbc:mysql://localhost/digitgulf?user=root&password=root&useUnicode=true&characterEncoding=GB2312";
并在页面中使用如下代码:
response.setContentType("text/html;charset=gb2312"); request.setCharacterEncoding("gb2312");
3、中文作为参数传递乱码
当我们把一段中文字符作为参数传递个另一页面时,也会出现乱码情况,解决方法如下: 在参数传递时对参数编码,比如
RearshRes.jsp?keywords=" + java.net.URLEncoder.encode(keywords) 然后在接收参数页面使用如下语句接收
keywords=new String(request.getParameter("keywords").getBytes("8859_1"));
response.sendRedirect("?gh=0001&xm=" + java.net.URLEncoder.encode("忘忧草")); String s=new String(request.getParameter("xm").getBytes("ISO8859_1"),"gb2312"); out.println(s);
4、JSP页面乱码加这句?
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="err.jsp" %>
5、在form中用get方法传参乱码解决方法 如: 1、 login.jsp

<%@ page language="java" contentType="text/html;charset=GBK"%> <html> <head>
<title>get传参乱码问题</title> </head> <body>
<form name="form1" action="login_do.jsp" method="GET"> <input type="text" name="username"/><br>
<input type="password" name="password"/><input type="submit" value="提交"/> </form> </body> </html> ============ 2、login_do.jsp
<%@ page language="java" contentType="text/html;charset=GBK"%> <%
String temp=request.getParameter("username"); if(temp!=null){ temp=new String(temp.getBytes("8859_1"),"GBK"); }
out.println(temp); %>

阅读全文

与jsp处理请求参数编码相关的资料

热点内容
频率检测程序 浏览:952
怎么做网站付费链接 浏览:662
js在当前页面刷新 浏览:223
高级摄影闪光灯应用视频教程下载 浏览:804
怎么把图片加入视频文件夹 浏览:734
鼠标右键的压缩文件 浏览:44
awr导出cad文件 浏览:925
参公文件去哪里找 浏览:827
excel表批量日期设置成文件夹存放 浏览:90
如何把数据库加入其中 浏览:661
编程除法怎么取消取整 浏览:625
股票编程软件哪里有卖 浏览:503
access导入多个txt文件 浏览:917
大脸app安卓下载 浏览:439
怎么休改文件名 浏览:989
cdr导出图片不显示文件名 浏览:761
pcdmis如何离线编程 浏览:201
微信推文插入文件 浏览:844
生产文件柜图片 浏览:244
如何设置微信数据增加 浏览:95

友情链接