1. Servlet介紹
Servlet(Server Applet),全稱Java Servlet,是用Java編寫的服務器端程序。其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容。
2. 第一個Servlet程序
1) 新建一個網站
打開MyEclipse,菜單File—New—Web Project,在Project Name中輸入名稱,本例為MyServletWeb(讀者可自由命名,會影響到將來網站部署后的URL訪問地址),點擊Finish,完成新建。
2) 新建一個Class實現Servlet接口
菜單File—New—Class,包名com.servlet.action,類名HelloServlet,實現接口Servlet。
package com.servlet.action; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class HelloServlet implements Servlet { @Override public void destroy() { // TODO Auto-generated method stub } @Override public ServletConfig getServletConfig() { // TODO Auto-generated method stub return null; } @Override public String getServletInfo() { // TODO Auto-generated method stub return null; } @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub } @Override public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("I told tou Hello!"); } }
其中:
1. init方法:初始化Servlet,該方法只有在第一次訪問Servlet的時候被調用一次。
2. destory方法:銷毀Servlet。
3. service方法:訪問該Servlet所要處理的業務邏輯,req:從客戶端獲取的數據,res:向客戶端返回的數據。
我們在service方法中添加System.out.println("I told tou Hello!"); 向控制台輸出一句話。
3)在WebRoot----WEB-INF中新建web.xml文件(web.xml名字不能變),代碼如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" 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"> <servlet> <!-- 名稱可以隨意更換,但是必須和<servlet-mapping>中<servlet-name>保持一致 --> <servlet-name>Hello</servlet-name> <!-- 對應的實現了servlet接口的類的全名 --> <servlet-class>com.servlet.action.HelloServlet</servlet-class> </servlet> <servlet-mapping> <!-- 名稱可以隨意更換,但是必須和<servlet>中<servlet-name>保持一致 --> <servlet-name>Hello</servlet-name> <!-- 要訪問的URL --> <url-pattern>/Hello</url-pattern> </servlet-mapping> </web-app>
4)將網站部署到tomcat服務器上,然后運行taomcat服務,啟動瀏覽器,在地址欄輸入:
http://127.0.0.1:8080/MyServletWeb/Hello,可以看到在MyEclipse中的Console窗口已經打印了:
I told tou Hello!
3. 解析
當我們在地址欄中訪問http://127.0.0.1:8080/MyServletWeb/Hello的時候,tomcat服務器首先會查找在其WebApp目錄中的MyServletWeb文件夾,找到后訪問其WEB-INF/web.xml文件,查找<utl-pattern>等於/Hello的節點(因為我要訪問的是.../MyServlet/Hello),然后根據其對應的<servlet-name>節點的值(本例為Hello)找到相應的<servlet-class>(本例為com.servlet.action.HelloServlet),並執行其service方法。
