龙空技术网

Servlet总结十一:HttpServletRequest接口

小瓜瓜666 271

前言:

今天我们对“net调用servlet接口”都比较着重,咱们都想要剖析一些“net调用servlet接口”的相关文章。那么小编在网上收集了一些关于“net调用servlet接口””的相关内容,希望看官们能喜欢,你们快快来了解一下吧!

1、HttpServletRequest是一个接口,Servlet规范中重要的接口之一;

2、继承关系:public interface HttpServletRequest extends ServletRequest;

3、HttpServletRequest接口的实现类是Web容器负责的,Tomcat服务器有自己的实现。但是程序要还是只需要面向HttpServletRequest接口调用方法即可,不需要关心具体的实现类;

4、HttpServletRequest这个对象中封装了哪些信息?

1、请求方式

2、URI

3、协议版本号

4、表单提交的数据

5、HttpServletRequest对象代表一次请求,一次请求执行一次service()方法,对应一个request对象,100个请求对应100个request对象,所以request对象的生命周期是短暂的;

什么是一次请求?到目前为止,我们可以这样理解一次请求:在网页上点击超链接,到最终网页停下来,这就是一次完整的请求;(后面学习重定向,浏览器会自动跳转到其他地址,会重新发送新的请求,这句话就不正确了)

6、表单提交的这些数据被自动封装在request对象中了 表单数据是这样的格式提交的,POST请求,在请求体中提交,数据格式:

username=admin&password=123&sex=boy&interest=sport&interest=music&grade=gz&introduce=student

表单提交的数据会自动封装到request对象中,request对象中有一个Map集合,存储这些数据

Map<String, String>

key value(value是数组)

----------------------------------------------------------------------

username {"admin"}

password {"123"}

sex {"boy"}

interest {"sport",music}

grade {"gz"}

introduce {"IAmAStudent"}

7、HttpServletRequest中常用的方法

表单提交的数据会封装在request对象的Map集合中,key是name,value是一个一维数组

/*获取浏览器提交的数据*/String getParameter(String name) 获取key对应的一维数组的首元素Map getParameterMap() 获取request对象中的Map集合Enumeration getParameterNames() 获取所有的Map集合中所有的keyString[] getP arameterValues(String name) 返回String数组,数组包含key对应的多个value值/*获取路径、URL、URI、IP*/String getContextPath() 获取上下文路径(web项目根路径)String getMethod() 获取浏览器请求方式String getRequestURI() 获取请求的URIStringBuffer getRequestURL() 获取请求的URLString getServletPath() 获取请求的ServletPath,即servlet对应的请求路径String getRemoteAddr() 获取客户端IP地址/*从一次请求对应的HttpServletRequest对象范围中增删查数据*/Object getAttribute(String name) 从此次请求对应的request对象范围中获取数据void setAttribute(String name, Object o) 从此次请求对应的request对象范围中存储数据void removeAttribute(String name) 从此次请求对应的request对象范围中删除数据/*请求转发器*/RequestDispatcher getRequestDispatcher(String path) 获取请求转发器/*编码*/void setCharacterEncoding(String env) 覆盖此请求正文中使用的字符编码的名称/**/HttpSession getSession() 返回与此请求关联的当前会话,或者如果该请求没有会话,则创建一个。Cookie[] getCookies() 返回一个数组,其中包含Cookie 客户端与此请求一起发送的所有对象。

8、HttpServletRequest和ServletContext的范围

1、HttpServletRequest是一次请求对应一个request对象,所以范围小

2、ServletContext是webapp的上下文对象,范围极大

3、setAttribute、getAttribute、removeAttribute这些方法,在ServletContext和ServletContext接口中都存在,用来在其各自的范围内进行数据的增删查,所以在request对象的范围增删查和在Servlet上下文对象的范围增删查是不一样,且互不干扰的

9、一次请求Servlet对应的request对象,在此request中存储数据,可以在此request对象中取出;但是在另一次请求Servlet对应的request对象,是没有第一次请求时在request对象中添加的数据的。要解决这个不同请求对应的不同request对象之间无法共享数据的问题,需要使用请求转发技术

标签: #net调用servlet接口