美文网首页
Servlet基础1

Servlet基础1

作者: 草木不语只深深绿 | 来源:发表于2017-07-14 14:32 被阅读0次

    Servlet基础

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
    使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
    Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。

    Servlet生命周期

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
    1.Servlet 通过调用 init () 方法进行初始化。
    2.Servlet 调用 service() 方法来处理客户端的请求。service()方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重载 doGet() 或 doPost() 即可。
    3.Servlet 通过调用 destroy() 方法终止(结束)。
    4.最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    Servlet表单数据

    浏览器使用两种方法可将信息传递到 Web 服务器,分别为 GET 方法和 POST 方法。

    • get方法
      GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔,如下所示:
    http://www.test.com/hello?key1=value1&key2=value2
    

    GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。

    • post方法
      另一个向后台程序传递信息的比较可靠的方法是 POST 方法。POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。

    使用serlvet读取表单数据

    • getParameter(),可以调用 request.getParameter() 方法来获取表单参数的值。
    • getParameterValues(),如果参数出现一次以上,则调用该方法,并返回多个值,例如复选框。
    • getParameterNames(),如果您想要得到当前请求中的所有参数的完整列表,则调用该方法。

    Servlet客户端HTTP请求

    • 读取HTTP头的方法
      下面的方法可用在 Servlet 程序中读取 HTTP 头。这些方法通过 HttpServletRequest 对象可用。具体的方法参见
    方法 描述
    Cookie[] getCookies() 返回一个数组,包含客户端发送该请求的所有的 Cookie 对象。
    Enumeration getAttributeNames() 返回一个枚举,包含提供给该请求可用的属性名称。
    Enumeration getHeaderNames() 返回一个枚举,包含在该请求中包含的所有的头名。
    HttpSession getSession() 返回与该请求关联的当前 session 会话,或者如果请求没有 session 会话,则创建一个。
    HttpSession getSession(boolean create) 返回与该请求关联的当前 HttpSession,或者如果没有当前会话,且创建是真的,则返回一个新的 session 会话。

    Servlet服务器HTTP响应

    当一个 Web 服务器响应一个 HTTP 请求时,响应通常包括一个状态行、一些响应报头、一个空行和文档。一个典型的响应如下所示:

    HTTP/1.1 200 OK
    Content-Type: text/html
    Header2: ...
    ...
    HeaderN: ...
        (Blank Line)
    <!doctype ...>
    <html>
    <head>...</head>
    <body>
    ...
    </body>
    </html>
    

    状态行包括 HTTP 版本(在本例中为 HTTP/1.1)、一个状态码(在本例中为 200)和一个对应于状态码的短消息(在本例中为 OK)。

    • 设置HTTP响应报头的方法
      下面的方法可用于在 Servlet 程序中设置 HTTP 响应报头。这些方法通过 HttpServletResponse 对象可用。

    Servlet HTTP状态码

    HTTP 请求和 HTTP 响应消息的格式是类似的,结构如下:
    1.初始状态行 + 回车换行符(回车+换行)
    2.零个或多个标题行+回车换行符
    3.一个空白行,即回车换行符
    4.一个可选的消息主体,比如文件、查询数据或查询输出

    • 设置HTTP状态码的方法
      下面的方法可用于在 Servlet 程序中设置 HTTP 状态码。这些方法通过 HttpServletResponse 对象可用。
    方法 对象
    public void setStatus(int statusCode) 该方法设置一个任意的状态码。setStatus 方法接受一个 int(状态码)作为参数。
    public void sendRedirect(String url) 该方法生成一个 302 响应,连同一个带有新文档 URL 的 Location 头。
    public void sendError(int code, String message) 该方法发送一个状态码(通常为 404),连同一个在 HTML 文档内部自动格式化并发送到客户端的短消息。

    相关文章

      网友评论

          本文标题:Servlet基础1

          本文链接:https://www.haomeiwen.com/subject/ljxghxtx.html