Servlet學習二

來源:互聯網
上載者:User

2、通過繼承GenericServlet開發Servlet
說明:通過繼承GenericServlet開發Servlet,只需要重寫service方法,相對實現Servlet介面開發servlet需要重寫5個方法來說比較簡單。

HelloGeneric 繼承自GenericServlet,要開發這樣的servlet需要重寫service方法,位於classes檔案夾下

package test;
import javax.servlet.GenericServlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import java.io.PrintWriter;
import java.io.IOException;
public class HelloGeneric extends GenericServlet{
 //重寫service方法
 public void service(ServletRequest req,ServletResponse res){
  try{
   PrintWriter pw = res.getWriter();
   pw.println("hello,world!generic");
  }
  catch (IOException e){
   e.printStackTrace();
  }
 }
}

編譯通過後產生test檔案夾裡面含有HelloGeneric.class檔案

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"> 

  <servlet>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellogeneric</servlet-name>
  <!--指明Servlet的路徑,(包名+類名)-->
    <servlet-class>test.HelloGeneric</servlet-class>
  </servlet>

  <!-- Define the Manager Servlet Mapping -->
  <servlet-mapping>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellogeneric</servlet-name>
  <!--在瀏覽器中輸入訪問Servlet的url,此處的名字是任意的-->
      <url-pattern>/hellogeneric</url-pattern>
  </servlet-mapping>
</web-app>

啟動tomcat伺服器,在瀏覽器地址欄中輸入http://localhost:8989/myWebSite/hellogeneric

在瀏覽器中就會出現hello,world!generic

3.通過繼承HttpServlet去開發servlet
需要重寫doGet(),doPost()方法這是目前開發servlet用的最多的一種
表單提交資料有兩種方式:get和post方式
兩種資料提交方式的區別:
①、從安全性看get<post,get提交的資料會在瀏覽器的地址欄裡顯示
②、get提交的資料從提交的內容來看,get提交的資料不能大於2k,post不受限制
     但實際編程中建議不要大於64k
③、從響應速度來看:get>post,get要求伺服器立即處理請求,而post請求可能形成
     一個隊列請求

下面是一個例子web.xml代碼如下,

需要說明的是多個不同的servlet在web.xml檔案中做映射配置時servlet-name應該有所不同,以示區別否則會出現無法訪問的錯誤

<?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">

  <servlet>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellogeneric</servlet-name>
  <!--指明Servlet的路徑,(包名+類名)-->
    <servlet-class>test.HelloGeneric</servlet-class>
  </servlet>

  <!-- Define the Manager Servlet Mapping -->
  <servlet-mapping>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellogeneric</servlet-name>
  <!--在瀏覽器中輸入訪問Servlet的url,此處的名字是任意的-->
      <url-pattern>/hellogeneric</url-pattern>
  </servlet-mapping>

 

<servlet>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellohttp</servlet-name>
  <!--指明Servlet的路徑,(包名+類名)-->
    <servlet-class>test.HelloHttp</servlet-class>
  </servlet>

  <!-- Define the Manager Servlet Mapping -->
  <servlet-mapping>
  <!--給你的Servlet取名字,此處的名字是任意的-->
    <servlet-name>hellohttp</servlet-name>
  <!--在瀏覽器中輸入訪問Servlet的url,此處的名字是任意的-->
      <url-pattern>/hellohttp</url-pattern>
  </servlet-mapping>
</web-app>

HelloHttp.java代碼如下

package test;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.io.IOException;
public class HelloHttp extends HttpServlet{
 //處理get請求
 //req-->代表用戶端請求資訊
 //res-->代表格服務器端向用戶端返回的資訊
 public void doGet(HttpServletRequest req,HttpServletResponse res){
  //商務邏輯
  try{
   PrintWriter pw = res.getWriter();
   pw.println("Hello,HttpServlet");
  }catch (IOException e){
   e.printStackTrace();
  }
 }
 //處理post請求
 //req-->代表用戶端請求資訊
 //res-->代表格服務器端向用戶端返回的資訊
 public void doPost(HttpServletRequest req,HttpServletResponse res){
  doGet(req,res);
 }
}

編譯後,啟動tomca伺服器在地址欄中輸入http://localhost:8080/myWebSite/hellohttp

會顯示Hello,HttpServlet

</web-app>

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.