J2EE 13規範(3)-Java Servlet,j2ee-java

來源:互聯網
上載者:User

J2EE 13規範(3)-Java Servlet,j2ee-java

   Servlet簡介

   一個servlet就是Java程式設計語言中的一個類,它被用來擴充伺服器的效能,伺服器上駐留著可以通過“要求-回應”編程模型來訪問的應用程式。雖然servlet可以對任何類型的請求產生響應,但通常只用來擴充Web伺服器的應用程式。Java Servlet技術為這些應用程式定義了一個特定於HTTP的 servlet類。
   javax.servlet和javax.servlet.http包為編寫servlet提供了介面和類。所有的servlet都必須實現Servlet介面,該介面定義了生命週期方法。
當實現一個通用的服務時,您可以使用或擴充由Java Servlet API提供的GenericServlet類。HttpServlet類提供了一些方法,諸如doGet和doPost,以用於處理特定於HTTP的服務。

   Servlet工作流程

   

    在Web容器(這裡的容器我們使用的是TomCat伺服器)載入和執行個體化servlet類之後、servlet執行個體傳遞來自用戶端的請求之前,TomCat容器對servlet進行初始化。使用者可以自訂這個初始化過程,以允許servlet讀持久的配置資料、初始化資源,並且忽略Servlet介面的init方法以執行任何其它的一次性的活動。servlet必須使用UnavailableException來完成初始化過程。請看Java代碼:  

import java.text.*;import java.util.*;import java.io.*;import javax.servlet.http.*;import javax.servlet.*;public class StudentServlet extends HttpServlet{public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{doPost(request,response);}public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{doGet(request,response);    String sBeginDate = request.getParameter("beginDate");      String sEndDate = request.getParameter("endDate");                  Date beginDate =  new Date();      Date endDate =  new Date();      try{      beginDate = new SimpleDateFormat("yyyy-MM-dd").parse(sBeginDate);        endDate =  new SimpleDateFormat("yyyy-MM-dd").parse(sEndDate);      }catch(Exception e){      e.printStackTrace();      }                System.out.println("sBeginDate=" + sBeginDate);        System.out.println("sEndDate=" + sEndDate);}}
    執行個體解析:

   HTML代碼:

<html><head><title>學生管理</title></head><body><h1>根據出生日期段查詢</h1><form action="queryStudentServlet">出生日期:<input type="text" name="beginDate">至<input type="text" name="endDate"><input type="submit" value="查詢學生"></form></body></html>
     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">    <servlet><servlet-name>StudentMgrServlet</servlet-name><servlet-class>StudentServlet</servlet-class></servlet><servlet-mapping><servlet-name>StudentMgrServlet</servlet-name><url-pattern>/queryStudentServlet</url-pattern></servlet-mapping></web-app>
    Servlet生命週期

    生命的全過程,載入Servlet並執行個體化,初始化init,處理請求,退出服務。

    

   注意:Servlet只執行個體化一次,init方法也只執行一次,Servlet不是安全執行緒的。

   最後還有一點關於Cookies和Session的說明: Cookies存到自身用戶端中,但是Session存入伺服器。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.