• Servlet入门解说


    Servlet 是一种服务器端的 Java 应用程序,具有独立于平台和协议的特性,可以生成动
    态的 Web 页面。它担当客户请求(Web
    浏览器或其他 HTTP 客户程序)与服务器响应(HTTP
    服务器上的数据库或应用程序)的中间层。
    Servlet 由 Web 服务器进行加载,该
    Web 服务器必须包含支持 Servlet的 Java 虚拟机。

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

    import java.io.*;

    import javax.servlet.*;

    import javax.servlet.http.*;

    publicclassSampleextendsHttpServlet{

    publicvoid doGet(HttpServletRequest request,HttpServletResponse response) throwsServletException,IOException

          {           // 使用"request"读取和请求有关的信息(比如 Cookies) 和表单数据

                      // 使用"response"指定 HTTP 应答状态代码和应答头(比如指定内容类型,设置 Cookie)

                      PrintWriter out = response.getWriter();// 使用 "out"把应答内容发送到浏览器  

      }           

    }

    如果某个类要成为 Servlet,则它应该从 HttpServlet 继承,根据数据是通过 GET 还是POST 发送,覆盖 doGet、doPost
    方法之一或全部。doGet 和 doPost 方法都有两个参数,分别为 HttpServletRequest 类型和 HttpServletResponse
    类型。

    HttpServletRequest 定义   public interface HttpServletRequest extends ServletRequest;   用来处理一个对Servlet的HTTP格式的请求信息。 方法

    1.协议

    getMethod() getProtocol() getScheme()

    2.客户信息

    getRemoteAddr() getRemoteHost() getRemotePort() getRemoteUser()

    3.请求URL
    getContextPath() getPathInfo() getPathTranslated() getQueryString() getRequestURI() getRequestURL() getServletPath() getRealPath()
    4、头 getDateHeader() getHeader() getHeaderNames() getHeaders() getIntHeader()
    5、Cookie getCookie() 6、会话 getRequestSessoinId() getSession() isRequestedSessionIdFromCookie() isRequestedSessionIdFromURL() isRequestedSessionIdValid()
    7、安全 getAuthType() getRemoteUser() getUserPrincipal() isUserInRole() isSecure() 8、国际化 getCharacterEncoding() getLocale() getLocals() setCharacterEncoding()
    9、输入数据 getContentLength() getContentType() getInputStream() getParameter() getParameterMap() getParameterNames() getParameterValues() getReader() 10、服务器信息

    getRequestDispatcher() getServerName() getServerPort()

    11、属性 getAttribute() getAttributeNames() removeAttribute() setAttribute()  

    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代替。

    HttpServletResponse

    1、缓冲器      flushBuffer() getBufferSize()      isCommited()      reset()      setBufferSize()

    2、响应URL      encodeRedirectUrl()          encodeRedirectURL()      encodeURL()      sendRedirect()

    3、头      addHeader()      addDateHeader()      addIntHeader()      containsHeader()      setDateHeader()      setHeader()      setIntHeader()

    4、Cookie      addCookie()

    5、国际化      getCharacterEncoding      getLocale()      getLocals()

    6、输出数据      setContentLength()      setContentType()      getOutputStream()      getWriter()

    7、状态和错误      sendError()      setStatus()

  • 相关阅读:
    java8 stream().map().collect()用法
    Java中Collections的emptyList、EMPTY_LIST详解
    zxing实现java二维码生成和解析
    机器学习与数据挖掘—K邻近算法(KNN)
    第一个Web项目(IDEA)
    Ucore操作系统实验-实验课程设计
    数据挖掘与机器学习--损失函数
    机器数据挖掘--常见监督学习算法以及数据挖掘流程
    Tomcat安装-环境变量配置-启动-关闭
    操作系统实验教程(Ucore)--Lab6
  • 原文地址:https://www.cnblogs.com/hwj2wj/p/2888455.html
Copyright © 2020-2023  润新知