成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

javaweb開(kāi)發(fā)之servlet初始

Cheriselalala / 2509人閱讀

摘要:概述是公司提供的一門(mén)用于開(kāi)發(fā)動(dòng)態(tài)資源的技術(shù)。把開(kāi)發(fā)好的類(lèi)部署到服務(wù)器中。應(yīng)用程序被停止或重新啟動(dòng)之前,引擎將卸載,并在卸載之前調(diào)用的方法。

servlet概述

Servlet是sun公司提供的一門(mén)用于開(kāi)發(fā)動(dòng)態(tài)web資源的技術(shù)。

Sun公司在其API中提供了一個(gè)servlet接口,用戶(hù)若想用發(fā)一個(gè)動(dòng)態(tài)web資源(即開(kāi)發(fā)一個(gè)Java程序向?yàn)g覽器輸出數(shù)據(jù)),需要完成以下2個(gè)步驟:

(1)編寫(xiě)一個(gè)Java類(lèi),實(shí)現(xiàn)servlet接口。
(2)把開(kāi)發(fā)好的Java類(lèi)部署到web服務(wù)器中。
(3)按照一種約定俗成的稱(chēng)呼習(xí)慣,通常我們也把實(shí)現(xiàn)了servlet接口的java程序,稱(chēng)之為Servlet

servlet運(yùn)行過(guò)程:

(1)Servlet程序是由WEB服務(wù)器調(diào)用,web服務(wù)器收到客戶(hù)端的Servlet訪問(wèn)請(qǐng)求后:
      ①Web服務(wù)器首先檢查是否已經(jīng)裝載并創(chuàng)建了該Servlet的實(shí)例對(duì)象。如果是,則直接執(zhí)行第④步,否則,執(zhí)行第②步。
      ②裝載并創(chuàng)建該Servlet的一個(gè)實(shí)例對(duì)象。
      ③調(diào)用Servlet實(shí)例對(duì)象的init()方法。
      ④創(chuàng)建一個(gè)用于封裝HTTP請(qǐng)求消息的HttpServletRequest對(duì)象和一個(gè)代表HTTP響應(yīng)消息的HttpServletResponse對(duì)象,然后調(diào)用Servlet的service()方法并將請(qǐng)求和響應(yīng)對(duì)象作為參數(shù)傳遞進(jìn)去。
      ⑤WEB應(yīng)用程序被停止或重新啟動(dòng)之前,Servlet引擎將卸載Servlet,并在卸載之前調(diào)用Servlet的destroy()方法。 

IDEA創(chuàng)建第一個(gè)servlet程序

選中自己的project,打開(kāi)Project Structure界面》》選中Libraries》》點(diǎn)擊"+"并選擇java》》選擇并選中自己的tomcat/lib/servlet-api.jar》》Apply》》OK

通過(guò)idea創(chuàng)建servlet,選中項(xiàng)目的src目錄,右鍵選擇new

創(chuàng)建一個(gè)servlet,命名為testServlet

創(chuàng)建成功后testServlet.java文件中有一行關(guān)鍵的代碼:

@WebServlet(name = "TestServlet")
備注:可以加上具體的urlPattern參數(shù)來(lái)定義servlet的具體的請(qǐng)求的URL,如下
   @WebServlet(name = "TestServlet",urlPatterns = "/test")

示例代碼:

示例代碼分享:

關(guān)于servlet之http請(qǐng)求的request與response對(duì)象:

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Arrays;

@WebServlet(name = "testServlet",urlPatterns = "/test")
public class testServlet extends HttpServlet {
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

   }

   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //請(qǐng)求頭,請(qǐng)求行,請(qǐng)求體
       System.out.println("請(qǐng)求行:");
       System.out.println("url:"+request.getRequestURL());
       System.out.println("uri"+request.getRequestURI());
       System.out.println("methord:"+request.getMethod());
       System.out.println("querystring:"+request.getQueryString());
       System.out.println("addr:"+request.getRemoteAddr());
       System.out.println("host:"+request.getRemoteHost());
       System.out.println("--------------------");
       System.out.println("請(qǐng)求頭:");
       Enumeration headerNames = request.getHeaderNames();
       while(headerNames.hasMoreElements()){
           String key = headerNames.nextElement();
           String value = request.getHeader(key);
           System.out.println(key+"="+value);
       }
       System.out.println("--------------------");
       System.out.println("請(qǐng)求體:");
       Enumeration params = request.getParameterNames();
       while (params.hasMoreElements()){
           String key = params.nextElement();
           //接收的參數(shù)中一般有中文,注意編碼
           String value = request.getParameter(key);
           value = new String(value.getBytes("iso-8859-1"),"UTF-8");
           System.out.println(key+"="+value);
       }
       System.out.println("--------------------");
       //開(kāi)始response
       //1.二進(jìn)制流方式輸出
       response.setContentType("text/html;charset=UTF-8");//一定要做編碼的設(shè)置,否則瀏覽器可能輸出亂碼
       //response.getOutputStream().write("中國(guó)".getBytes("UTF-8"));
       //2.字符流方式輸出
       response.getWriter().write("字符流");
   }


}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74336.html

