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 應用名稱(工程名)/
轉載請於明顯處標明出處