jsp之request对象

本文详细介绍了HTTP请求处理过程,包括HttpServletRequest接口的使用方法及其与ServletRequest的关系。解释了如何通过request对象获取客户端信息、解决中文乱码问题及不同提交方式的区别。

request(请求):用于接受客户端发出的请求(如,请求的参数,发送的头信息等属于客户端发来的信息)。request是javax.servlet.http.HttpServletRequest接口的实例化对象,表示此对象主要应用在HTTP协议;

javax.servlet.http.HttpServletRequest的定义:

public interface HttpServletRequest extends ServletRequest

 HttpServletRequest是ServletRequest接口的子接口(在查找request对象方法时除了要查询HttpServletRequest接口,也要查询ServletRequest接口);

1,为什么不将HttpServletRequest和ServletRequest作为一个接口?

   文档中ServletRequest接口只有HttpServletRequest一个子接口,而HttpServletRequest接口也只继承了ServletRequest接口,既然如此官方还是将它们分开了,这样作的好处是什么?

   这样的设计是为了以后的扩展应用,目前在java web中只是支持HTTP协议,所有用HttpServletRequest,如果以后有新的协议出现(它们之间总会有一些共同的操作),则就可以很好的扩展应用;

2,request内置对象的常用方法:

No方法类型描述
1public String getParameter(String name)普通接收客户端发送过来的请求参数
2public String[] getParameterValues(String name)普通取得客户端发来的一组请求参数内容
3public Enumeration getParameterNames()普通取得全部请求参数的名称
4public String getRemoteAddr()普通获得客户端的IP地址
5void setCharcterEncoding(String env) throws UnsupportedEncodingException普通设置统一的请求编码
6public boolean isUserInRole(String role)普通进行用户身份的验证
7public Httpsession getSession()普通取得当前session的对象
8public StringBuffer getRequestURL()普通返回正在请求的路径
9public Enumeration getHeaderNames()普通取得全部请求的头信息的名称
10public String getHeader(String name)普通根据名称取得头信息的内容
11public String getMethod()普通取得用户的提交方式
12public String getServletPath()普通取得访问的路径
13public String getContextPath()普通取得上下文资源路径

3,防止乱码:

在web开发中,接受request请求参数是最常见的操作,但是在进行参数提交时也会存在一些中文乱码问题。由于浏览器默认编码是UTF-8;而有时jsp默认的GBK(举一个例子),2者编码是不一样的,造成了乱码;

解决方法就是,在编辑jsp页面的时候和servlet接收消息的的时候,将其都设置统一的字符编码;(以后可以用过滤器进行编码的设置)

4,接受请求参数

   request内置对象中的getParameter()方法可以接受一个表单的文本框中输入的内容,那么实际上getPrameter()接受的就是一个参数的内容(一个文本框中的名词就是一个参数的名称),这种方法只适合于每次接收一个参数,如果有一组参数呢?则就要使用getParameterValues()方法进行接受;

   在实际开发中(比如在表单中),想文本框(text),单选按钮(radio),密码框(password),隐藏域(hidden)等,一般都会使用getPrameter()方法接收,因为这些空间在使用时参数名字不会重复,而像复选框(checked),一般参数的名称都是重复的,是一组参数,所有只能使用getParameterValues()接收,如果不小心使用getPrameter()方法,则只会接受第一个选中的内容;

   在表单中通常会有2种方法提交!

  •  post:提交内容是不会显示在地址栏上,可以提交更多的内容,表单提交多用这个;
  • get:使用get提交时,提交内容会显示在地址拦之后,并且会有长度限制一般是4KB~5KB,一些分页,访问自己本身时候多用这个;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值