Servlet 基礎重點和常見異常
Servlet 基礎重點知識點
01
第一個Servlet
記住操作步驟和項目結構
02
Servlet 的生命周期
首次訪問創建對象並調用init方法再調用service方法,
非首次訪問直接使用首次創建的對象去調用service方法,
生命周期方法: init,service,destory(正常關閉才會調用).
03
Servlet 請求流程
從瀏覽器開始到自定義的Servlet整個流程需要掌握,為後面前段框架做鋪墊.
瀏覽器->Tomcat->server.xml->項目->web.xml->Servlet類.
04
繼承體系
(Servlet-ServletConfig)->GenericServlet
->HttpServlet->普通Servlet
掌握創建一個類去繼承HttpServlet並覆蓋service方法
05
HttpServletRequest介面
封裝了獲取請求參數的方法.
掌握獲取參數的方法,單個值和多個值,其他方法保留印象.
06
HttpServletResponse 介面
封裝了響應相關的方法.
掌握使用位元組流或字元流像客戶端發送數據即可
重點記住響應需要先設置MIME類型和編碼
07
請求中文亂碼問題
需要獲取參數前都需要設置編碼使用req.setCharacterEncoding("UTF-8")只支持post提交
08
Servlet配置細節
1.servlet-name 不能配置dufaule名稱,
覆蓋了DefaultServlet(處理靜態資源)的名稱.
2.可配置多個或
,內容需唯一且以/打頭.
3.映射路徑可使用通配符*表示任意字元,
/* : 以/打頭的任意資源名稱可訪問
/hello/*):以/hello/打頭的任意名稱
*.do *.ITRoad520:以.do等為後綴的資源名稱.
4.歡迎界面配置,查看Tomcat/conf/web.xml 最後代碼配置.
5.伺服器啟動初始化Servlet配置:servlet配置加入
1數字越低級別越高
09
Servlet 安全問題
因為 Servlet 是單例的,所有用戶訪問的同一個Servlet對象,
所有會改變的變數不能定義為成員變數,需要定義為局部變數
常見異常
404 資源沒找到
訪問靜態資源:
問題1: 資源名稱和項目中的文件名稱不統一
問題2: 靜態資源放到了WEB-INF 下
訪問非靜態資源:
問題 : web.xml 放在 WEB-INF 外面
其他:
eclipse 中啟動的 Tomcat 和在外部修改的server.xml不是同一個Tomcat或者修改的是server.xml 的備份
總結:項目結構不熟悉
500 類沒找到
java.lang.ClassNotFoundException
問題 1: 沒有在 WEB-INF 下創建 classes 來存儲位元組碼.
問題 2: 創建了classes 沒有修改 classpath 路徑.
問題 3: 創建了classes 也修改了classpath 路徑到classes
原因: 類沒有編譯到,查看自動編譯(Project->Build Automatically )是否打鉤,沒有則打鉤,如果打鉤了clean 下項目.
問題 4: web.xml 中中類的全限定名配置錯誤.
以上只是收集了部分常見異常,如果有同學遇到驚天異常或者比較有意義的異常,歡迎分享.
※帶各位見見我的一抹紅!
※男鞋,普拉達prada,阿瑪尼Armani,GUCCI鞋子哪個好?
TAG:大千世界 |