`

httpservletrequest

阅读更多

公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。

  一、HttpServletRequest接口
  定义
  public interface HttpServletRequest extends ServletRequest;
  用来处理一个对Servlet的HTTP格式的请求信息。
  方法
  1、getAuthType
  public String getAuthType();
  返回这个请求的身份验证模式。
     2、getCookies
  public Cookie[] getCookies();
  返回一个数组,该数组包含这个请求中当前的所有cookie。如果这个请求中没有cookie,返回一个空数组。
  3、getDateHeader
  public long getDateHeader(String name);
  返回指定的请求头域的值,这个值被转换成一个反映自1970-1-1日(GMT)以来的精确到毫秒的长整数。
  如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。
     4、getHeader
  public String getHeader(String name);
  返回一个请求头域的值。(译者注:与上一个方法不同的是,该方法返回一个字符串)
  如果这个请求头域不存在,这个方法返回-1。
  5、getHeaderNames
  public Enumeration getHeaderNames();
  该方法返回一个String对象的列表,该列表反映请求的所有头域名。
  有的引擎可能不允许通过这种方法访问头域,在这种情况下,这个方法返回一个空的列表。
  6、getIntHeader
  public int getIntHeader(String name);
  返回指定的请求头域的值,这个值被转换成一个整数。
  如果头域不能转换,抛出一个IllegalArgumentException。如果这个请求头域不存在,这个方法返回-1。
  7、getMethod
  public String getMethod();
  返回这个请求使用的HTTP方法(例如:GET、POST、PUT)
  8、getPathInfo
     public String getPathInfo();
  这个方法返回在这个请求的URL的Servlet路径之后的请求URL的额外的路径信息。如果这个请求URL包括一个查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回之前必须经过URL解码。如果在这个请求的URL的Servlet路径之后没有路径信息。这个方法返回空值。
    9、getPathTranslated
  public String getPathTranslated();
  这个方法获得这个请求的URL的Servlet路径之后的额外的路径信息,并将它转换成一个真实的路径。在进行转换前,这个请求的URL必须经过URL解码。如果在这个URL的Servlet路径之后没有附加路径信息。这个方法返回空值。
  10、getQueryString
  public String getQueryString();
  返回这个请求URL所包含的查询字符串。一个查询字串符在一个URL中由一个“?”引出。如果没有查询字符串,这个方法返回空值。
  11、getRemoteUser
  public String getRemoteUser
  返回作了请求的用户名,这个信息用来作HTTP用户论证。
  如果在请求中没有用户名信息,这个方法返回空值。
  12、getRequestedSessionId
  public String getRequestedSessionId();
  返回这个请求相应的session id。如果由于某种原因客户端提供的session id是无效的,这个session id将与在当前session中的session id不同,与此同时,将建立一个新的session。
  如果这个请求没与一个session关联,这个方法返回空值。
  13、getRequestURI
  public String getRequestURI();
  从HTTP请求的第一行返回请求的URL中定义被请求的资源的部分。如果有一个查询字符串存在,这个查询字符串将不包括在返回值当中。例如,一个请求通过/catalog/books?id=1这样的URL路径访问,这个方法将返回/catalog/books。这个方法的返回值包括了Servlet路径和路径信息。
  如果这个URL路径中的的一部分经过了URL编码,这个方法的返回值在返回之前必须经过解码。
  14、getServletPath
  public String getServletPath();
  这个方法返回请求URL反映调用Servlet的部分。例如,一个Servlet被映射到/catalog/summer这个URL路径,而一个请求使用了/catalog/summer/casual这样的路径。所谓的反映调用Servlet的部分就是指/catalog/summer。
  如果这个Servlet不是通过路径匹配来调用。这个方法将返回一个空值。
  15、getSession
  public HttpSession getSession();
     public HttpSession getSession(boolean create);
  返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。
  为了确保session能够被完全维持。Servlet开发者必须在响应被提交之前调用该方法。
  如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。
  16、isRequestedSessionIdValid
  public boolean isRequestedSessionIdValid();
  这个方法检查与此请求关联的session当前是不是有效。如果当前请求中使用的session无效,它将不能通过getSession方法返回。
  17、isRequestedSessionIdFromCookie
  public boolean isRequestedSessionIdFromCookie();
  如果这个请求的session id是通过客户端的一个cookie提供的,该方法返回真,否则返回假。
  18、isRequestedSessionIdFromURL
  public boolean isRequestedSessionIdFromURL();
  如果这个请求的session id是通过客户端的URL的一部分提供的,该方法返回真,否则返回假。请注意此方法与isRequestedSessionIdFromUrl在URL的拼写上不同。
  以下方法将被取消
  19、isRequestedSessionIdFromUrl
  public boolean isRequestedSessionIdFromUrl();

  该方法被isRequestedSessionIdFromURL代替。

 

 

HttpServletRequest类既有getAttribute()方法,也由getParameter()方法,这两个方法有以下区别: 

(1)HttpServletRequest类有setAttribute()方法,而没有setParameter()方法 

(2)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数,例如假定welcome.jsp和authenticate.jsp之间为链接关系,welcome.jsp中有以下代码: 

<a  href="authenticate.jsp?username=lily">authenticate.jsp  </a> 

或者: 

<form  name="form1"  method="post"  action="authenticate.jsp"> 
   请输入用户姓名:<input  type="text"  name="username"> 
   <input  type="submit"  name="Submit"  value="提交"> 
</form> 

在authenticate.jsp中通过request.getParameter("username")方法来获得请求参数username: 

<%  String  username=request.getParameter("username");  %> 

(3)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。假定  authenticate.jsp和hello.jsp之间为转发关系。authenticate.jsp希望向hello.jsp传递当前的用户名字,  如何传递这一数据呢?先在authenticate.jsp中调用setAttribute()方法: 

<% 
String  username=request.getParameter("username"); 
request.setAttribute("username",username); 
%> 

<jsp:forward  page="hello.jsp"  /> 

在hello.jsp中通过getAttribute()方法获得用户名字: 

<%  String  username=(String)request.getAttribute("username");  %> 
Hello:  <%=username  %> 

从更深的层次考虑,request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。 

request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。这两个方法能够设置Object类型的共享数据。 

request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,,  request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段,这个的确是正解. 

getAttribute是返回对象,getParameter返回字符串 

 

分享到:
评论

相关推荐

    从HttpServletRequest获取各种路径总结

    ### 从HttpServletRequest获取各种路径总结 #### 一、概述 在Java Web开发中,通过`HttpServletRequest`对象可以获取客户端请求的各种信息,包括但不限于路径信息。这些路径信息对于开发者来说至关重要,尤其是在...

    tomcat10升级单个jar里面的jakarta.servlet.http.HttpServletRequest

    入参的HttpServletRequest必须为:import jakarta.servlet.http.HttpServletRequest; 运行cmd,再该目录下执行: 执行步骤:java -jar jakartaee-migration-1.0.1.jar commons-fileupload-1.4.jar commons-...

    httpservletRequest的学习笔记

    【httpservletRequest的学习笔记】 在Java Web开发中,HttpServletRequest接口是Servlet API的核心组成部分,它用于封装客户端发送到服务器的HTTP请求。理解HttpServletRequest的工作原理对于任何Servlet开发者来说...

    HttpServletRequest-response方法总结

    HttpServletRequest-response方法总结 HttpServletRequest和HttpServletResponse是Servlet编程中两个最重要的接口,它们提供了对HTTP请求和响应的控制和处理。下面是对HttpServletRequest和HttpServletResponse的...

    httpservletrequest的jar包

    httpservletrequest、httpsession的jar包,导入资源包。

    HTTP请求头概述(HttpServletRequest)

    以上代码展示了如何使用`HttpServletRequest`和`HttpServletResponse`接口来处理和设置请求头及响应头,这对于构建高效、安全且功能丰富的Web应用程序至关重要。通过对这些头信息的有效管理和利用,可以极大地提升...

    用装饰模式装饰HttpServletRequest对象

    在Servlet框架中,装饰模式能够解决特定问题,例如处理HttpServletRequest对象。 **问题与解决方案** Servlet Filter是一个强大的工具,可以在请求到达Servlet之前或之后进行拦截操作,如用户验证和内容压缩。然而...

    HttpServletRequest 中 getRequestURL和getRequestURI的区别

    本文将深入探讨 `HttpServletRequest` 中的 `getRequestURL()` 和 `getRequestURI()` 方法的区别。 首先,我们来看 `getRequestURI()` 方法。`getRequestURI()` 返回的是客户端发送请求时的完整统一资源标识符(URI...

    HttpServletRequest解析设备类型和浏览器类型

    分析HttpServletRequest 内容 解析出设备来源 手机 电脑 什么种类浏览器 什么系统

    HttpServletRequest和HttpServletResponse的必备包

    Java中,引入javax.servlet.http.HttpServletRequest和javax.servlet.http.HttpServletResponse包的必备jar包:org.apache.commons.httpclient.jar

    JAVAWEB-09:HttpServletRequest对象&会话管理之Cookie

    在JavaWeb开发中,`HttpServletRequest`对象和会话管理是两个关键的概念,它们构成了Web应用程序交互的基础。这次我们将深入探讨这两个主题,特别是关于Cookie的使用。 `HttpServletRequest`对象是Servlet API的一...

    HttpServletRequest源码 HttpServletResponse源码

    在Java Web开发中,`HttpServletRequest`和`HttpServletResponse`是两个至关重要的接口,它们是Java Servlet API的核心组成部分,用于处理客户端(通常是Web浏览器)与服务器之间的HTTP通信。这两个接口提供了丰富的...

    JavaWeb之装饰 HttpServletRequest 对象

    在实际开发中,我们经常需要对HttpServletRequest进行扩展或增强,以满足特定的业务需求,这时装饰模式就派上了用场。 装饰模式是一种设计模式,它允许我们向一个现有的对象添加新的行为或责任,而无需修改该对象的...

    深入解析Java Web中的HttpServletRequest与HttpServletResponse

    在Java Web应用开发中,HttpServletRequest和HttpServletResponse是两个核心的接口,它们扮演着至关重要的角色。这两个接口是Java Servlet API的一部分,为开发人员提供了处理HTTP请求和构造HTTP响应的丰富功能。...

    JavaWeb开发技术-HttpServletRequest对象.pptx

    HttpServletRequest 对象在 JavaWeb 开发中的应用 HttpServletRequest 对象是 JavaWeb 开发中最常用的对象之一,它提供了一系列方法来获取 HTTP 请求的相关信息。在本文中,我们将详细介绍 HttpServletRequest 对象...

    HttpServletRequest详解.docx

    HttpServletRequest对象在Java Web开发中扮演着至关重要的角色,它是Servlet API的一部分,用于处理客户端通过HTTP协议发送到服务器的请求。这个对象提供了丰富的接口和方法,允许开发者获取客户端的各种信息,包括...

    HttpServletRequest与HttpServletResponse的实现类.docx

    【HttpServletRequest与HttpServletResponse详解】 在Java Web开发中,HttpServletRequest和HttpServletResponse是Servlet API中的核心接口,它们分别代表了客户端的HTTP请求和服务器的HTTP响应。每次客户端向Web...

    javaWEB总结(7):HttpServlet和HttpServletRequest

    此外,`HttpServletRequest`还提供了其他有用的功能,如获取请求的远程IP地址(`getRemoteAddr()`),获取会话(`getSession()`),检查请求是否为异步处理(`isAsyncSupported()`,`isAsyncStarted()`)等。...

    HttpServletRequest和HttpServletResponse的讲解

    `HttpServletRequest`和`HttpServletResponse`是两个核心的Servlet接口,它们是服务器与客户端之间交互的关键组件。下面我们将深入探讨这两个接口的功能、用法及实际应用案例。 `HttpServletRequest`接口代表了来自...

Global site tag (gtag.js) - Google Analytics