<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Servlet

    Servlet是在 Java Web容器中運行的小程序,通常我們用Servlet來處理一些較為復雜的服務器端的業務邏輯。ServletJava EE的核心,也是所有的MVC框架的實現的根本!

    基于Web.xml配置

    Servlet3.0 之前的版本都需要在web.xml 中配置servlet標簽servlet標簽是由servletservlet-mapping標簽組成的,兩者之間通過在servletservlet-mapping標簽中同樣的servlet-name名稱來實現關聯的。

    Servlet的定義

    定義一個 Servlet 很簡單,只需要繼承javax.servlet.http.HttpServlet類并重寫doXXX(如doGet、doPost)方法或者service方法就可以了,其中需要注意的是重寫HttpServlet類的service方法可以獲取到上述七種Http請求方法的請求。

    javax.servlet.http.HttpServlet:

    在寫Servlet之前我們先了解下HttpServlet,javax.servlet.http.HttpServlet類繼承于javax.servlet.GenericServlet,而GenericServlet又實現了javax.servlet.Servletjavax.servlet.ServletConfigjavax.servlet.Servlet接口中只定義了servlet基礎生命周期方法:init(初始化)getServletConfig(配置)service(服務)destroy(銷毀),而HttpServlet不僅實現了servlet的生命周期并通過封裝service方法抽象出了doGet/doPost/doDelete/doHead/doPut/doOptions/doTrace方法用于處理來自客戶端的不一樣的請求方式,我們的Servlet只需要重寫其中的請求方法或者重寫service方法即可實現servlet請求處理。

    javax.servlet.http.HttpServlet類:

    TestServlet示例代碼:

    package com.anbai.sec.servlet;
    
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    
    /**
     * Creator: yz
     * Date: 2019/12/14
     */
    // 如果使用注解方式請取消@WebServlet注釋并注釋掉web.xml中TestServlet相關配置
    //@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"})
    public class TestServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
            doPost(request, response);
        }
    
        @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
            PrintWriter out = response.getWriter();
            out.println("Hello World~");
            out.flush();
            out.close();
        }
    
    }
    

    請求TestServlet示例:

    Servlet Web.xml配置

    定義好了Servlet類以后我們需要在web.xml中配置servlet標簽才能生效。

    基于配置實現的Servlet:

    Servlet3.0+基于注解方式配置

    基于注解的Servlet:

    值得注意的是在 Servlet3.0 之后( Tomcat7+)可以使用注解方式配置 Servlet 了,在任意的Java類添加javax.servlet.annotation.WebServlet注解即可。

    基于注解的方式配置Servlet實質上是對基于web.xml方式配置的簡化,極大的簡化了Servlet的配置方式,但是也提升了對Servlet配置管理的難度,因為我們不得不去查找所有包含了@WebServlet注解的類來尋找Servlet的定義,而不再只是查看web.xml中的servlet標簽配置。

    本文章首發在 網安wangan.com 網站上。

    上一篇 下一篇
    討論數量: 0
    只看當前版本


    暫無話題~
    亚洲 欧美 自拍 唯美 另类