这是我的代码:
<%@ page contentType="text/html;charset=gb2312" language="java"%>
<%@ page import="java.sql.*,javax.sql.*,javax.naming.*"%>
<%
request.setCharacterEncoding("gb2312");
String user=request.getParameter("user");
String pwd=request.getParameter("pwd");
String person=request.getParameter("person");

if("jimmy".equals(user)&&"123".equals(pwd)&&"admin".equals(person))
{
RequestDispatcher rd=application.getRequestDispatcher("/htm/admin.html");
rd.forward(request,response);

}
else
{
response.sendRedirect("../index.html");
return;
}
%>
主要实现一个登陆检查功能,若提交的信息正确则跳转到/htm/admin.html页面,否则重定向到../index.html页面
但是出现了getOutputStream() has already been called for this response,为什么?

解决方案 »

  1.   

    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    org.apache.catalina.connector.Response.getWriter(Response.java:596)
    org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:186)
    org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:124)
    org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:117)
    org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:191)
    org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:115)
    org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:75)
    org.apache.jsp.jsp.denglu_jsp._jspService(org.apache.jsp.jsp.denglu_jsp:73)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      

  2.   

    在最后加
       out.clear();
       out = pageContext.pushBody();
    试试,
    参考地址;
    http://blog.chinaunix.net/u/22371/showart_500839.html
      

  3.   

    一个页面里有两个sendredirect会报错,你把if里面最后也加上return试下