日期:2014-05-18  浏览次数:20845 次

java.lang.NullPointerException 高手帮忙看看是什么问题..在线等.
代码:
public   class   transferOptionServlet   extends   HttpServlet
{
public   void   init(ServletConfig   config)   throws   ServletException   {
      super.init(config);
      context   =   config.getServletContext();
      ...
}

  public   void   doGet(HttpServletRequest   request,   HttpServletResponse   response)   throws   ServletException   {
     
...

context.getRequestDispatcher( "TransferServlet ").forward(request,response);//报错
        }
}

报错信息:(日志文件里面得报错信息)

<[ServletContext(id=26801639,name=/Winds,context-path=/Winds)]   Servlet   failed   with   Exception
java.lang.NullPointerException
at   transferOptionServlet.doGet(transferOptionServlet.java:122)
at   transferOptionServlet.doPost(transferOptionServlet.java:63)


那位高手能解答一下.非常感谢了!!!在线等

------解决方案--------------------
IOException捕获否?包导入否?路径对否?
------解决方案--------------------
这个是取不到TransferServlet的值,也就是说TransferServlet传进去的时候是空的
------解决方案--------------------
如果想用请求转发,是否该这样使用?
request.getRequestDispatcher( "servlet1 ").forward(request,response);
------解决方案--------------------
TransferServlet里面的错误
------解决方案--------------------
你加了DOPOST()方法了吗 DOGET和DOPOST2个要一起出现的 不然你换成Service
------解决方案--------------------
你要把请求转发道servlet,看看你的url映射:
<servlet-mapping>
<servlet-name> TransferServlet </servlet-name>
<url-pattern> /servlet/transferServlet </url-pattern>
</servlet-mapping>

之所以报NullPointerException,那说明你这个dispatch转发器指向的引用是空的,为什么:
context.getRequestDispatcher( "TransferServlet ").forward(request,response);//报错
context.getRequestDispatcher( "path ")的参数格式不对。应该是 "/ "开头。

你要把请求转发给 <servlet-name> TransferServlet </servlet-name>
你只见诶写 context.getRequestDispatcher( "/TransferServlet ").当然也不对,因为它的url映射不是这样。所以报找不到相关资源

正确的写法:
context.getRequestDispatcher( "/servlet/transferServlet ");
------解决方案--------------------
代码:
public class transferOptionServlet extends HttpServlet
{
private String toPage= "index.jsp ";
public void init(ServletConfig config) throws ServletException {
super.init(config);
context = config.getServletContext();
toPage = config.getInitParameter( "toPage ");

}
然后配再配置个init-value参数就可以了

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException {

...

request.getRequestDispatcher(toPage).forward(request,response);//报错
}
}