實(shí)現(xiàn)servlet方法:
extends HttpServlet
implements javax.servlet.Servlet
extends GenericServlet
三種方式的區(qū)別(應(yīng)用場景)
extends HttpServlet 完成了對http協(xié)議的解析和封裝
什么時候使用哪種方式
implements javax.servlet.Servlet 一般不會
extends HttpServlet 基于Http協(xié)議,一般都用
extends GenericServlet 一般都不用年枕,當(dāng)遇到非http協(xié)議的時候可以用
Servlet的定義和作用
java代碼
運(yùn)行在Web Server
接收請求婚被,返回響應(yīng)
Web組件
Servlet的運(yùn)行環(huán)境
Web容器(Web服務(wù)器两嘴,如Tomcat)
Servlet相關(guān)的接口、類和生命周期
super關(guān)鍵字
1恤浪、主要存在于子類方法中嵌牺,用于指向子類對象中父類對象。
2蠢古、訪問父類屬性
3、訪問父類函數(shù)
4别凹、訪問父類的構(gòu)造函數(shù)
HTTP method GET is not supported by this URL
原因:
1草讶、繼承自HttpServlet的Servlet沒有重寫對于請求的響應(yīng)的處理方法:doGet或doPost方法;默認(rèn)調(diào)用父類的doGet或doPost等方法炉菲;
2堕战、父類HttpServlet的doGet或doPost等方法的默認(rèn)實(shí)現(xiàn)是返回狀態(tài)代碼為405的HTTP錯誤表示對于指定資源的請求方法不被允許坤溃。
解決方法
1、子類重寫doGet或doPost等方法践啄;
2浇雹、在你擴(kuò)展的Servlet中重寫doGet或doPost等方法來處理請求和響應(yīng)時,不要調(diào)用父類HttpServlet的DdoGet或doPost等方法屿讽,去掉super.XX即
if(paramValue !=null)
{
byte[] bytes = paramValue.getBytes("iso-8859-1");
paramValue = new String(bytes,"utf-8");
}//轉(zhuǎn)碼
這種方法即支持post也支持,或者在前面使用req.setCharacterEncoding("uft-8");
當(dāng)一個名稱對應(yīng)幾個值時可以使用getParameterValues方法
String values[] = req.getParameterValues("like");//checkBox可以使用這
for(String s:values)
{
System.out.println(s+",");
}
res.setContentType("text/html;charset=UTF-8");//只能寫在PrintWriter前,因?yàn)轫憫?yīng)頭信息是在內(nèi)容前面
PrintWriter out = res.getWriter();
out.println("登陸成功");