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服务器的主机名