HttpServletRequest

无意得知毕业生都在研究request里的内容,顿时发现自己也从未真正了解过,所以自己写一写demo,了解下request里的内容。当我们在做java web项目的时候也许避免不了HttpServletRequest请求,那么HttpServletRequest里面究竟有些什么内容,该如何利用它的属性?

浏览器发送一个请求被封装成一个HttpServletRequest对象,期中就包含了请求地址和参数以及数据。如何取出这些数据?

首先得讲讲我对get和post请求的理解:

1.他们都可以向服务器发送数据,Get是从服务器上获取数据,Post则是传输数据给服务器进行增删改等操作。

2.GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

  POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据 。因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变

3. Get限制form表单数据必须为ASCII字符,而Post支持整个ISO10646字符集

 

HttpServletRequest常用的方法以及描述:

1. String   getMethod()  返回这个请求使用的HTTP方法(例如:GET、POST、PUT)

2. String   getQueryString() 返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个“?”代表。

3. String getRequestURI() 返回请求的路径

4. HttpSession   getSession() 返回一个当前有效的session

5. String getParameter(String key) 是从Get或者Post提交的数据中获取数据 

6.Object getAttribute(String key) 则是返回request范围或是session内存在的对象尤服务器端设置

7.String getHeader("referer") 则是获取上一次请求的url

 

  WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录,所以我们大多都选择把jsp放在WEB-INF这个目录里面,几乎所有的servlet或者是一些controller都是在服务器端完成页面转,HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成,所以他不能跳转到WEB-INF里面的页面。

最后附上一个视频,无意间发现,感触良多:http://v.youku.com/v_show/id_XNTgyNzQ4OTQw.html

 

posted @ 2013-09-15 20:20  Facilitate  阅读(1023)  评论(0编辑  收藏  举报