20160324servlet学习笔记HttpServletRequest对象中文乱码解决方法

1.可以通过sendRedirect方法向将要跳转的页面传递信息,具体方法如下

sendRedirect("servletUrl?username=user1&password=123")这里的servletUrl是要跳转的servlet的url,传递多个参数要用&符号分隔开.

2.接收数据的servlet中是用getParameter("参数名");方法来获取

3.session方法既可以传递字符串也可以传递对象.

4.tomcat有一个session域,session域里面一个name对应一个value.request.getSession()方法获取到了session对象

request.getSession().setAttribute("str1",value);可以用request.getSession().getAttribute("username");方法从session中获取属性或者所传递的对象.

5.servlet中文乱码的三种情况以及解决方法.

①表单form

post当浏览器已浏览器当前编码传递文字时tomcat已iso-8859-1,解决方法为request.setCharacterEncoding("utf-8");

get当浏览器以get方式提交数据时是通过请求行中提交,所以上面设置request对象方法不适用,解决办法new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8");

②超链接

测试超链接提交信息本质上是get提交,所以解决方法与get一致.

③sendRedirect()发生乱码当此页面以正确的编码收到数据后跳转到sendRedirect方法中的servlet时会再次以错误编码提交,在跳转的新页面应该再次以处理get的方法解决一次.

应该尽量使用post方法.另外session方法不会出现乱码.

6.当web服务器得到请求后会把请求信息封装到HttpServletRequest对象.可以通过这个对象的一些方法获取到这些信息.

① getRequestURL方法返回客户端发出请求时完整的URL

②getRequestURI方法返回请求行中的资源名部分.

③getQueryString方法返回请求行中参数的部分(参数名+值)

④getRemoteAddr方法返回发出请求的客户机IP地址

⑤getRemoteHost方法返回发出请求的客户机完整的计算机名称

⑥getRemotePort方法返回客户机所使用的网络端口号

⑦getLocalPort返回web服务器的网络端口号

⑧getLocalAddr返回web服务器的ip地址

⑨getLocalName返回web服务器的主机名



你可能感兴趣的:(20160324servlet学习笔记HttpServletRequest对象中文乱码解决方法)