httpservletrequest浅谈

Request对象和response对象的原理:

       Request和response对象是由服务器创建的。我们来使用他们

       Request对象是来偶去请求消息的,response对象是设置响应消息的

       Request对象继承体系结构:

Servletrequest    ----     接口

        |继承

HTTPServletRequest  ----  接口

          |实现

Org.apache.catalina.connector.requestFacade类(Tomcat中的)

 

1.Request功能:

               获取请求消息数据:

               获取请求行数据:

               获取请求方式   get      string   getMethod();

               获取虚拟目录: string  getcontextpath()

               获取servlet路径: string  getservletpath()

               获取get方式请求参数:string  getquerystring()   name=gouzi

               获取URL: String getrequesturl    获取的是全路径名包含HTTP   同一资源定位符

               URI:String getrequesturi    获取的是/项目名/类名   统一资源标识符

               获取客户端的IP地址:string  getremoteaddr()

               获取协议及版本:HTTP/1.1     string  getprotocol;

获取请求头的方法:

      String GetHeader(string name)通过请求头的名称获取请求头的值

      Enumeration<String> getHeaderNames();获取所有的请求头名称

获取请求体数据:

        请求体:只有post请求方式,才有请求体,在请求体中封装了post请求的参数          

  步骤:获取流对象:

       BufferedReader getReader()获取字符输入流,只能操作字符数据

       Servletinputstream getinputstream():获取字节输入流 可以操作所有数据类型

             然后在从流对象中拿数据

其他功能:

             获取请求参数通用方式:不论get还是post请求方式都可以使用以下方式

                    getParameter(String name)根据名称获取值

                    getParametervalues(String name)根据参数名称获取参数值的数组适用于复选框

                    GetParameterNames()获取所有的请求的参数

                    GetParamenterMap()根据名称获取所有的值不过要创建实体类与之对应

                    使用这个map集合还要与支配和的是BeanUtils.populate()beanurils这是阿里的一 个工具类,populate(实体类,map返回值);这样就可以使他们的值一一对应了

 

 

中文乱码的问题;

         setCharacterEncoding(“utf-8”);

         SetcontextType(text/html;chartset=utf-8)

 

2. 请求转发:一种在服务器内部的资源跳转方式

       1. 步骤:

               1. 通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String path)

               2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request, ServletResponse response)

 

      2. 特点:

                 1. 浏览器地址栏路径不发生变化

                 2. 只能转发到当前服务器内部资源中。

                 3. 转发是一次请求

 

 

3. 共享数据:

                * 域对象:一个有作用范围的对象,可以在范围内共享数据

                      * request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

       * 方法:

               1. void setAttribute(String name,Object obj):存储数据

                2. Object getAttitude(String name):通过键获取值

               3. void removeAttribute(String name):通过键移除键值对

 4. 获取ServletContext:

                  * ServletContext getServletContext();

 

BeanUtils工具类,简化数据封装:

* 用于封装JavaBean的

1. JavaBean:标准的Java类

1. 要求:

1. 类必须被public修饰

2. 必须提供空参的构造器

3. 成员变量必须使用private修饰

4. 提供公共setter和getter方法

2. 功能:封装数据

 

 

2. 概念:

成员变量:

属性:setter和getter方法截取后的产物

例如:getUsername() --> Username--> username

 

 

3. 方法:

1. setProperty()设置其中一个变量的一个value

2. getProperty()获取一个变量的value

   3. populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值