jsp中的request对象

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!~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值