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");

②超链接

<a href="http://abc.com?name=username">测试</a>超链接提交信息本质上是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服务器的主机名



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值