request细节

来源:互联网 发布:python面试题 编辑:程序博客网 时间:2024/06/07 02:02

 1 request对象常用API

   1)取得请求头相关的信息

     *a)request.getHeader(String):String

      b)request.getHeaders(String):Enumeration

      c)getHeaderNames():Enumeration

 

*2 获取请求参数的值

   2)取得请求体相关的信息

      a)request.getParameter(String):String

      b)request.getParameterValues(String):String[]

        注意:在GET请求方式下,如果参数不一致,返回null,可能出现空指针异常

      c)BeanUtils框架能够自动将String参数设置到JavaBean对象中

        1)无需理会参数的类型,个数,但是参数名一定要和JavaBean中的字段一致

        2)String->8种基本类型自动转换,非8种基本类型可以注册转换器材

        3)StringString[]类型的参数自动感知装配

 

*3 request应用

   1)防盗链

     判段某个页面来自于何方,即referer请求头

 

   2)收集表单数据

     a)项目中,用户请求的参数,最好做null或空串的二次判段

 

   3)中文乱码

     a)POST方式下乱码产生的原因:浏览器发送的编码方式与Request对象的编码方式不一致

       解决方案:request.setCharacterEncoding("UTF-8),该方法只能解析请求体中的乱码方式,除此之外,无力解决

     b)如果用户是post方式提交,在转发情况下,依然是post请求,但重定向情况下,是get请求

     c)如果用户是get方式提交,在转发和重定向情况下,都是get请求

     d)405:本身请求是get请求,但未在servlet内提供对应的doGet()方法, post也是类似    

 

       

*4 再谈MVC设计模式

   1)如果严格按照MVC思想的话,浏览器首页访问的是控制器,然后再由控制器转发到视图

   2)位于WEB-INF/目录下的资源,客户端无法直接访问,只能通过服务端转发进入

   3)request对象也可用于资源的转发

request

.getRequestDispatcher("/WEB-INF/success.html")

.forward(request,response);

   4)通过正则表达式验证中文:[\u4E00-\uFA29]+

   5)对于重定向而言,前后的二个Request域对象不同,如果取值不到,返回"null",不会报错    

  

 5 request的细节

   1)转发是通过RequestDispatcher对象的forward(request,response)方法完成的

   2)forward()方法之前的输出,如果是输出到缓冲区,再转发到其他Servlet,那么原缓冲区的数据忽略不计

   3)forward()方法之前的输出,如果真正输出到浏览器,再转发到其他Servlet,再转发到其他Servlet代码忽略不计

   4)forward()方法之前的输出,如果是对响应头的设置,会保留到转发的其他Servlet

 

*6 重定向和转发区别

   1)转发只能相对于当前web应用而言,不能转发到其它web应用

     重定向可以在当前web应用之外的其它web应用重写向资源

   2)转发/表示当前web应用

     重定向/表示web服务器的根目录,即webapps目录

   3)转发时,浏览器地址栏不变

     重定向时,浏览器地址栏改变

   4)转发是服务端的内部行为,浏览器不知

     重定向是浏览器和服务端的共同行为,浏览器必知

   5)转发时二个Servlet共享request域对象

     重定向时二个Servlet独享request域对象

   6)request具有二义性:

a)请求对象

b)域对象

   

 7 include包含

   1)需要使用Servlet包含相同的页面输出时,类似于函数调用

 

 8 会话

   1)用户输出URL地址,有效访问某个网站,在该网站上的一系列有效操作,随后关闭浏览器的整个过程,叫一次会话

   2)会话主要解决服务端如何保存每个客户端对应的私有信息。

   3)会话主要有二种:

a)Cookie技术[客户端技术]

b)Session技术

   

*9 Cookie

   1)Cookie是客户端的技术

   2)每次发送请求时,客户端都会带上各自已的不同Cookie到服务端,服务端一解析Cookie,就知道是哪个客户端发送过来的信息

   3)一个Cookie只能存储一种类型的信息

   4)更新某个名的Cookie,即向浏览器写一个相同名的Cookie

   5)Cookie一定要设置一个有效时间,如果不设置的话,默认该请求访问结束后,该Cookie自动销毁,用专业名词来讲,

     Cookie的默认有效期时一个有效会话结束

原创粉丝点击