JavaEE中Servlet核心API怎么用-創(chuàng)新互聯(lián)

這篇文章主要介紹了JavaEE中Servlet核心API怎么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)公司主營回民網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),回民h5重慶小程序開發(fā)公司搭建,回民網(wǎng)站營銷推廣歡迎回民等地區(qū)企業(yè)咨詢

一、核心API簡介

1、Servlet執(zhí)行流程

Servlet是JavaWeb的三大組件之一(Servlet、Filter、Listener),它屬于動(dòng)態(tài)資源。Servlet的作用是處理請求,服務(wù)器會(huì)把接收到的請求交給Servlet來處理,在Servlet中通常需要:接收請求數(shù)據(jù);處理請求;完成響應(yīng)。

2、核心API簡介

API作用描述
ServletConfig獲取servlet初始化參數(shù)和servletContext對(duì)象。
ServletContext在整個(gè)Web應(yīng)用的動(dòng)態(tài)資源之間共享數(shù)據(jù)。
ServletRequest封裝Http請求信息,在請求時(shí)創(chuàng)建。
ServletResponse封裝Http響應(yīng)信息,在請求時(shí)創(chuàng)建。

二、ServletConfig接口

1、接口簡介

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

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、接口簡介

一個(gè)項(xiàng)目只有一個(gè)ServletContext對(duì)象,可以在多個(gè)Servlet中來獲取這個(gè)對(duì)象,使用它可以給多個(gè)Servlet傳遞數(shù)據(jù),該對(duì)象在Tomcat啟動(dòng)時(shí)就創(chuàng)建,在Tomcat關(guān)閉時(shí)才會(huì)銷毀!作用是在整個(gè)Web應(yīng)用的動(dòng)態(tài)資源之間共享數(shù)據(jù)。

  • 獲取方式

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

2、四大域?qū)ο?/h3>

ServletContext是JavaWeb四大域?qū)ο笾唬?/p>

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

所有域?qū)ο蠖加写嫒?shù)據(jù)的功能,因?yàn)橛驅(qū)ο髢?nèi)部有一個(gè)Map,用來存儲(chǔ)數(shù)據(jù)。

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、參數(shù)傳遞
        ServletContext servletContext = this.getServletContext() ;
        String value = String.valueOf(servletContext.getAttribute("cicada")) ;
        System.out.println("value="+value);
        // 2、獲取初始化參數(shù)
        String myBlog = servletContext.getInitParameter("my-blog") ;
        System.out.println("myBlog="+myBlog);
        // 3、獲取應(yīng)用信息
        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("執(zhí)行:doGet; value:"+value);
    }
}

四、ServletRequest接口

1、接口簡介

HttpServletRequest接口繼承ServletRequest接口,用于封裝請求信息,該對(duì)象在用戶每次請求servlet時(shí)創(chuàng)建并傳入servlet的service()方法,在該方法中,傳入的servletRequest將會(huì)被強(qiáng)制轉(zhuǎn)化為HttpservletRequest對(duì)象來進(jìn)行HTTP請求信息的處理。核心作用:1.獲取請求報(bào)文信息;2.獲取網(wǎng)絡(luò)連接信息;3.獲取請求域?qū)傩孕畔ⅰ?/p>

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響應(yīng)信息。客戶端每個(gè)請求,服務(wù)器都會(huì)創(chuàng)建一個(gè)response對(duì)象,并傳入給Servlet.service()方法。核心作用:1.設(shè)置響應(yīng)頭信息;2.發(fā)送狀態(tài)碼;3.設(shè)置響應(yīng)正文;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、轉(zhuǎn)發(fā)和重定向

  • 轉(zhuǎn)發(fā)

服務(wù)器端進(jìn)行的頁面跳轉(zhuǎn)的控制 ;

request.getRequestDispatcher("/轉(zhuǎn)發(fā)地址").forward(request, response);
  • 重定向

服務(wù)端響應(yīng)跳轉(zhuǎn)信息,瀏覽器端進(jìn)行的頁面跳轉(zhuǎn) ;

response.sendRedirect("重定向地址");
  • 轉(zhuǎn)發(fā)和重定向?qū)Ρ?/p>

區(qū)別轉(zhuǎn)發(fā)重定向
地址欄不變變化
跳轉(zhuǎn)服務(wù)端跳轉(zhuǎn)瀏覽器端跳轉(zhuǎn)
請求次數(shù)一次兩次
域中數(shù)據(jù)不會(huì)丟失丟失

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“JavaEE中Servlet核心API怎么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)頁標(biāo)題:JavaEE中Servlet核心API怎么用-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article24/cdohce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃Google、全網(wǎng)營銷推廣搜索引擎優(yōu)化、虛擬主機(jī)、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)