servlet出现这样的例外是怎么回事?应该如何解决?
500 Servlet Exception
java.lang.IllegalStateException: Can't sendRedirect() after data has committed
to the client.
at com.caucho.server.http.Response.sendRedirect(Response.java:607)
at JavaShareServlet.doGet(JavaShareServlet.java:167)
at JavaShareServlet.doPost(JavaShareServlet.java:211)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:165)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
at com.caucho.server.http.Invocation.service(Invocation.java:312)
at com.caucho.server.http.CacheInvocation.service(CacheInvocation.java:135)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:221)
at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:163)
at com.caucho.server.TcpConnection.run(TcpConnection.java:137)
at java.lang.Thread.run(Thread.java:536)
--------------------------------------------------------------------------------
对应代码是
if(IsEqual.equals(operateFlag,"saveAddPackage"))
{
checkIsLogin(request,response,loginFlag);
String s = saveAddPackage(request,session);
session.setAttribute("addPackageResult",s);
response.sendRedirect(getPath(request) + "?operateFlag=addPackage");//167 line
}
public void checkIsLogin(HttpServletRequest request,
HttpServletResponse response,String sessionMessage)
throws ServletException,IOException
{
if(!IsEqual.equals(sessionMessage,successMessage))
{
response.sendRedirect(getPath(request) + "?operateFlag=Login");
}
}