Servlet API 編程常用的類和接口

Servlet編程需要用到很多類和接口,下面介紹幾個簡單的類和接口:

一、Servlet 接口

  • (1)Servlet 接口:Java Servlet 是運行在 Web 服務器或應用服務器上的程序,它是作爲來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務器上的數據庫或應用程序之間的中間層。
  • (2)servlet中的幾個方法:
    • void destroy() 方法:當servlet 將要卸載時,由servlet 引擎調用。
    • ServletConfig getServletConfig() 方法:返回傳遞到servlet的 init()方法的ServletConfig 對象。
    • String getServletInfo() 方法:返回描述servlet的一個字符串。
    • void init(ServletConfig config) throws ServletException 方法:在servlet 被載入後和實施服務前由servlet 引擎進行一次性調用。
    • service(ServletRequest req, ServletResponse resp) throws ServletException, IOException 方法:處理request 對象中描述的請求,使response 對象返回請求結果。
    • 實現如下:

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class LoginServlet 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 resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
	}

}

二、GenericServlet 類

  • (1)GenericServlet 類:GenericServlet是Servlet接口的實現類,我們可以通過繼承GenericServlet來編寫自己的Servlet。GenericServlet提供除了service()方法外所有接口中方法的缺省實現。

  • (2)實現如下:繼承GenericServlet實現servlet,也就是說,繼承GenericServlet可以實現servlet 的功能。

public class MyGenericServlet extends GenericServlet{
  @Override
  public void service(ServletRequest req, ServletResponse res) throws   ServletException, IOException {
    res.setContentType("text/html;charset=UTF-8");
    res.getWriter().print("你好,"+new Random().nextInt(100));
    res.getWriter().print("<hr/>");
    //直接調用獲取servletconfig就可以了
    res.getWriter().print("此類在web.xml中配置的名稱爲 :"+getServletConfig().getServletName());
  }
}

三、HttpServlet 類

  • (1)HttpServlet 類:是servlet更一般的操作,常用的方法有doGet() 方法,doPost()方法。
  • (2)兩個方法:doGet() 方法, doPost()方法。
    • doGet() 方法:由Servlet 引擎處理一個HTTP GET 請求,輸入參數,HTTP 頭標和輸入流可從 request對象 ,response 對象 和頭標 的輸出流獲取。
    • doPost()方法:由Servlet 引擎處理一個HTTP POST請求,輸入參數,HTTP 頭標和輸入流可從 request對象 ,response 對象 和頭標 的輸出流獲取。
    • 實現如下:
package com.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.dao.AuthorDao;
import com.entity.Author;

/**
 * Servlet implementation class AuthorServlet
 */
@WebServlet("/AuthorServlet")
public class AuthorServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public AuthorServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	@SuppressWarnings("unused")
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	   doPost(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

四、ServletRequest 類

  • (1)ServletReques : 封裝了客戶端請求的細節,它與協議無關,並有一個指定的HTTP 的子接口。主要適用於找到客戶端的主機名和IP地址、檢索請求參數、取得和設置屬性和取得輸入和輸出流的功能。
  • (2)集中常用的方法:
    • String setCharacterEncoding() 方法: 設置字符編碼。
    • String getParameter(String name ) 方法:返回指定輸入參數,如果不存在,返回NULL。
    • Object setAttribute(String name) 方法:返回具有指定名字的請求屬性,如果不存在返回NULL。
    • 實現如下:
	request.setAttribute("pageBean", pb);
    request.setCharacterEncoding("utf-8");

五、ServletResponse 類

  • (1)ServletResponse :將一個servlet生成的結果傳到發送請求的客戶端,它由servlet引擎創建。
  • (2)集中常用的方法:
    • getWriter():返回 PrintWriter 對象。調用該對象的 print() 方法,將把 print() 中的參數直接打印到客戶的瀏覽器上。
    • setContentType(String type):設置響應的內容類型。
    • 具體實現:
ublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
		
		PrintWriter out = res.getWriter();
		out.print("Hello!");
         
	}
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {

		res.setContentType("application/msword"); //返回一個Word文檔類型
		PrintWriter out = res.getWriter();
		out.print("Hello!");
         
	}

六、HttpServletRequest 接口

  • (1)HttpServletRequest :讀取和寫入HTTP頭標,取得和設置cookies,取得路徑信息和標識HTTP會話。
  • (2)幾種常用的方法:
    • getContextPath()方法:返回請求地址的根目錄,以"/“開關,但不是以”/"結尾
    • getServletPath() 方法:返回請求URI上下文的子串。
    • getMethod()方法 :返回HTTP請求方法。

七、HttpServletResponse 接口

  • (1)HttpServletResponse :加入表示狀態碼,狀態信息,和響應頭標的表示方法,它還負責對URL 中寫入----web頁面的HTTP會話ID進行解碼。
  • (2)幾種常用的方法:
    • void addCookie (Cookie cookie) 方法:將一個set-Cookie頭標加入響應。
    • sendRedirect(“useradd.jsp”) 方法: 頁面重定向。
      八、ServletContext 接口
  • (1) ServletContext:是一塊所有客戶都可以訪問的共享的服務器端空間,和Session類似,就是名字和值。
  • (2)幾種常用的方法:
    • String getRealPath();
    • String getInitParameter(String var1);
    • Enumeration getInitParameterNames();
    • Object getAttribute(String var1); 向ServletContext 獲取數據
    • void setAttribute(String var1, Object var2);向ServletContext 添加數據
    • void removeAttribute(String var1); 向ServletContext 刪除數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章