2015-04-07 136 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);