Java-HttpServletRequest
- //继承了ServletRequest接口,给servlet提供Request请求信息,servlet 容器会创建以后HttpServletRequest对象
- //并把它作为一个参数给service函数
- public interface HttpServletRequest extends ServletRequest {
- /**
- * String identifier for Basic authentication. Value "BASIC"
- */
- public static final String BASIC_AUTH = "BASIC";
- /**
- * String identifier for Form authentication. Value "FORM"
- */
- public static final String FORM_AUTH = "FORM";
- /**
- * String identifier for Client Certificate authentication. Value "CLIENT_CERT"
- */
- public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";
- /**
- * String identifier for Digest authentication. Value "DIGEST"
- */
- public static final String DIGEST_AUTH = "DIGEST";
- /**
- * Returns the name of the authentication scheme used to protect
- * the servlet. All servlet containers support basic, form and client
- * certificate authentication, and may additionally support digest
- * authentication.
- * If the servlet is not authenticated <code>null</code> is returned.
- * <p>Same as the value of the CGI variable AUTH_TYPE.
- */
- //返回验证符,BASIC_AUTH、FORM_AUTH、 CLIENT_CERT_AUTH、 DIGEST_AUTH
- public String getAuthType();
- /**
- * Returns an array containing all of the <code>Cookie</code>
- * objects the client sent with this request.
- * This method returns <code>null</code> if no cookies were sent.
- * @return an array of all the <code>Cookies</code>
- * included with this request, or <code>null</code>
- * if the request has no cookies
- */
- //返回一个包含所有cookie的数组
- public Cookie[] getCookies();
- /**
- * Returns the value of the specified request header
- * as a <code>long</code> value that represents a
- * <code>Date</code> object. Use this method with
- * headers that contain dates, such as
- * <code>If-Modified-Since</code>.
- * <p>The date is returned as
- * the number of milliseconds since January 1, 1970 GMT.
- * The header name is case insensitive.
- * <p>If the request did not have a header of the
- * specified name, this method returns -1. If the header
- * can't be converted to a date, the method throws
- * an <code>IllegalArgumentException</code>.
- * @param name a <code>String</code> specifying the
- * name of the header
- * @return a <code>long</code> valuerepresenting the date specified
- in the header expressed as the number of milliseconds since January 1, 1970 GMT,
- * or -1 if the named header was not included with the
- */
- //返回name的时间请求头部,没有值返回-1
- public long getDateHeader(String name);
- /**
- * Returns the value of the specified request header
- * as a <code>String</code>. If the request did not include a header
- * of the specified name, this method returns <code>null</code>.
- * If there are multiple headers with the same name, this method
- * returns the first head in the request.
- * The header name is case insensitive. You can use
- * this method with any request header.
- * @param name a <code>String</code> specifying the header name
- * @return a <code>String</code> containing the value of the requested
- * header, or <code>null</code>if the request does not have a header of that name
- */
- //返回头部name的信息
- public String getHeader(String name);
- /**
- * Returns all the values of the specified request header
- * as an <code>Enumeration</code> of <code>String</code> objects.
- * <p>Some headers, such as <code>Accept-Language</code> can be sent
- * by clients as several headers each with a different value rather than
- * sending the header as a comma separated list.
- * <p>If the request did not include any headers
- * of the specified name, this method returns an empty
- * <code>Enumeration</code>.
- * The header name is case insensitive. You can use
- * this method with any request header.
- * @param name a <code>String</code> specifying the
- * header name
- * @return an <code>Enumeration</code> containing
- * the values of the requested header. If
- * the request does not have any headers of
- * that name return an empty
- * enumeration. If
- * the container does not allow access to
- * header information, return null
- */
- //返回头部name的枚举
- public Enumeration getHeaders(String name);
- /**
- * Returns an enumeration of all the header names
- * this request contains. If the request has no
- * headers, this method returns an empty enumeration.
- * <p>Some servlet containers do not allow
- * servlets to access headers using this method, in
- * which case this method returns <code>null</code>
- * @return an enumeration of all the
- * header names sent with this
- * request; if the request has
- * no headers, an empty enumeration;
- * if the servlet container does not
- * allow servlets to use this method,
- */
- //所有头部的name枚举
- public Enumeration getHeaderNames();
- /**
- * Returns the value of the specified request header
- * as an <code>int</code>. If the request does not have a header
- * of the specified name, this method returns -1. If the
- * header cannot be converted to an integer, this method
- * throws a <code>NumberFormatException</code>.
- * <p>The header name is case insensitive.
- * @param name a <code>String</code> specifying the name of a request header
- * @return an integer expressing the value of the request header or -1 if the request doesn't have a header of this name
- * @exception NumberFormatException If the header value can't be converted to an <code>int</code>
- */
- //头部name作为int返回
- public int getIntHeader(String name);
- /**
- * Returns the name of the HTTP method with which this
- * request was made, for example, GET, POST, or PUT.
- * Same as the value of the CGI variable REQUEST_METHOD.
- * @return a <code>String</code>
- * specifying the name
- * of the method with which
- * this request was made
- */
- //返回方法get,post,put
- public String getMethod();
- /**
- * Returns any extra path information associated with
- * the URL the client sent when it made this request.
- * The extra path information follows the servlet path
- * but precedes the query string and will start with
- * a "/" character.
- * <p>This method returns <code>null</code> if there
- * was no extra path information.
- * <p>Same as the value of the CGI variable PATH_INFO.
- * @return a <code>String</code>, decoded by the
- * web container, specifying
- * extra path information that comes
- * after the servlet path but before
- * the query string in the request URL;
- * or <code>null</code> if the URL does not have
- * any extra path information
- */
- //返回路径信息
- public String getPathInfo();
- /**
- * but before the query string, and translates it to a real
- * path. Same as the value of the CGI variable PATH_TRANSLATED.
- * <p>If the URL does not have any extra path information,
- * this method returns <code>null</code> or the servlet container
- * cannot translate the virtual path to a real path for any reason
- * (such as when the web application is executed from an archive).
- * The web container does not decode this string.
- * @return a <code>String</code> specifying the
- * real path, or <code>null</code> if
- * the URL does not have any extra path
- * information
- */
- //
- public String getPathTranslated();
- /**
- *
- * Returns the portion of the request URI that indicates the context
- * of the request. The context path always comes first in a request
- * URI. The path starts with a "/" character but does not end with a "/"
- * character. For servlets in the default (root) context, this method
- * returns "". The container does not decode this string.
- * @return a <code>String</code> specifying the
- * portion of the request URI that indicates the context
- * of the request
- */
- public String getContextPath();
- /**
- *
- * Returns the query string that is contained in the request
- * URL after the path. This method returns <code>null</code>
- * if the URL does not have a query string. Same as the value
- * of the CGI variable QUERY_STRING.
- * @return a <code>String</code> containing the query
- * string or <code>null</code> if the URL
- * contains no query string. The value is not
- * decoded by the container.
- */
- //请求中的参数值
- public String getQueryString();
- /**
- * Returns the login of the user making this request, if the
- * user has been authenticated, or <code>null</code> if the user
- * has not been authenticated.
- * Whether the user name is sent with each subsequent request
- * depends on the browser and type of authentication. Same as the
- * value of the CGI variable REMOTE_USER.
- * @return a <code>String</code> specifying the login
- * of the user making this request, or <code>null</code>
- * if the user login is not known
- */
- //远程用户
- public String getRemoteUser();
- /**
- * Returns a boolean indicating whether the authenticated user is included
- * in the specified logical "role". Roles and role membership can be
- * defined using deployment descriptors. If the user has not been
- * authenticated, the method returns <code>false</code>.
- * @param role a <code>String</code> specifying the name
- * of the role
- * @return a <code>boolean</code> indicating whether
- * the user making this request belongs to a given role;
- * <code>false</code> if the user has not been
- * authenticated
- */
- //用户角色判断
- public boolean isUserInRole(String role);
- /**
- * Returns a <code>java.security.Principal</code> object containing
- * the name of the current authenticated user. If the user has not been
- * authenticated, the method returns <code>null</code>.
- * @return a <code>java.security.Principal</code> containing
- * the name of the user making this request;
- * <code>null</code> if the user has not been
- * authenticated
- */
- //
- public java.security.Principal getUserPrincipal();
- /**
- * Returns the session ID specified by the client. This may
- * not be the same as the ID of the current valid session
- * for this request.
- * If the client did not specify a session ID, this method returns
- * @return a <code>String</code> specifying the session
- * ID, or <code>null</code> if the request did
- * not specify a session ID
- * @see #isRequestedSessionIdValid
- */
- //获得客户端请求产生的session id
- public String getRequestedSessionId();
- /**
- * Returns the part of this request's URL from the protocol
- * name up to the query string in the first line of the HTTP request.
- * The web container does not decode this String.
- * For example:
- * <table summary="Examples of Returned Values">
- * <tr align=left><th>First line of HTTP request </th>
- * <th> Returned Value</th>
- * <tr><td>POST /some/path.html HTTP/1.1<td><td>/some/path.html
- * <tr><td>GET http://foo.bar/a.html HTTP/1.0
- * <td><td>/a.html
- * <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz
- * </table>
- * <p>To reconstruct an URL with a scheme and host, use
- * {@link HttpUtils#getRequestURL}.
- * @return a <code>String</code> containing
- * the part of the URL from the
- * protocol name up to the query string
- * @see HttpUtils#getRequestURL
- */
- //获得请求URI
- public String getRequestURI();
- /**
- * Reconstructs the URL the client used to make the request.
- * The returned URL contains a protocol, server name, port
- * number, and server path, but it does not include query
- * string parameters.
- * <p>Because this method returns a <code>StringBuffer</code>,
- * not a string, you can modify the URL easily, for example,
- * to append query parameters.
- * <p>This method is useful for creating redirect messages
- * and for reporting errors.
- * @return a <code>StringBuffer</code> object containing
- * the reconstructed URL
- */
- //返回URL,不包括之前URL中的参数
- public StringBuffer getRequestURL();
- /**
- * Returns the part of this request's URL that calls
- * the servlet. This path starts with a "/" character
- * and includes either the servlet name or a path to
- * the servlet, but does not include any extra path
- * information or a query string. Same as the value of
- * the CGI variable SCRIPT_NAME.
- * <p>This method will return an empty string ("") if the
- * servlet used to process this request was matched using
- * the "/*" pattern.
- * @return a <code>String</code> containing
- * the name or path of the servlet being
- * called, as specified in the request URL,
- * decoded, or an empty string if the servlet
- * used to process the request is matched
- * using the "/*" pattern.
- *
- */
- //获得URL中servlet路径部分
- public String getServletPath();
- /**
- * Returns the current <code>HttpSession</code>
- * associated with this request or, if there is no
- * current session and <code>create</code> is true, returns
- * a new session.
- * <p>If <code>create</code> is <code>false</code>
- * and the request has no valid <code>HttpSession</code>,
- * this method returns <code>null</code>.
- * <p>To make sure the session is properly maintained,
- * you must call this method before
- * the response is committed. If the container is using cookies
- * to maintain session integrity and is asked to create a new session
- * when the response is committed, an IllegalStateException is thrown.
- * @param create <code>true</code> to create
- * a new session for this request if necessary;
- * <code>false</code> to return <code>null</code>
- * if there's no current session
- * @return the <code>HttpSession</code> associated
- * with this request or <code>null</code> if
- * <code>create</code> is <code>false</code>
- * and the request has no valid session
- * @see #getSession()
- */
- //获得httpSession,如果没有并且create为true则新建一个session
- public HttpSession getSession(boolean create);
- /**
- * Returns the current session associated with this request,
- * or if the request does not have a session, creates one.
- * @return the <code>HttpSession</code> associated
- * with this request
- * @see #getSession(boolean)
- */
- //获得当前session,如果没有new
- public HttpSession getSession();
- /**
- * Checks whether the requested session ID is still valid.
- * @return <code>true</code> if this
- * request has an id for a valid session
- * in the current session context;
- * <code>false</code> otherwise
- * @see #getRequestedSessionId
- * @see #getSession
- * @see HttpSessionContext
- */
- //判断session id是否还有效
- public boolean isRequestedSessionIdValid();
- /**
- * Checks whether the requested session ID came in as a cookie.
- * @return <code>true</code> if the session ID
- * came in as a
- * cookie; otherwise, <code>false</code>
- * @see #getSession
- */
- //session id 来自cookie
- public boolean isRequestedSessionIdFromCookie();
- /**
- * Checks whether the requested session ID came in as part of the
- * request URL.
- * @return <code>true</code> if the session ID
- * came in as part of a URL; otherwise,
- * <code>false</code>
- * @see #getSession
- */
- //session id 作为请求URL的一部分
- public boolean isRequestedSessionIdFromURL();
- /**
- * @deprecated As of Version 2.1 of the Java Servlet
- * API, use {@link #isRequestedSessionIdFromURL}
- * instead.
- */
- public boolean isRequestedSessionIdFromUrl();
- }
- public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {
- /**
- * Constructs a request object wrapping the given request.
- * @throws java.lang.IllegalArgumentException if the request is null
- */
- public HttpServletRequestWrapper(HttpServletRequest request) {
- super(request);
- }
- private HttpServletRequest _getHttpServletRequest() {
- return (HttpServletRequest) super.getRequest();
- }
- /**
- * The default behavior of this method is to return getAuthType()
- * on the wrapped request object.
- */
- public String getAuthType() {
- return this._getHttpServletRequest().getAuthType();
- }
- /**
- * The default behavior of this method is to return getCookies()
- * on the wrapped request object.
- */
- public Cookie[] getCookies() {
- return this._getHttpServletRequest().getCookies();
- }
- /**
- * The default behavior of this method is to return getDateHeader(String name)
- * on the wrapped request object.
- */
- public long getDateHeader(String name) {
- return this._getHttpServletRequest().getDateHeader(name);
- }
- /**
- * The default behavior of this method is to return getHeader(String name)
- * on the wrapped request object.
- */
- public String getHeader(String name) {
- return this._getHttpServletRequest().getHeader(name);
- }
- /**
- * The default behavior of this method is to return getHeaders(String name)
- * on the wrapped request object.
- */
- public Enumeration getHeaders(String name) {
- return this._getHttpServletRequest().getHeaders(name);
- }
- /**
- * The default behavior of this method is to return getHeaderNames()
- * on the wrapped request object.
- */
- public Enumeration getHeaderNames() {
- return this._getHttpServletRequest().getHeaderNames();
- }
- /**
- * The default behavior of this method is to return getIntHeader(String name)
- * on the wrapped request object.
- */
- public int getIntHeader(String name) {
- return this._getHttpServletRequest().getIntHeader(name);
- }
- /**
- * The default behavior of this method is to return getMethod()
- * on the wrapped request object.
- */
- public String getMethod() {
- return this._getHttpServletRequest().getMethod();
- }
- /**
- * The default behavior of this method is to return getPathInfo()
- * on the wrapped request object.
- */
- public String getPathInfo() {
- return this._getHttpServletRequest().getPathInfo();
- }
- /**
- * The default behavior of this method is to return getPathTranslated()
- * on the wrapped request object.
- */
- public String getPathTranslated() {
- return this._getHttpServletRequest().getPathTranslated();
- }
- /**
- * The default behavior of this method is to return getContextPath()
- * on the wrapped request object.
- */
- public String getContextPath() {
- return this._getHttpServletRequest().getContextPath();
- }
- /**
- * The default behavior of this method is to return getQueryString()
- * on the wrapped request object.
- */
- public String getQueryString() {
- return this._getHttpServletRequest().getQueryString();
- }
- /**
- * The default behavior of this method is to return getRemoteUser()
- * on the wrapped request object.
- */
- public String getRemoteUser() {
- return this._getHttpServletRequest().getRemoteUser();
- }
- /**
- * The default behavior of this method is to return isUserInRole(String role)
- * on the wrapped request object.
- */
- public boolean isUserInRole(String role) {
- return this._getHttpServletRequest().isUserInRole(role);
- }
- /**
- * The default behavior of this method is to return getUserPrincipal()
- * on the wrapped request object.
- */
- public java.security.Principal getUserPrincipal() {
- return this._getHttpServletRequest().getUserPrincipal();
- }
- /**
- * The default behavior of this method is to return getRequestedSessionId()
- * on the wrapped request object.
- */
- public String getRequestedSessionId() {
- return this._getHttpServletRequest().getRequestedSessionId();
- }
- /**
- * The default behavior of this method is to return getRequestURI()
- * on the wrapped request object.
- */
- public String getRequestURI() {
- return this._getHttpServletRequest().getRequestURI();
- }
- /**
- * The default behavior of this method is to return getRequestURL()
- * on the wrapped request object.
- */
- public StringBuffer getRequestURL() {
- return this._getHttpServletRequest().getRequestURL();
- }
- /**
- * The default behavior of this method is to return getServletPath()
- * on the wrapped request object.
- */
- public String getServletPath() {
- return this._getHttpServletRequest().getServletPath();
- }
- /**
- * The default behavior of this method is to return getSession(boolean create)
- * on the wrapped request object.
- */
- public HttpSession getSession(boolean create) {
- return this._getHttpServletRequest().getSession(create);
- }
- /**
- * The default behavior of this method is to return getSession()
- * on the wrapped request object.
- */
- public HttpSession getSession() {
- return this._getHttpServletRequest().getSession();
- }
- /**
- * The default behavior of this method is to return isRequestedSessionIdValid()
- * on the wrapped request object.
- */
- public boolean isRequestedSessionIdValid() {
- return this._getHttpServletRequest().isRequestedSessionIdValid();
- }
- /**
- * The default behavior of this method is to return isRequestedSessionIdFromCookie()
- * on the wrapped request object.
- */
- public boolean isRequestedSessionIdFromCookie() {
- return this._getHttpServletRequest().isRequestedSessionIdFromCookie();
- }
- /**
- * The default behavior of this method is to return isRequestedSessionIdFromURL()
- * on the wrapped request object.
- */
- public boolean isRequestedSessionIdFromURL() {
- return this._getHttpServletRequest().isRequestedSessionIdFromURL();
- }
- /**
- * The default behavior of this method is to return isRequestedSessionIdFromUrl()
- * on the wrapped request object.
- */
- public boolean isRequestedSessionIdFromUrl() {
- return this._getHttpServletRequest().isRequestedSessionIdFromUrl();
- }
- }
Java-HttpServletRequest的更多相关文章
- java HttpServletRequest和HttpServletResponse詳解
這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...
- Java HttpServletRequest中getAttribute()方法和getParameter()区别
一.ServletRequest接口 HttpServletRequest接口继承了ServletRequest接口,实现类通常代表一个实际的Http Request. Servlet容器负责创建一个 ...
- JAVA+HttpServletRequest文件上传
public Result fileUp(HttpServletRequest request) { RowsVo vo = new RowsVo(); MultipartHttpServletReq ...
- java HttpServletRequest 重复流读取
在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常. 在过滤器中通过流读取出用 ...
- java HttpServletRequest 重复流读取
在用reset接口的时候,常常会使用request.getInputStream()方法,但是流只能读取一次,一旦想要加上一个过滤器用来检测用户请求的数据时就会出现异常. 在过滤器中通过流读取出用 ...
- Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化
Atitit 发帖机实现(3 )---usrQBN023 js提交ajax内容到后端规范与标准化 大段内容务必要替换转义换行符号1 提交务必使用utf编码,否则解码后的可能缺失,是web serv ...
- 前端安全系列(二):如何防止CSRF攻击?
前端安全系列(二):如何防止CSRF攻击? 背景 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全问题的高危据点.在移动互联网时代,前端人员除了传统的 XS ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- java web学习总结(十) -------------------HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
jetty 9 嵌入式开发时,启动正常,但是页面一浏览就报错如下: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest ...
随机推荐
- XListView下拉刷新和上拉加载更多详解
转载本专栏每一篇博客请注明转载出处地址,尊重原创.博客链接地址:小杨的博客 http://blog.csdn.net/qq_32059827/article/details/53167655 市面上有 ...
- GDAL库进度信息编写示例
GDAL进度信息编写 GDAL库中的算法以及读写数据的时候一般都会提供两个与进度信息相关的参数,下面分别进行描述: GDALProgressFunc pfnProgress void * pProgr ...
- 深入解读XML解析
一.XML是什么?有什么用? XML是指.作为配置文件存在 二.XML的基本语法 1.文档声明:很重要 在编写XML文档时,需要先使用文档声明来声明XML文档.且必须出现在文档的第一行. 作用:告知解 ...
- Ubuntu和ROS一起愉快玩耍
Ubuntu和ROS重要的两个中文网址: Ubuntu:http://cn.ubuntu.com/ROS:http://wiki.ros.org/cn Robots and drones on Ubu ...
- [Mysql]Innodb 独立表空间和共享表空间
innodb有2中表空间方式: 共享表空间 和 独立表空间 查询数据的设置: show variables like '%per_table'; 默认是共享表空间,独立表空间在配置文件中添加 inno ...
- UNIX环境高级编程——创建孤儿进程
/* 创建孤儿进程 父进程终止后,向子进程发送挂断信号,又接着发送继续信号. */ #include <stdio.h> #include <stdlib.h> #includ ...
- unity使用ugui自制调色面板
突然想实现一个调色面板,然后开工... 首先找找有没有什么接口可调,木有找到,找到一些调用win32实现的本地颜色面板的调用,感觉不科学,反正多平台肯定是搞不定的. 既然没找到,还是老老实实的自己写吧 ...
- 微信公众平台开发者中心服务器配置Token验证失败问题
微信发展如火如荼,没有哪家的企业营销能避开微信不谈的,那像我们这种给客户实施项目的多多少少会涉及微信端的开发,本文只要给从未做过微信开发的人做一些简单的演示,行家里手们可以呵呵一下该干嘛干嘛去了. 微 ...
- Android回调事件传播-android学习之旅(四十五)
概念简介 代码演示 package peng.liu.test; import android.app.ActionBar; import android.app.Activity; import a ...
- 【一天一道LeetCode】#292. Nim Game
一天一道LeetCode 从今天开始,调整规律,不按顺序做,从easy开始! 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 ...