导航:首页 > 编程语言 > 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处理请求参数编码相关的资料

热点内容
口袋妖怪银魂安卓v11 浏览:1
网站上芒果tv的账号都是什么 浏览:104
带公式的表格如何刷新数据 浏览:81
数据标注语音和2d哪个好 浏览:145
保存excel文件的方法 浏览:655
手机上看不到电脑上的文件 浏览:626
关于ps的微信公众号 浏览:612
矩阵论教程 浏览:971
字体文件分系统吗 浏览:921
编程一级考试要带什么证件 浏览:923
extjs表格修改前数据 浏览:612
什么是数据库的函数 浏览:722
oppo手机怎么用数据线连接电脑 浏览:247
恒智天成备份文件在哪里 浏览:976
电脑没联网怎么拷贝文件 浏览:224
wps工具栏怎么换成中文 浏览:338
win7和xp共享文件 浏览:883
苹果4代音量键没反应 浏览:827
怎样打开tif文件 浏览:153
java下载文件zip 浏览:440

友情链接