91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JavaEE的Servlet核心API如何使用

發布時間:2022-03-04 17:18:45 來源:億速云 閱讀:139 作者:iii 欄目:web開發

這篇文章主要介紹了JavaEE的Servlet核心API如何使用的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇JavaEE的Servlet核心API如何使用文章都會有所收獲,下面我們一起來看看吧。

一、核心API簡介

1、Servlet執行流程

Servlet是JavaWeb的三大組件之一(Servlet、Filter、Listener),它屬于動態資源。Servlet的作用是處理請求,服務器會把接收到的請求交給Servlet來處理,在Servlet中通常需要:接收請求數據;處理請求;完成響應。

2、核心API簡介

API 作用描述
ServletConfig 獲取servlet初始化參數和servletContext對象。
ServletContext 在整個Web應用的動態資源之間共享數據。
ServletRequest 封裝Http請求信息,在請求時創建。
ServletResponse 封裝Http響應信息,在請求時創建。

二、ServletConfig接口

1、接口簡介

容器在初始化servlet時,為該servlet創建一個servletConfig對象,并將這個對象通過init()方法來傳遞并保存在此Servlet對象中。核心作用:1.獲取初始化信息;2.獲取ServletContext對象。

2、代碼案例

  • 配置文件

<servlet>
    <init-param>
        <param-name>my-name</param-name>
        <param-value>cicada</param-value>
    </init-param>
    <servlet-name>servletOneImpl</servlet-name>
    <servlet-class>com.node02.servlet.impl.ServletOneImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servletOneImpl</servlet-name>
    <url-pattern>/servletOneImpl</url-pattern>
</servlet-mapping>
  • API用法

public class ServletOneImpl implements Servlet {

    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        String servletName = servletConfig.getServletName() ;
        System.out.println("servletName="+servletName);
        String myName = servletConfig.getInitParameter("my-name") ;
        System.out.println("myName="+myName);
        Enumeration paramNames = servletConfig.getInitParameterNames() ;
        while (paramNames.hasMoreElements()){
            String paramKey = String.valueOf(paramNames.nextElement()) ;
            String paramValue = servletConfig.getInitParameter(paramKey) ;
            System.out.println("paramKey="+paramKey+";paramValue="+paramValue);
        }
        ServletContext servletContext = servletConfig.getServletContext() ;
        servletContext.setAttribute("cicada","smile");
    }
}

三、ServletContext接口

1、接口簡介

一個項目只有一個ServletContext對象,可以在多個Servlet中來獲取這個對象,使用它可以給多個Servlet傳遞數據,該對象在Tomcat啟動時就創建,在Tomcat關閉時才會銷毀!作用是在整個Web應用的動態資源之間共享數據。

  • 獲取方式

1、ServletConfig#getServletContext();
2、GenericServlet#getServletContext();
3、HttpSession#getServletContext()
4、ServletContextEvent#getServletContext()

2、四大域對象

ServletContext是JavaWeb四大域對象之一:

1、PageContext;
2、ServletRequest;
3、HttpSession;
4、ServletContext;

所有域對象都有存取數據的功能,因為域對象內部有一個Map,用來存儲數據。

3、代碼案例

  • 配置文件

<context-param>
    <param-name>my-blog</param-name>
    <param-value>2019-11-19</param-value>
</context-param>
<servlet>
    <servlet-name>servletTwoImpl</servlet-name>
    <servlet-class>com.node02.servlet.impl.ServletTwoImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servletTwoImpl</servlet-name>
    <url-pattern>/servletTwoImpl</url-pattern>
</servlet-mapping>
  • API用法

