Servlet---詳情解析(二)---繼承GenericServlet和HttpServlet/適配器

這一篇文章要講的知識點都帶代碼的註釋中了,先把代碼貼上來吧:

1、繼承GenericServlet的Servlet

package cn.hncu.servlets.day2;


import java.io.IOException;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//以繼承 GenericServlet 的方式 寫 servlet
public class SecondServlet extends GenericServlet {

	//適配器模式的一個知識點:適配器中的init(ServletConfig config)中幫我們把它當中的config對象賦值且調用 一個空參的init()。
	//我們以後應該覆蓋空參的init()。因爲如果覆蓋了這個帶參數的,那麼就無法實現爲它的config對象賦值,
	//由此導致其中使用config對象的方法會出錯。
	//其實這種方法(調用 一個空參的init()且 該參數方法中什麼也沒做 )也程序員之間的一種交流方式,
	//告訴我們要覆蓋空參的方法,這樣它在幫我們做完事情會調用我們的覆蓋方法
//  @Override
//	public void init(ServletConfig config) throws ServletException {
//		//String charset = config.getInitParameter("charset");
//		//System.out.println(charset);
//		System.out.println("init...."+this);
//	}
	
	@Override
	public void init() throws ServletException {
		System.out.println("init......"+this);
	}

	@Override
	public void service(ServletRequest req, ServletResponse res)
			throws ServletException, IOException {
		String charset=this.getInitParameter("charset");
		System.out.println(charset);
		req.setCharacterEncoding(charset);
		String name=req.getParameter("name");
		String pwd=req.getParameter("pwd");
		System.out.println("name="+name+",pwd="+pwd);
	}
	
}

2、繼承HttpServlet的Servlet

(這種方式以後用的最多)

package cn.hncu.servlets.day2;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//注意,採用繼承HttpServlet的方式寫servlet,doGet和doPost這兩個方法通過都要覆蓋,
//如果doGet方法沒覆蓋,有get請求時就會出現405錯誤,不覆蓋doPost方法同理。
//若以後要使用到doPut方法時,doPut同樣也要覆蓋
public class ThirdServlet extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("doGet......");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("doPost......");
	}
	
}



發佈了221 篇原創文章 · 獲贊 34 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章