您的位置:首页 > 产品设计 > UI/UE

jsp中的request对象

2012-02-25 16:27 176 查看
1.关于request对象处理get和post请求,中文可能出现乱码的问题:

tomcat在处理get和post请求的时候处理方式不同。

POST请求是将参数存放在请求数据包的消息体中

所以使用request.setCharacterEncoding("utf-8");可以处理

但是GET请求是将参数存放在url中,此时setCharacterEncoding就不起作用了,此时我们需要采用手写代码进行转码。 (因为tomcat对get请求生成url自动做了iso8859-1编码)

e.g.:

String name = new String(request.getParameter("username").getBytes("iso-8859-1"),"utf-8");
也有说修改tomcat配置的:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"
useBodyEncodingForURI="true"
/>
不过自己试了试不知为何貌似无效……

2.关于request对象执行forward和include

HttpServletRequest类提供了一个getRequestDispatcher(String path)方法,其中path为forward/include的目标路径,返回RequesDispatcher,该对象提供以下两个方法

forward(ServletRequest request, ServletResponse response):执行forward;
include(ServletRequest request, ServletResponse response):执行include;
调用如下:

request.getRequestDispatcher("/a.jsp").include(request, response);
request.getRequestDispatcher("/a.jsp").forward(request, response);
forward方法与使用jsp:forward标签效果一样,但是include方法与jsp:include标签效果不同:

include方法调用后path中的内容会被先加载到返回页面中,然后才是当前页面内容;

而jsp:include标签则在什么位置使用就在什么位置加载path中的内容。

最后,注意path中的字符串必须以“/”开头。

继续学习,hoho!~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: