導航:首頁 > 編程語言 > 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處理請求參數編碼相關的資料

熱點內容
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341

友情鏈接