在創建一個繼承了HttpServlet類並重寫了該類的service()、doPost()和doGet()方法時,java會如何執行?其實如果該三個方法都在存在的狀況下,java只會執行service()方法,而其餘的兩種方法不會被執行。如果沒有service() 方法,則是根據jsp傳入方式選擇對應的方法。好比說,如果jsp是以Post方式傳入數據,則是調用doPost()方法處理數據。可是通常上在創建一個繼承HttpServlet類時都會重寫doPost()和doGet()方法,並且會在其中一個方法中處理數據,另外一個方法則是直接調用該方法,好比如下例子:html
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 請求編碼方式(設置服務器端編碼方式) request.setCharacterEncoding("utf-8"); // 響應編碼方式(設置瀏覽器端發送編碼方式) response.setContentType("text/html; charset=utf-8"); String name = request.getParameter("name"); String psw = request.getParameter("psw"); if ("admin".equals(name) && "admin".equals(psw)) { response.getWriter().append("歡迎" + name + "登陸本頁面"); } else { PrintWriter out = response.getWriter(); out.print("<script>location.href='faild.jsp'</script>"); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }
以上僅是我的看法,若有失誤,歡迎指出 !^^!
java