1. 程式人生 > >Java Web面試之三種實現Servlet方式

Java Web面試之三種實現Servlet方式

/***
* servlet是執行在伺服器端的一個Java程式:
* 1.對請求做出相應的迴應
* 2.動態的生成html頁面
*
* servlet的多種實現方式:
* 1.實現Javax.servlet介面(實現5個抽象方法–一般只需要重寫service)
* 2.繼承抽象類GenericServlet
* 3.繼承HttpServlet
*
*/

package cn.njit.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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



public class MyFirstServlet implements Servlet{
	/***
	 * servlet是執行在伺服器端的一個Java程式:
	 * 		1.對請求做出相應的迴應
	 * 		2.動態的生成html頁面
	 * 
	 * servlet的多種實現方式:
	 * 		1.實現Javax.servlet介面(實現5個抽象方法--一般只需要重寫service)
	 * 		2.繼承抽象類GenericServlet
	 * 		3.繼承HttpServlet
	 * 		
	 */
	@Override
	public void destroy() {
		// 使用者退出時,銷燬servlet例項
		System.out.println("=======銷燬======");
		
	}
	
	/**
	 * 獲取配置資訊
	 */
	@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 arg0) throws ServletException {
		//使用者傳送請求時,會建立一個servlet例項
		System.out.println("-----------------初始化---------------");
		
	}
	
	
	/**
	 *  獲取請求並做出反應的方法
	 */
	@Override
	public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
	
		//模擬servlet的響應過程
		//獲取輸出流
		//設定頁面編碼格式
		resp.setContentType("text/html; charset=utf-8");
		
		PrintWriter pw = resp.getWriter();
		//將資訊輸出到頁面
		pw.println("Hello 中國!");
		System.out.println("-------------------處理請求-----------------");
			
	}
}

在這裡插入圖片描述
2.

package cn.njit.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;

/***
 * 通過繼承抽象類GenericServlet
 * 
 * @author Administrator
 *
 */

@WebServlet("/Second")
public class MySecondServlet extends GenericServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
		// 模擬servlet的響應過程
		// 獲取輸出流
		// 設定頁面編碼格式
		resp.setContentType("text/html; charset=utf-8");

		PrintWriter pw = resp.getWriter();
		// 將資訊輸出到頁面
		pw.println("Hello 世界!");

	}

}

在這裡插入圖片描述

package cn.njit.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

/***
 * 常見的實現servlet的方式:
 * 		繼承HttpServlet 
 * 		需要重寫doGet和doPost

 * @author Administrator
 *
 */

@WebServlet("/Third")
public class MyThirdServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		// 模擬servlet的響應過程
		// 獲取輸出流
		// 設定頁面編碼格式
		resp.setContentType("text/html; charset=utf-8");

		PrintWriter pw = resp.getWriter();
		// 將資訊輸出到頁面
		pw.println("Hello 螺紋!");

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(req, resp);
	}

}

在這裡插入圖片描述