2015-04-07 118 views
1

我有一個源代碼Servlet。異常在servlet jsp和servlet中的java.lang.NullPointerException

SinhVien sv= new SinhVien(); 
    String url="../lienhepage.jsp"; 
    HttpSession session = request.getSession(true); 
    //RequestDispatcher rD; 
    //HttpSession session; 
    if(request.getParameter("searchword")!= ""){ 
     String result= ""; 
     result= ZendCodeHTML.ZendCodeTag(sv.getDataTag(request.getParameter("searchword"))); 
     response.setContentType("text/plain"); 
     response.setCharacterEncoding("UTF-8"); 
     response.getWriter().write(result); 
    } 
    if(request.getParameter("NienKhoa") != ""){ 
     List<String> result= getData(request.getParameter("NienKhoa")); 
     session.setAttribute("tieude", result.get(0)); 
     session.setAttribute("danhsachsinhvien", result.get(1)); 
     session.setAttribute("cacmongiangday", result.get(2)); 
     session.setAttribute("noidunghuongdanmonhoc", result.get(3));  
    } 
    RequestDispatcher rD= request.getRequestDispatcher(url); 
    rD.forward(request, response); 

當我點擊頁面中的鏈接的jsp有URL =」 ../ lienheservlet?NienKhoa = 2010- 2015" 年,那麼代碼的servlet運行正常。但當代碼運行功能rD.forward(request, response);然後有這樣的例外:

java.lang.NullPointerException 
javacore.controller.lienheservlet.doGet(lienheservlet.java:115) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:618) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) 

我不知道爲什麼?請幫幫我!

+0

什麼的javadoc的'getRequestDispatcher'說創建一個包裝? –

+0

@SotiriosDelimanolis當我調試運行函數RequestDispatcher rD = request.getRequestDispatcher(url);然後完成rD = null;我不知道爲什麼? –

+0

getRequestDispatcher的javadoc說什麼? –

回答

0

我認爲這是因爲該網址是不正確的,

儘量不要使用相對路徑,但絕對路徑。 (例如「/lienhepage.jsp」)

0

檢查url是否正確(看起來它是一個相對路徑,因此再次檢查),這意味着使用該相對路徑可以解析jsp文件。

getRequestDispatcher將返回null,如果它不能爲URL

這是可能的原因,去null

RequestDispatcher rD= request.getRequestDispatcher(url);