public class ServletTwoImpl extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8");
        // 1、參數傳遞
        ServletContext servletContext = this.getServletContext() ;
        String value = String.valueOf(servletContext.getAttribute("cicada")) ;
        System.out.println("value="+value);
        // 2、獲取初始化參數
        String myBlog = servletContext.getInitParameter("my-blog") ;
        System.out.println("myBlog="+myBlog);
        // 3、獲取應用信息
        String servletContextName = servletContext.getServletContextName() ;
        System.out.println("servletContextName="+servletContextName);
        // 4、獲取路徑
        String pathOne = servletContext.getRealPath("/") ;
        String pathTwo = servletContext.getRealPath("/WEB-INF/") ;
        System.out.println("pathOne="+pathOne+";pathTwo="+pathTwo);
        response.getWriter().print("執行:doGet; value:"+value);
    }
}

四、ServletRequest接口

1、接口簡介

HttpServletRequest接口繼承ServletRequest接口,用于封裝請求信息,該對象在用戶每次請求servlet時創建并傳入servlet的service()方法,在該方法中,傳入的servletRequest將會被強制轉化為HttpservletRequest對象來進行HTTP請求信息的處理。核心作用:1.獲取請求報文信息;2.獲取網絡連接信息;3.獲取請求域屬性信息。

2、代碼案例

  • 配置文件

<servlet>
    <servlet-name>servletThreeImpl</servlet-name>
    <servlet-class>com.node02.servlet.impl.ServletThreeImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servletThreeImpl</servlet-name>
    <url-pattern>/servletThreeImpl</url-pattern>
</servlet-mapping>
  • API用法

public class ServletThreeImpl extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // http://localhost:6003/servletThreeImpl?myName=cicada
        String method = request.getMethod();
        System.out.println("method="+method); // GET
        String requestURL = request.getRequestURL().toString();
        // http://localhost:6003/servletThreeImpl
        System.out.println("requestURL="+requestURL);
        String requestURI = request.getRequestURI();
        System.out.println("requestURI="+requestURI); // /servletThreeImpl
        String queryString = request.getQueryString() ;
        System.out.println("queryString="+queryString); // myName=cicada
        String myName = request.getParameter("myName");
        System.out.println("myName="+myName); // cicada
    }
}

五、ServletResponse接口

1、接口簡介

HttpServletResponse繼承自ServletResponse,封裝了Http響應信息。客戶端每個請求,服務器都會創建一個response對象,并傳入給Servlet.service()方法。核心作用:1.設置響應頭信息;2.發送狀態碼;3.設置響應正文;4.重定向;

2、代碼案例

  • 配置文件

<servlet>
    <servlet-name>servletFourImpl</servlet-name>
    <servlet-class>com.node02.servlet.impl.ServletFourImpl</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servletFourImpl</servlet-name>
    <url-pattern>/servletFourImpl</url-pattern>
</servlet-mapping>
  • API用法

public class ServletFourImpl extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=utf-8") ;
        response.setCharacterEncoding("UTF-8");
        response.setStatus(200) ;
        response.getWriter().print("Hello,知了");
    }
}

3、轉發和重定向

  • 轉發

服務器端進行的頁面跳轉的控制 ;

request.getRequestDispatcher("/轉發地址").forward(request, response);
  • 重定向

服務端響應跳轉信息,瀏覽器端進行的頁面跳轉 ;

response.sendRedirect("重定向地址");
  • 轉發和重定向對比

區別 轉發 重定向
地址欄 不變 變化
跳轉 服務端跳轉 瀏覽器端跳轉
請求次數 一次 兩次
域中數據 不會丟失 丟失
 

關于“JavaEE的Servlet核心API如何使用”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“JavaEE的Servlet核心API如何使用”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔江区| 固镇县| 南开区| 项城市| 平顶山市| 彩票| 凤山县| 垣曲县| 金山区| 阿图什市| 寿阳县| 大兴区| 淮南市| 临武县| 祁门县| 清丰县| 水城县| 涞水县| 额尔古纳市| 波密县| 六安市| 施甸县| 年辖:市辖区| 玛曲县| 黔江区| 房产| 惠水县| 大足县| 来凤县| 犍为县| 布拖县| 金门县| 襄汾县| 阿坝县| 台州市| 于田县| 石屏县| 建德市| 榆林市| 香格里拉县| 福贡县|