javaweb基础——解决请求参数的中文乱码问题
Posted 名字真的很急用
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaweb基础——解决请求参数的中文乱码问题相关的知识,希望对你有一定的参考价值。
中文乱码处理分二种情况:
第一种情况:处理get方式提交的中文乱码
使用的String的构造方法解决中文乱码:new String(字节数组,编码格式)
代码:String newValue = new String(value.getBytes(“ISO8859-1”),“UTF-8”)。
第二种情况:处理post请求的中文乱码问题
post提交,会把参数首先提交到request对象的缓冲区中,缓冲区默认的编码格式为ISO-8859-1,不支持中文。
代码:request.setCharacterEncoding(“utf-8”);
<form action="/getpost" method="get">
用户名: <input type="text" name="name"></br>
密码:<input type="text" name="password"></br>
<input type="submit" value="提交">
</form>
<hr size="2" color="red">
<form action="/getpost" method="post">
用户名:<input type="text" name="name"></br>
密码:<input type="text" name="password"></br>
<input type="submit" value="提交">
</form>
@WebServlet("/getpost")
public class GetAndPost extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//也要处理响应中文乱码
String name = req.getParameter("name");
String s = new String(name.getBytes("ISO8859-1"), "utf-8");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().write(name);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
String s = req.getParameter("name");
resp.setContentType("text/html;charset=utf-8");
resp.getWriter().print(s);
}
}
注意:要注意处理中文乱码的代码所放位置,如果位置放错,则无效
2.通过Requset对象传递数据。
什么是域对象:在一定范围内,可以存值和取值。
存值:setAttribute(String key,Object obj);
取值:Object obj = getAttribute(String key);
删除值:removeAttribute(String key);
以上是关于javaweb基础——解决请求参数的中文乱码问题的主要内容,如果未能解决你的问题,请参考以下文章