Tomcat配置和servlet創(chuàng)建(eclipse)、重定向和轉(zhuǎn)發(fā)

一、Tomcat下載和安裝

1、首先去官網(wǎng)下載Tomcat的zip包;
鏈接:http://tomcat.apache.org/

2、通過server,添加對應(yīng)版本的Tomcat,選則custom(找到下載的包的路徑)

二、Servlet訪問路徑配置

servlet:

  1. 路徑問題:

    a.通過插件@WebServlet("/servlet")

    b.通過web.xml里面配置

    如果兩個都配置了,兩個路徑都可以訪問

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
metadata-complete="false" 
version="3.0">
<!-- metadata-complete 是否掃描插件的注解, false:掃描 true:不掃描 -->
  <servlet>
    <servlet-name>wtx</servlet-name>
    <servlet-class>com.wtx.servlet.FirstSevlet</servlet-class>
    <!--啟動優(yōu)先級,加上這句話服務(wù)器啟動就會執(zhí)行-->
    <load-on-startup>4</load-on-startup>
  </servlet>
  
  <servlet-mapping>
    <servlet-name>wtx</servlet-name>
    <url-pattern>/first</url-pattern>
  </servlet-mapping>

servlet訪問靜態(tài)資源

web.xml里面找url-patten沒有缺省的-->全局的web.xml里面找缺省的("/")-->default-->去工程根目錄找-->index.html

插件設(shè)置Servlet訪問url

/**
 * Servlet implementation class WtxServlet
 */
方法一: @WebServlet("/wtxServlet")
方法二:@WebServlet(name = "www", urlPatterns = {"/OneServlet", "/One"},loadOnStartup = -1) //loadOnStartup != -1加上服務(wù)器啟動就會init


public class WtxServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see Servlet#init(ServletConfig)
     */
    public void init(ServletConfig config) throws ServletException {
        // TODO Auto-generated method stub
    }

    /**
     * @see Servlet#destroy()
     */
    public void destroy() {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#service(HttpServletRequest request, HttpServletResponse response)
     */
    //當每次請求的時候就會調(diào)用此方法
    //一但你寫了service就不會再去找doget 或dopost
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}

三、設(shè)置響應(yīng)頭和重定向(發(fā)送兩次請求,地址欄會變)

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        //設(shè)置響應(yīng)行 設(shè)置狀態(tài)碼
        response.setStatus(200);
        
        //添加響應(yīng)頭
        
        response.addHeader("name", "test");
        
        response.addIntHeader("age", 10);
        response.addDateHeader("my-Date", new Date().getTime());
        
        response.addHeader("name", "charles");
        
        
        //修改響應(yīng)頭
        response.setHeader("name", "charles_w");
        response.setIntHeader("age", 100);
        response.setDateHeader("my-Date", new Date().getTime());
        
        //設(shè)置重定向
        //訪問兩次-第一次是ResponseServlet,第二次是LocationServlet
        response.setStatus(302);
        //response.setHeader("location", "/26-Servlet/LocationServlet");
        //不用寫location
//      response.sendRedirect("/26-Servlet/LocationServlet");
        //定時刷新重定向  隔3秒鐘才去轉(zhuǎn)發(fā)
        //response.setHeader("refresh","3;url=http://www.baidu.com");
        
        
        //設(shè)置緩存區(qū)當中使用的編碼 UTF-8
        //response.setCharacterEncoding("UTF-8");
        
        //在響應(yīng)當中主動告訴瀏覽使用什么樣的編碼來接收
        //response.setHeader("Content-Type", "text/html;charset=UTF-8");
        //可以使用簡寫 放在設(shè)置響應(yīng)體之前來設(shè)置編碼
        response.setContentType("text/html;charset=UTF-8");
        
        //設(shè)置響應(yīng)體 
        //寫字符
        response.getWriter().write("響應(yīng)數(shù)據(jù)");
        //如果字符當中有html瀏覽器會幫你解析
        response.getWriter().write("<h1>666</h1>");
        //寫中文
        response.getWriter().write("我是666");
        
    }

四、ServletContext 全局的對象

//設(shè)置內(nèi)容
this.getServletContext().setAttribute("checkCode", "設(shè)置的內(nèi)容");

//獲取設(shè)置的內(nèi)容
this.getServletContext().getAttribute("checkCode");

五、請求轉(zhuǎn)發(fā)(發(fā)送一次請求,地址欄不會變)

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println(request);
    // 請求轉(zhuǎn)發(fā)
    //1.獲取轉(zhuǎn)發(fā)器
    //Servlet2 是另一個Servlet
    RequestDispatcher disp = request.getRequestDispatcher("/Servlet2");
    //域  能夠存儲數(shù)據(jù) 
    request.setAttribute("key", "value666");
    //2.轉(zhuǎn)發(fā)
    disp.forward(request, response);
        
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明: 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標明文章 原始出處 ...
    LUNJINGJIE閱讀 3,993評論 1 33
  • 一. Java基礎(chǔ)部分.................................................
    wy_sure閱讀 3,826評論 0 11
  • 第一章 WEB概述 1.WEB簡介 Javaweb: 用Java技術(shù)來解決相關(guān)web互聯(lián)網(wǎng)領(lǐng)域的技術(shù)總和。web包...
    北冥有魚_很好吃閱讀 381評論 0 0
  • Servlet是和平臺無關(guān)的服務(wù)器端組件,運行在Servlet容器中。Servlet容器負責Servlet和客戶的...
    于無聲處寫寫寫閱讀 796評論 0 0
  • 咸陽一曲阿房賦 垓下半分楚韻秋 殘戟未干百戰(zhàn)血 斷鋒難掩千年氿 龍戰(zhàn)于野,其血玄黃。天下悲嗷,萬里余荒。 但也正是...
    茗香酒影閱讀 216評論 0 1