1. 程式人生 > >Servlet 學習(一)

Servlet 學習(一)

Servlet簡介

1、Servlet是執行在Web伺服器或者應用伺服器上的Java程式,接收並響應來自Web客戶端的請求。
2、它是一箇中間層負責連線客戶端請求與HTTP伺服器上的資料庫或者應用程式。
3、Servlet 是一個特殊的類,它實現了javax.servlet.Servlet 介面。

Servlet 功能
1、讀取客戶傳送的顯式資料。
2、讀取客戶傳送的隱式資料。
3、生成結果。
4、向客戶傳送顯式資料。
5、傳送隱式的HTTP 請求資料。

Servlet 開發環境

1、下載並解壓Tomcat(Tomcat 是由 Apache 開發的一個 Servlet 容器,實現了對 Servlet 和 JSP 的支援,並提供了作為Web伺服器的一些特有功能)

2、Tomcat 的目錄結構

  • bin目錄:存放操縱tomcat 的命令
  • conf目錄:存放配置檔案
  • lib目錄:存放一些jar 檔案
  • logs目錄:用於存放tomcat 的日誌資訊
  • webapps目錄:存放web 應用後面會看到,我們的應用程式就放在這裡
  • work目錄:存放編譯好的class檔案等資訊
  • temp目錄:臨時產生的檔案,即快取

3、啟動tomcat

  • 進入命令提示符找到apache-tomcat-8.0.38/bin 目錄
  • Windows 輸入catalina.bat run ,回車,啟動tomcat, Linux 輸入catalina.sh run ,回車,啟動tomcat
  • 或者Windows 輸入startup.bat ,回車,啟動tomcat Linux 輸入startup.sh ,回車,啟動tomcat
  • 區別:catalina 方式便於程式除錯,只打開一個命令視窗,startup 方式則會在當前視窗基礎上,再開啟一個視窗

 

 4、啟動後,可以通過在瀏覽器位址列輸入 http://localhost:8080/ 訪問 Tomcat 中的預設應用程式,修改apache-tomcat-8.0.38\conf\tomcat-users.xml配置檔案就可以進入Tomcat的Server Status、Manager App和Host Manager。

 5、關閉tomcat

  • 在已經啟動tomcat 的命令列(終端)視窗中按Ctrl + C 或者Ctrl + Z 或者Ctrl + D [視作業系統而言]Windows 下使用Ctrl + C。
  • 程式會進入下面的提示,這時輸入y ,回車即可。

6、 將 Tomcat 和 Eclipse 相關聯

選擇選單欄Windows-->preferences,彈出如下介面:

上圖中,點選"add"的新增按鈕,彈出如下介面:

在選項中,我們選擇對應的 Tomcat 版本,接著點選 "Next",選擇 Tomcat 的安裝目錄,並選擇我們安裝的 Java 環境:

編寫Servlet

1、建立一個動態的web工程

上圖中,點選"next"的新增按鈕,彈出如下介面:

接著點選 "Next",修改預設輸出路徑為WebContent\WEB-INF\classes:

 點next,打鉤,動態web工程建立完成。

2、新建一個servlet類

package ecut.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class RegistServlet implements Servlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
    }

    @Override
    public void service( ServletRequest req , ServletResponse resp ) throws ServletException, IOException {
        req.setCharacterEncoding( "UTF-8" );
        resp.setCharacterEncoding( "UTF-8" ); // 設定響應體的編碼
        resp.setContentType( "text/html;charset=UTF-8" );
        
        String username = req.getParameter( "username" );
        System.out.println( "username : " + username );
        
        PrintWriter w = resp.getWriter();
        w.println( "<h1 style='text-align:center' >恭喜" + username + ",你已註冊成功!</h1>" );
    }
    
    @Override
    public void destroy() {
    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    
    @Override
    public String getServletInfo() {
        return null;
    }

}

3、修改web.xml(Web 部署描述符)

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    id="WebApp_ID" version="3.1">
    
    <!-- servlet -->
    <servlet>
        <servlet-name>RegistServlet</servlet-name>
        <servlet-class>ecut.servlet.RegistServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>RegistServlet</servlet-name>
        <url-pattern>/regist</url-pattern>
    </servlet-mapping>
    
</web-app>

註冊Servlet 類: 告訴Web 伺服器有這麼個類存在
<servlet>
<servlet-name>名字隨便取和下面名稱一致</servlet-name>
<servlet-class>包名.類名</servlet-class>
</servlet>
對映servlet : 告訴Web 伺服器當Web 客戶端訪問某個路徑時請求那個servlet
<servlet-mapping>
<servlet-name>名字上面名稱一致</servlet-name>
<url-pattern>虛擬路徑</url-pattern>
</servlet-mapping>

4、寫一個HTML頁面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>註冊</title>
</head>
<body>

    <!-- 約定: 所有的路徑一律從 當前的WEB應用的路徑開始 -->

    <form action="/Servlet/regist" method="post">
        <input type="text" name="username" placeholder="使用者名稱">
        <input type="password" name="password" placeholder="密碼">
        <input type="password" name="confirm" placeholder="確認密碼">
        <input type="submit" value="註冊">
    </form>

</body>
</html>

5、新增server

6、修改配置,將複製目錄改為自己新建的目錄

7、啟動tomcat,輸入http://localhost:8080/Servlet/pages/servlet/regist.html

URL : 統一資源定位器( 協議://主機:埠/資源名稱)Apache Tomcat 的預設埠是8080
http://localhost:8080/WEB 應用名稱(工程名)/

轉載請於明顯處標明出處