相關(guān)文章

  • 超詳細(xì)的Java面試題總結(jié)(四 )JavaWeb基礎(chǔ)知識(shí)總結(jié)

    摘要:系列文章請(qǐng)查看超詳細(xì)的面試題總結(jié)一之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)二之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)三之集合篇常見(jiàn)問(wèn)題下面的都是自己之前在學(xué)習(xí)的時(shí)候總結(jié)的,對(duì)于鞏固的基礎(chǔ)知識(shí)應(yīng)該有很大幫助。注意多線程的并發(fā)的讀寫(xiě)類(lèi)屬性會(huì)導(dǎo)致數(shù)據(jù)不同步。 系列文章請(qǐng)查看: 超詳細(xì)的Java面試題總結(jié)(一)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(二)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(...

    Leo_chen 評(píng)論0 收藏0
  • JavaWEB開(kāi)發(fā)11——JSP

    摘要:出現(xiàn)的目的同一樣也是要提到頁(yè)面中的腳本代碼。標(biāo)準(zhǔn)標(biāo)準(zhǔn)標(biāo)簽庫(kù)有個(gè)子庫(kù),但隨著發(fā)展,目前常使用的是他的核心庫(kù)標(biāo)簽庫(kù)標(biāo)簽庫(kù)的前綴下載與導(dǎo)入下載從的網(wǎng)站下載的包。 一、JSP技術(shù)1.jsp腳本和注釋jsp腳本:1) ----- 內(nèi)部的java代碼翻譯到service方法的內(nèi)部2) ----- 會(huì)被翻譯成service方法內(nèi)部out.print()3) ---- 會(huì)被翻譯成servlet的成員的...

    beita 評(píng)論0 收藏0
  • JavaWEB開(kāi)發(fā)07——Http協(xié)議&Servlet

    摘要:協(xié)議版本請(qǐng)求頭客戶(hù)端向服務(wù)器端表示,我能支持什么類(lèi)型的數(shù)據(jù)。在地址欄上輸入項(xiàng)目名稱(chēng)向報(bào)告,我這個(gè)應(yīng)用里面有這個(gè),名字叫做具體的路徑是注冊(cè)的映射。的配置,通過(guò)這個(gè)對(duì)象,可以獲取在配置的時(shí)候一些信息先說(shuō),在寫(xiě)怎么用,最后說(shuō)有什么用。 1.Http協(xié)議 什么是協(xié)議 雙方在交互、通訊的時(shí)候, 遵守的一種規(guī)范、規(guī)則。 http協(xié)議 針對(duì)網(wǎng)絡(luò)上的客戶(hù)端 與 服務(wù)器端在執(zhí)行http請(qǐng)求的時(shí)候...

    hsluoyz 評(píng)論0 收藏0
  • JavaWeb從0開(kāi)始學(xué)(一)-----第一個(gè)Web應(yīng)用程序與JSP工作原理

    摘要:當(dāng)后繼請(qǐng)求相同的頁(yè)面時(shí),容器加載之前生成的類(lèi),并且通知去執(zhí)行已經(jīng)存在的字節(jié)碼,從而省去了轉(zhuǎn)換的過(guò)程,這也是第一次執(zhí)行頁(yè)面時(shí)間較長(zhǎng)的原因。 以往學(xué)習(xí)的時(shí)候大多是看完書(shū)或者看完視頻,動(dòng)手實(shí)踐一下就OK了。然而過(guò)了一段時(shí)間我發(fā)現(xiàn)東西都忘差不多了,需要復(fù)習(xí)才能重新掌握?,F(xiàn)在開(kāi)始學(xué)習(xí)JavaWeb了,我將在這里記錄自己的學(xué)習(xí)的一點(diǎn)一滴,不僅便于自己以后回顧知識(shí)點(diǎn),也希望能對(duì)JavaWeb初學(xué)者有...

    CloudDeveloper 評(píng)論0 收藏0
  • JavaWEB開(kāi)發(fā)15——Listener&Listener

    摘要:創(chuàng)建與銷(xiāo)毀對(duì)象是發(fā)送請(qǐng)求服務(wù)器就會(huì)創(chuàng)建它,當(dāng)響應(yīng)產(chǎn)生時(shí),對(duì)象就會(huì)銷(xiāo)毀。是容器為開(kāi)發(fā)人員提供的對(duì)象,它提供了對(duì)某一資源的已過(guò)濾請(qǐng)求調(diào)用鏈的視圖。 一、Listener監(jiān)聽(tīng)器 Javaweb開(kāi)發(fā)中的監(jiān)聽(tīng)器,是用于監(jiān)聽(tīng)web常見(jiàn)對(duì)象 HttpServletRequest HttpSession ServletContext 監(jiān)聽(tīng)它們的創(chuàng)建與銷(xiāo)毀 屬性變化 session綁...

    RebeccaZhong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<