解决JSP url传值中文乱码问题

1.找到tomcat目录下的conf文件夹下的server.xml文件,找到contactor 标签添加一条代码如下

URLEncoding="utf-8"

这里写图片描述

2.第二种方法,打开该项目下的tomcat中的server.xml 如图所示
这里写图片描述

加上一行useBodyEncodingForURI="true"

改好之后一定要重启tomcat服务器

运行效果

这里写图片描述
完整代码
reg.jsp

<a href="request.jsp?username=李斯">测试URL传参数</a>

request.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>request内置对象</title>
</head>
<body>
<h1>request内置对象</h1>
<% 
 request.setCharacterEncoding("utf-8");//解决中文乱码问题,无法解决URL传递中文出现的乱码问题
 request.setAttribute("password", "123456");
%>
用户名:<%=request.getParameter("username") %><br>
爱好:<% 
if(request.getParameterValues("favorite")!=null){
    String[] favorites = request.getParameterValues("favorite");
    for(int i=0;i<favorites.length;i++){
        out.println(favorites[i]+"&nbsp;&nbsp;");
    }
}
%>
密码:<%=request.getAttribute("password") %><br>
请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号<%=request.getProtocol() %><br>
服务器主机名<%=request.getServerName() %><br>
服务器端口<%=request.getServerPort() %><br>
请求文件长度<%=request.getContentLength() %><br>
请求客户端的IP地址<%=request.getRemoteAddr() %><br>
请求的真是路径<%=request.getRealPath("reques.jsp") %><br>
请求的上下文路径<%=request.getContextPath() %><br>



<%
 out.println("<h2>将进酒</h2>");
out.println("将进酒,杯莫停<br>");
out.flush();
out.println("今日听君歌一曲,与尔同销万古愁<br>");
out.println("人生得意须尽欢,莫使金樽空对月<br>");

%>
缓冲区大小 : <%=out.getBufferSize() %>byte<br>
缓冲区剩余大小: <%=out.getRemaining() %>byte<br>
是否自动清空缓冲区: <%=out.isAutoFlush()%><br>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/cccrunner/article/details/81042152
今日推荐