您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
15_Request_获取请求参数中文乱码问题处理
发布时间:2022-08-11 21:58:03编辑:雪饮阅读()
get与post请求参数接收时候的两种情况
有get和post示例如:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username= request.getParameter("username");
System.out.println("doPost获取到的参数值:"+username);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username=request.getParameter("username");
System.out.println("doGet获取到的参数值:"+username);
}
那么对于这样的get和post的接收参数的方式。
像是这样的访问:localhost:8080/youku_war_exploded/Movie?username=雪饮
也即直接get访问,有了中文的参数值,也是接收到后不会乱码的,在output控制台上输出不乱码。
但是若是表单提交如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="Movie" method="POST">
<input name="username">
<input name="password">
<input type="checkbox" name="hobby" value="game">游戏
<input type="checkbox" name="hobby" value="study">学习
<input type="submit" value="提交">
</form>
</body>
</html>
这样的方式则会导致post接收到的中文参数值变成乱码。
乱码的解决
只需要在获取请求参数前先将请求里面的编码修改为和页面上声明的编码一致即可。(get方式请求可以忽略,get方式据说浏览器已经给处理了)。
则post示例如:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username= request.getParameter("username");
System.out.println("doPost获取到的参数值:"+username);
}
关键字词:Request,获取,请求,参数,中文,乱码,问题,处理