public class CheckServlet extends HttpServlet {
@Override
//响应客服端请求
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
//获取用户名
String username = request.getParameter("username");
String message = null;
if(username==null)
message = "please input username";
else {
message = "hello "+username;
}
//添加message属性
request.setAttribute("message", message);
//把请求转发给outputServlet
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getNamedDispatcher("/output");
PrintWriter out = response.getWriter();
out.print("output from checkServlet before forwarding request");
System.out.println("output from checkServlet before forwarding request");
dispatcher.forward(request,response);
out.print("output from checkServlet after forwarding request");
System.out.println("output from checkServlet after forwarding request");
}
}
这段代码是将相关的信息转发到OutputServlet中去:OutputServlet中的代码如下
public class OutServlet extends HttpServlet { @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //读取checkServlet存放在请求范围内的消息 String message = (String) request.getAttribute("message"); PrintWriter out = response.getWriter(); out.print(message); out.close(); }}所有的配置都是没有问题的。但是对于dispatcher.forward(request,response);这个代码就会抛出NullPointerException异常
为什么呢???
@Override
//响应客服端请求
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
//获取用户名
String username = request.getParameter("username");
String message = null;
if(username==null)
message = "please input username";
else {
message = "hello "+username;
}
//添加message属性
request.setAttribute("message", message);
//把请求转发给outputServlet
ServletContext context = getServletContext();
RequestDispatcher dispatcher = context.getNamedDispatcher("/output");
PrintWriter out = response.getWriter();
out.print("output from checkServlet before forwarding request");
System.out.println("output from checkServlet before forwarding request");
dispatcher.forward(request,response);
out.print("output from checkServlet after forwarding request");
System.out.println("output from checkServlet after forwarding request");
}
}
这段代码是将相关的信息转发到OutputServlet中去:OutputServlet中的代码如下
public class OutServlet extends HttpServlet { @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //读取checkServlet存放在请求范围内的消息 String message = (String) request.getAttribute("message"); PrintWriter out = response.getWriter(); out.print(message); out.close(); }}所有的配置都是没有问题的。但是对于dispatcher.forward(request,response);这个代码就会抛出NullPointerException异常
为什么呢???
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货