表單提交時,獲取輸入的中文參數時,瀏覽器會出現中文亂碼,這時在表單響應的jsp文件中加入request.setCharacterEncoding("utf-8");便可解決。相關代碼以下:html
附:表單提交的jsp文件內容:java
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>瀏覽器
<%jsp
String path = request.getContextPath();post
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";測試
%>ui
<html>spa
<head>orm
<META http-equiv="Content-Type" content="text/html; charset=utf-8">htm
<title>測試JSP內置對象</title>
</head>
<body>
<form action="internalObjResult.jsp" method="post">
uname:<input type="text" name="uname"><br/>
pwd:<input type="password" name="pwd"><br/>
hobbies:<input type="text" name="hobby">
<input type="text" name="hobby"><br/>
submit:<input type="submit" name="submit"/>
</form>
</body>
</html>
表單響應的jsp內容以下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>My JSP 'internalObjResult.jsp' starting page</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8");//不加此句,瀏覽器端中文會顯示亂碼
String uname=request.getParameter("uname");
out.println(uname+"<br>");
Enumeration<?> e=request.getParameterNames();//不加<?>會有警告
while(e.hasMoreElements()){
out.println(e.nextElement()+"<br>");
}
out.println("全部values:"+"<br>");
String[] s=request.getParameterValues("hobby");
for(String temp:s){
out.println(temp+"<br>");
}
%>
</body>
</html>