1. 程式人生 > >servlet/jsp傳值亂碼、超連結傳值亂碼解決辦法

servlet/jsp傳值亂碼、超連結傳值亂碼解決辦法

在jsp中,我們經常從資料庫讀取資料返回客戶端,但我們常常在製作時出現亂碼現象,所以我們可以用<%request.setCharacterEncoding("UTF-8");%>這個方法來保證中文的正確輸出,下面舉個例子吧,

我們要接住表單的值或者把資料庫資料打印出來的之前,先把<%request.setCharacterEncoding("UTF-8");%>放在他們的前面,然後,表單的提交方式必須是post,即method="post",這樣可以閉避免亂碼了,請看下面:

<%request.setCharacterEncoding("UTF-8");%>

<form action="" method="post">

姓名:<input type="text" name="name"/>

<br/>

性別:<input type="text" name="sex" />

<% 

String name=requset.getParameter("name");

String sex=request.getParameter("sex");out.print(name);

out.print(sex);

%>

</form>

常見的超連結傳值亂碼解決辦法

       String chapter=request.getParameter("chapter");   
       chapter= new String(chapter.getBytes("ISO-8859-1"),"utf-8");

或者有時使用者登陸時,我們需要在某一頁用到使用者名稱或者密碼,我們可以用下面這種方法來記住,在其他頁面可以隨便呼叫,如:

<%request.setCharacterEncoding("UTF-8");%>

<form action="" method="post">

使用者名稱:<input type="text" name="name"/>

<br/>

密碼:<input type="password" name="password" />

<form/>

String name=requset.getParameter("name");

String password=request.getParameter("password");

application.setAttribute("names",name);    
application.setAttribute("passwords",password);密碼和使用者名稱就這樣被記住了,在其他也可以隨便呼叫,如下

application.getAttribute(“names");

application.getAttribute("passwords");

<%

out.print(application.getAttribute(“names"));

out.print(application.getAttribute(“passwords")

%>

這樣就會輸出文字框的值

servlet傳值到頁面亂碼解決辦法:

String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");

response.setContentType("text/html;charset=UTF-8;pageEncoding=UTF-8");