編輯:關於Android編程
什麼是聲明式:就是在web.xml中聲明對各種異常的處理方法。
是通過
error-code:http錯誤代碼
exception-type:java異常類的完整名
location:響應http錯誤代碼或者java異常的資源路徑
下面通過例子一一講解:
1:首先我們做個最簡單的先在程序中加一個FileNotFound.html文件,文件內容如下
123 4
8 如有其他問題請聯系管理員 9 10
然後我們在web.xml中加入下面代碼
404 /FileNotFound.html
如果開啟tomcat 在浏覽器輸入http://item.taobao.com/item.htm?id=41222768202
然後會出現下面
2:然後我們發現如果我聲明越來越多的異常時候會出現越來越多的html這樣的靜態代碼,那麼可以能否在後台操作呢,答案是肯定的,現在我們用一個Servlet類來進行響應
首先來看一副關於servlet相關屬性的圖
現在我以其中status_code作為例子先建立一個ErrorHandlerServlet如下
1 public class ErrorHandlerServlet extends HttpServlet{ 2 3 private static final long serialVersionUID = 1L; 4 protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException 5 { 6 7 response.setContentType("text/html;charset=gb2312"); 8 PrintWriter out=response.getWriter(); 9 Integer status_code=(Integer)request.getAttribute("javax.servlet.error.status_code"); 10 out.println("
然後在配置web.xml
12 5ErrorHandlerServlet 3com.lp.servlet.ErrorHandlerServlet 46 9ErrorHandlerServlet 7/errorHandler 810 404 11/errorHandler 12
現在我們再次開啟tomcat 在浏覽器輸入http://item.taobao.com/item.htm?id=41222768202
可以看到如下圖
3:我們發現發現關於exception-type都沒有用上那麼關於怎麼用exception-type呢下面來用實例講解
我們在寫一個關於文件操作的Servlet類FileExceptionServlet
1 public class FileExceptionServlet extends HttpServlet{ 2 /** 3 * 4 */ 5 private static final long serialVersionUID = 1L; 6 public void doGet(HttpServletRequest request,HttpServletResponse response) throws FileNotFoundException 7 { 8 File file=new File("1.txt"); 9 FileInputStream fileInputStream=new F 10 } 11 }
在這裡我們並沒有1.txt文件,注意聲明的FileNotFoundException異常在配置中會用的到
同樣我們在寫一個關於處理Servlet異常的ExceptionHandlerServlet類
1 public class ExceptionHandlerServlet extends HttpServlet{ 2 3 /** 4 * 5 */ 6 private static final long serialVersionUID = 1L; 7 protected void service(HttpServletRequest request,HttpServletResponse response) throws IOException 8 { 9 response.setContentType("text/html;charset=gb2312"); 10 PrintWriter out=response.getWriter(); 11 out.println("
然後再次配置web.xml
12 5ExceptionHandlerServlet 3com.lp.servlet.ExceptionHandlerServlet 46 9ExceptionHandlerServlet 7/exceptionHandler 810 java.io.FileNotFoundException 11/exceptionHandler 12
然後啟動tomcat輸入http://item.taobao.com/item.htm?id=41222768202看到
這個在實際開發中運用的比較多主要采取try catch捕獲異常 然後進行處理。舉一個小例子比喻我們上面說的文件操作,如果發現文件不存在的時候我們可以把這個錯誤記錄在日志便於查閱,ok我看一下
1 public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException 2 { 3 try { 4 File file=new File("1.txt"); 5 @SuppressWarnings("unused") 6 FileInputStream fileInputStream=new FileInputStream(file); 7 } catch (FileNotFoundException e) { 8 getServletContext().log(e.getMessage()); 9 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,"文件未能發現"); 10 } 11 }
從中我們可以看出采用了sendError這個方法,目的就是可以把一些錯誤信息很好的展現出來,日志這裡就是簡單提下,在實際中可能根據不同業務選擇的不一樣。
然後再次配置wen.xml
FileExceptionServlet com.lp.servlet.FileExceptionServlet FileExceptionServlet /fileexception
再次運行http://item.taobao.com/item.htm?id=41222768202
好了,關於Servlet異常就說這麼多了,隨著技術不停的更新,處理異常的方式也越來越多但是這些基礎的還是應該了解和學習下的
在學完了Android的基礎之後,我開始嘗試著寫一些小項目練練手,同時進一步鞏固自己的基礎知識,而我選的的第一個項目就是做一個簡單的人人對戰的五子棋小游戲。首先,我們要新
前言因為最近想和後台進行對接,昨天自己在Google上研究了半天關於Volley的內容,覺得很開心。因為原來覺得關於網絡這塊,一直是個很復雜的東西和流程,沒想到Googl
一、---框架---首先還是來把總體的編碼流程來樹梳理一下,按照這個順序來編碼可以使思路更加清晰。(1)創建兩個View,一個listview一個item_view(2)
1、產生背景: 為了調試方便,常常希望通過知道apk的路徑,直接去啟動它,所以就寫了這個命令 2、使用方法: adb push launch /data/ adb pus