Closed. This question needs details or clarity。它当前不接受答案。












想改善这个问题吗?添加详细信息并通过editing this post阐明问题。

4年前关闭。





我从method1servlet1呼叫service()servlet2。我想从sendError(5xx)抛出servlet1。但是它需要我未传递的servlet2响应对象。还有其他抛出HTTP状态代码的方法吗?

 public class servlet2 extends servlet1{

        public void service(HttpServletRequest request, HttpServletResponse response){

        }
        }

        public abstract class servlet1 extends HTTPServlet{

         public void init(ServletConfig config) throws ServletException {
        }
public boolean method1()
{
return true;
}
        }

最佳答案

如果从servlet2调用servlet1的自定义method1,则servlet1不会充当真正的Servlet,而是充当普通对象。在这种情况下,servlet1没有任何HttpServletResponse可以发送错误。

将控件从一个servlet分发到另一个servlet的通常方法是使用RequestDispatcher。例如,从servlet2执行以下语句:

getServletContext().getNamedDispatcher("servlet1").forward(request, response);


在servlet1中,您以service方法接收请求,并以HttpServletResponse作为参数接收,您可以使用它来发送错误。

09-15 17:11