jsp之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 方法 类型 描述
1 public String getParameter(String name) 普通 接收客户端发送过来的请求参数
2 public String[] getParameterValues(String name) 普通 取得客户端发来的一组请求参数内容
3 public Enumeration getParameterNames() 普通 取得全部请求参数的名称
4 public String getRemoteAddr() 普通 获得客户端的IP地址
5 void setCharcterEncoding(String env) throws UnsupportedEncodingException 普通 设置统一的请求编码
6 public boolean isUserInRole(String role) 普通 进行用户身份的验证
7 public Httpsession getSession() 普通 取得当前session的对象
8 public StringBuffer getRequestURL() 普通 返回正在请求的路径
9 public Enumeration getHeaderNames() 普通 取得全部请求的头信息的名称
10 public String getHeader(String name) 普通 根据名称取得头信息的内容
11 public String getMethod() 普通 取得用户的提交方式
12 public String getServletPath() 普通 取得访问的路径
13 public 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,一些分页,访问自己本身时候多用这个;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(jsp,Web,servlet,浏览器)