天天看點

java 開發webapp_【Java Servlet 開發系列之二】建立WebApp詳細步驟,通過Servlet實作http簡單互動...

建立一個webApp詳細步驟如下:

1. 在我們的tomcat目錄下的webapps 下建立一個自定義目錄,作為我們webapp的整個項目目錄;這裡Himi命名為MyWebApp;

2.然後在 MyWebApp下繼續建立一個“WEB-INF"檔案夾(必須有),在WEB-INF下建立一個名字為"web.xml"檔案(必須有),并且在WEB-INF繼續放置一個名為“lib”檔案夾(必須有) ,lib下主要用于放置第三方jar包,tomcat自動為我們加載;最後仍舊在WEB-INF中建立一個名為“classes”檔案夾(必須有),整個classes檔案夾主要用于放置我們編譯好的servlet檔案;

目錄如下圖:

java 開發webapp_【Java Servlet 開發系列之二】建立WebApp詳細步驟,通過Servlet實作http簡單互動...

3. 第二步中建立的web.xml隻需要寫入如下内容即可:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0"

metadata-complete="true">

4. 設定tomcat自動為我們監控目錄是否有變化,有變化就自動為我們重新加載,設定方法:

在tomcat目錄下,conf/context.xml 打開後将  标簽加入一個屬性,如下:

5.編寫我們第一個Servlet:

IDE 建立一個 Java Project,然後在此項目中加入servlet jar包,此jar包為:

xxx(你的tomcat目錄)/lib/servlet-api.jar

6. 建立一個類,繼承HttpServlet 并且重寫doGet, doPost兩個函數,如下:

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {

private static final long serialVersionUID=1L;

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

super.doGet(req, resp);

}

@Override

protected void doPost(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

// TODO Auto-generated method stub

super.doPost(req, resp);

}

}

OK, doGet和doPost 都有兩個參數:

1). HttpServletRequest    表示用戶端傳過來的一個請求,然後被Tomcat包裝成對象;

2). HttpServletResponse   表示對用戶端的一個應答,将資料發送給用戶端;

這裡假設我們用戶端使用get方式通路伺服器,那麼我們稍微修改下get函數如下:

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

PrintWriter pw=resp.getWriter();//得到一個輸出流

//寫給Client端一個簡單網頁資訊

pw.println("

Server:Hello Client~");

pw.flush();

pw.close();

}

7. 這裡我們雖然編寫了一個Servlet,但是無法使用必須通過Tomcat使用,是以我們将剛剛編寫的Servlet類找到其對應編譯後的.class檔案,然後放置我們在tomcat目錄下自定義的MyWebApp/WEB-INF/classes檔案夾下;

8.修改web.xml讓tomcat知道當用戶端通路server時候知道什麼時候調用使用我們的servlet,将web.xml内容修改如下:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0"

metadata-complete="true">

servlethimi

HelloServlet

servlethimi

/himi

servlethimi

/xiaominghimi

這裡大概解釋一下:

1)   标簽是給你的servlet起個名字,整個名字是給tomcat來看的;

2)  對應你編譯後的servlet的類名;

3)  整個标簽主要是告訴tomcat,Client端通路我這個servlet而使用的字段是什麼;

這裡注意兩點:

a)  标簽内容要以"/"開頭;

b) 每個servlet可以對應很多個通路字段,比如這裡我有兩個 對應兩個通路字段"/himi","/xiaominghimi"

到此我們第一個簡單的WebApp就完成了,然後我們測試一下;

首先啟動tomcat  ,打開終端 startup.sh

然後打開你的safari 在位址欄敲入:

http://localhost:8080/MyWebApp/xiaominghimi

或者:

http://localhost:8080/MyWebApp/himi

都可以正常得到如下内容:

java 開發webapp_【Java Servlet 開發系列之二】建立WebApp詳細步驟,通過Servlet實作http簡單互動...

整個網頁的源碼如下:

OK,資料擷取正常;