解決Javaweb 提交表單到servlet時出現空白頁面,但網站不報錯問題
問題描述
提交表單到servlet時出現空白頁面,但又網站不報錯
截圖如下
遇到這個問題查找瞭很多,仍沒有解決,剛開始接觸IDEA,以為是路徑配置問題,去看@WebServlet和XML,搗瞭半天,發現沒問題,就隻有這一個servlet訪問不瞭,其他都能行,最後發現是自己doGet方法沒加 this.doPost(request, response);
(之前使用eclipse是這段代碼自動生成的,用idea沒有自動生成就沒太註意)
如下圖:
package cn.itcast.web.servlet; import cn.itcast.domain.User; import cn.itcast.service.UserService; import cn.itcast.service.impl.UserServiceImpl; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; @WebServlet("/findUserServlet") public class FindUserServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1.獲取id String id = request.getParameter("id"); // 2.通過id查找User UserService service = new UserServiceImpl(); User user = service.findUserById(id); // 3.存儲 request.setAttribute("user",user); // 4.轉發 request.getRequestDispatcher("/update.jsp").forward(request, response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } }
解決方法
doGet方法裡加上
this.doPost(request, response);
立馬見效
下次再遇到此類問題,自己要多去debug下,別人出現的問題可能一樣,但是造成問題的原因很可能不相同。
如果有其他原因的可以討論下。
javaweb後端調用servlet出現空白
例子:
Login.html跳轉LoginServlet
Tomcat生成該項目的名稱是web_war ,則頁面跳轉的時候 都要加上/web_war作為路徑之一
例如
login.html跳轉時 action=”/web_war/LoginServlet”
所以最終url訪問路徑一定是/項目名_war/訪問的資源
好瞭,以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- Java中Servlet的生命周期詳解
- Java中Servlet的生命周期
- JavaWeb中請求轉發和請求重定向的區別以及使用
- JavaWeb Servlet實現網頁登錄功能
- 實現Servlet程序的三種方法(小結)