servlet學習筆記(二)

1.在jsp頁面向servlet提交請求時,可以給每一個請求都附帶一個參數method。多個jsp頁面共用一個servlet。如:

//獲取參數
String method = request.getParameter("method");

//分發請求
try{
	if("view".equals(method)){
		this.view(request,response);//顯示結果
	}
	if("save".equals(method)){
		this.save(request,response);//保存
	}
	if("update".equals(method)){
		this.update(request,response);//修改
	}
	if("delete".equals(method)){
		this.delete(request,response);//刪除
	}
}catch(Exception e){
	e.printStackTrace();
}
2.若覺得每次都要設置編碼太麻煩,可以使用過濾器,如EncodingFilter。實現Filter接口,並且Filter接口中定義的三個方法都要在EncodingFilter中實現,其中doFilter()實現主要功能,裏邊加一段代碼:

request.setCharacterEncoding("utf-8");
然後在web.xml中配置即可。
當然,控制訪問頁面的權限也可以使用過濾器。
3.表單默認使用method="get"方式提交,get方式的請求是沒有請求體(body)的,所有參數都附加到url後傳遞給服務器。
表單中enctype,默認情況下這個編碼格式是application/x-www-form-urlencoded,不能用於文件上傳;只有使用了multipart/form-data,才能完整的傳遞文件數據。
即不設置enctype時表單只會把文件名上傳到服務器,而設置後會把本地文件以二進制的形式附加到請求體body中,供服務器接收。

4.java中所有servlet都要實現(implements)javax.servlet.Servlet這個接口的所有方法,共3個。

public interface Servlet{
	void init(ServletConfig config);
	void service(ServletRequest request,ServletResponse response);
	void destroy();
}
doGet()和doPost()是HttpServlet覆蓋service()方法後分支出來的輔助方法,實際上服務器調用的還是service().



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章