標籤:servlet javaee web.xml genericservlet httpservlet
(1)方法一:
//這是第一個實現servlet的方法,使用時限servlet介面的方法來實現,使用的時候需要引用servlet-api.jar
package com.lc;import javax.servlet.*;import java.io.*;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;public class Hello implements Servlet{//該函數用於初始化該servlet(類似於類的建構函式)//該函數只會被調用一次(當使用者第一次訪問該servlet是被調用)public void init(ServletConfig parm1) throws ServletException {System.out.println("init it!");}public ServletConfig getServletConfig() {return null;}//這個函數用於處理商務邏輯//程式員應當那個當商務邏輯邏輯代碼寫在這裡//當使用者訪問servlet時都會被調用//req用於獲得用戶端的資訊 //res使用者想用戶端返回資訊 (可以認為是遊覽器)public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {//從res中得到PrintwriterSystem.out.println("service it!"); //在控制台顯示PrintWriter pw = res.getWriter();pw.println("hello world!");//在遊覽器中顯示}public String getServletInfo() {return "";}//三種情況導致destroy的調用://1.reload 該servlet(webApps)//2.關閉tomcat//3.關機public void destroy() {//銷毀servt執行個體 實際就是釋放記憶體System.out.println("destroy it!");}}
(2)方法二:
//第二個實現servlet程式,繼承GenericServlet 這種方法很簡單package com.tsinghua;import javax.servlet.GenericServlet;import java.io.*;import javax.servlet.*;public class HelloGenericServlet extends GenericServlet{//重寫service方法即可public void service(ServletRequest req,ServletResponse res){//返回hello world!generictry{PrintWriter pw =res.getWriter();pw.println("Hello world! generic!");}catch(Exception ex){ex.printStackTrace();}}}
(3)方法三:
//第三個servlet實現程式,通過繼承HttpServletpackage com.tsinghua;import javax.servlet.http.*;import java.io.*;public class HelloHttp extends HttpServlet{//處理get請求//req:用於獲得用戶端(遊覽器)的資訊//res:用於向用戶端(遊覽器)返回資訊public void doGet(HttpServletRequest req,HttpServletResponse res){//商務邏輯try{PrintWriter pw = res.getWriter();pw.println("hello http!");}catch(Exception ex){ex.printStackTrace();}}//處理post請求//req:用於獲得用戶端(遊覽器)的資訊//res:用於向用戶端(遊覽器)返回資訊public void doPost(HttpServletRequest req,HttpServletResponse res){this.doGet(req,res);}}
在實現上述三種方法的時候 需要配置web.xml檔案,代碼如下:
<?xml version="1.0" encoding="ISO-8859-1"?><web-app 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" version="3.0" metadata-complete="true"> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description> <!--JSP servlet mappings starts--> <servlet> <!--給自己的servlet起個名字 任意的名字--> <servlet-name>Hello</servlet-name> <!--指明servlet的路徑(包名+類名)--> <servlet-class>com.tsinghua.Hello</servlet-class> </servlet> <servlet-mapping> <!--和上邊的servlet的名字是一樣的--> <servlet-name>Hello</servlet-name> <!--這是在遊覽器中輸入的訪問該servlet的url--> <url-pattern>/helloworld</url-pattern> </servlet-mapping> <servlet> <servlet-name>HelloGenericServlet</servlet-name> <servlet-class>com.tsinghua.HelloGenericServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloGenericServlet</servlet-name> <url-pattern>/helloGeneric</url-pattern> </servlet-mapping> <servlet> <servlet-name>HelloHttp</servlet-name> <servlet-class>com.tsinghua.HelloHttp</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloHttp</servlet-name> <url-pattern>/helloHttp</url-pattern> </servlet-mapping><!--JSP servlet mappings end--></web-app>
ok!
Servlet實現的三種方法