转载

servletrequest

servletrequest由tomcat创建传递给servlet的service函数,包含了客户端的信息。 httpServletRequest是基于http协议的

servletrequest相关函数介绍

  1. Object getAttribute(String name);void setAttribute(String name, Object o);void removeAttribute(String name)返回域对象。这个域对象跟context的类似,只是针对于requestdespatcher中的函数来调用的。
  2. Enumeration getAttributeNames()同上
  3. String getCharacterEncoding()头部信息,编码方式。
  4. void setCharacterEncoding(String env)同上,只是设置编码方法
  5. int getContentLength()调取内容长度,如果长度位置返回-1
  6. long getContentLengthLong()同上
  7. String getContentType()内容的类型
  8. ServletInputStream getInputStream()获取请求的输入流
  9. Enumeration getParameterNames();String getParameter(String name);String[] getParameterValues(String name);Map<String,String[]> getParameterMap()获取query对象信息
  10. String getProtocol()返回协议例如:HTTP/1.1
  11. String getScheme()例如Http
  12. String getServerName()
  13. int getServerPort()打开端口号
  14. BufferedReader getReader()打开字符输入流
  15. String getRemoteAddr()
  16. String getRemoteHost()
  17. void removeAttribute(String name);Enumeration getLocales()返回客户端的local信息Accept-Language ,如果没有直接调用本都的
  18. boolean isSecure()是否采用安全协议
  19. RequestDispatcher getRequestDispatcher(String path)调用请求处理器
  20. ServletContext getServletContext()调用环境
  21. AsyncContext startAsync();AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse)异步模式,还不是很了解
  22. boolean isAsyncStarted()检测是否在异步模式
  23. boolean isAsyncSupported()是否支持异步
  24. AsyncContext getAsyncContext()返回进入的异步模式
  25. DispatcherType getDispatcherType()调度器相关,与listener相关

httpservletrequest相关函数介绍

  1. String getAuthType() 认证方式:有三种认证方式:基本、表单、 客户端认证、其他诊断认证。如果无认证null。对认证暂没有学习,不深入。
  2. Cookie[] getCookies():返回cookie,会有cookie的专题。cookie是服务器发给客户端的信息,进行标记
  3. long getDateHeader(String name)返回时间对象,例如If-Modified-Since.
  4. String getHeader(String name)返回header为name的字符对象。记住name是大小写敏感的
  5. Enumeration getHeaders(String name)返回多值的对象
  6. Enumeration getHeaderNames()返回所有头部
  7. int getIntHeader(String name)返回正数头部
  8. String getMethod()返回方法
  9. String getPathInfo()返回地址信息,这个用在地址匹配的目录的时候用,返回servlet地址与query之间的信息,以/开头
<servlet>
        <servlet-name>xxxa</servlet-name>
        <servlet-class>AServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>xxxa</servlet-name>
        <url-pattern>/aservlet/*</url-pattern>
    </servlet-mapping>
    
http://localhost:8080/web11/aservlet/234234/4312

print:/234234/4312
复制代码
  1. String getPathTranslated()将extra地址信息组成真正的地址。没啥用好像。例如上面的返回D:/java_temp/plug1/out/artifacts/web11_war_exploded/234234/4312
  2. String getContextPath()返回servlet地址,如果是root地址,返回空字符串。可能有多个与context的getContextPath()对象的返回值可能不同
  3. String getRemoteUser()认证之后的名字
  4. boolean isUserInRole(String role)认证相关的
  5. Principal getUserPrincipal()认证相关的安全等级
  6. String getRequestedSessionId()返回sessionID
  7. String getRequestURI()返回协议与query之间东西
  8. StringBuffer getRequestURL()返回完整的url,不包含query信息
  9. String getServletPath()返回servlet地址,以/开头
  10. HttpSession getSession(boolean create)返回一个session,如果没有就根据create的值是否创建一个新的
  11. HttpSession getSession()等同于HttpSession getSession(true)
  12. String changeSessionId()返回一个新的session
  13. boolean isRequestedSessionIdValid()session相关
  14. isRequestedSessionIdFromCookie
  15. boolean isRequestedSessionIdFromURL()
  16. boolean authenticate(HttpServletResponse response)授权相关
  17. void logout();void login(String username, String password)
  18. Collection getParts();Part getPart(String name)这两个函数主要针对于post命令中 multipart/form-data的处理。
  19. T upgrade(Class handlerClass)这个是协议升级,用一个类对象返回一个新的对象。好像没啥用

相关类RequestDispatcher

RequestDispatcher是一个请求资源调度器,在request中调用相关servlet与jsp程序。里面有两个函数:

  • void forward(ServletRequest request,ServletResponse response)forward函数在response提交之前进行调用,并且会清理数据缓存,不清理状态码与头部
  • void include(ServletRequest request,ServletResponse response)函数不改变response的头部与状态码。
原文  https://juejin.im/post/5d03b77b6fb9a07ec56e755f
正文到此结束
Loading...