Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 非法状态异常错误_Java_Exception_Servlets - Fatal编程技术网

Java 非法状态异常错误

Java 非法状态异常错误,java,exception,servlets,Java,Exception,Servlets,我正在创建一个登录页面,工程师可以通过以“engg”开头的用户名登录。 问题在于登录页面中,当我使用正确的密码提供正确的输入时,它会给出“非法状态异常”。在错误的输入中,它工作正常。就像我在oracle表中提供“engg140”时,它会给出异常。代码为: import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import java.sq

我正在创建一个登录页面,工程师可以通过以“engg”开头的用户名登录。 问题在于登录页面中,当我使用正确的密码提供正确的输入时,它会给出“非法状态异常”。在错误的输入中,它工作正常。就像我在oracle表中提供“engg140”时,它会给出异常。代码为:

     import java.io.IOException;
      import java.io.PrintWriter;
        import java.sql.ResultSet;
      import java.sql.SQLException;

      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;

      import sun.java2d.pipe.GeneralCompositePipe;

       import accessdb.Dao;
         import accessdb.Getset;

    public class AdminLogIn extends HttpServlet {
 private static final long serialVersionUID = 1L;

/**
 * @return 
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    try {
    String username=request.getParameter("username"); 
    String password=request.getParameter("password");
    Getset g=new Getset();
    Dao dao=new Dao();

               if(username.equals("") || password.equals(""))

           {
                response.sendRedirect("login.jsp");

             }
         else{
    String newuname=username.substring(0,4);
//  System.out.println(""+username);
    if(newuname.equals("engg"))
    {
        ResultSet rs=dao.EnggLogInUseridCheck(g);

        System.out.println(""+newuname);

        while(rs.next())
        {
            String uname=rs.getString("uname");
            System.out.println(""+uname);
            if(uname.equals(username))
            {
                g.setuname(username);
                System.out.println(""+username);
                System.out.println(""+uname);
                ResultSet rs1=dao.EnggLogInPasswordCheck(g);
                while(rs1.next())
                {
                    String password1=rs1.getString("password");
                    if(password1.equals(password))
                    {    System.out.println(""+password1);
                         System.out.println(""+password);
                        response.sendRedirect("engghome.jsp");
                        break;

                    }
                    else
                    {
                        response.sendRedirect("login.jsp");
                        return;
                    }
                }

            }

        }
        response.sendRedirect("login.jsp");
    }
    else
    {
        response.sendRedirect("login.jsp");
        return;
    }



    }


    }   catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }
          }
右输入的控制台输出如下所示:

                     03:31:26,265 INFO  [STDOUT] engg
                           03:31:26,265 INFO  [STDOUT] engg172
                          03:31:26,265 INFO  [STDOUT] engg140
                          03:31:26,265 INFO  [STDOUT] engg140
                          03:31:26,265 INFO  [STDOUT] engg140
                         03:31:26,281 INFO  [STDOUT] 365125
                          03:31:26,281 INFO  [STDOUT] 365125
                           03:31:26,281 INFO  [STDOUT] engg141
                           03:31:26,281 ERROR [[AdminLogIn]] Servlet.service() for 
                              servlet                      
                          AdminLogIn threw exception
                           java.lang.IllegalStateException
                           at                                                                                       org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
                         at AdminLogIn.doGet(AdminLogIn.java:80)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
您没有包括堆栈跟踪的“起因”部分,这是最重要的部分(实际上,整个堆栈跟踪都很重要)

sendRedirect()
上的,
IllegalStateException
与HTTP协议有关,并且在已提交对客户端的响应时发生。此时不可能再发送重定向,因为HTTP头已发送(或至少已排队等待发送),并且无法更改。在代码的某个地方,在一个没有显示的方法中,您已经向输出流写入了一些内容,并导致提交响应

这与数据库无关。

您没有包括堆栈跟踪的“原因”部分,这是最重要的部分(实际上,整个堆栈跟踪都很重要)

sendRedirect()
上的,
IllegalStateException
与HTTP协议有关,并且在已提交对客户端的响应时发生。此时不可能再发送重定向,因为HTTP头已发送(或至少已排队等待发送),并且无法更改。在代码的某个地方,在一个没有显示的方法中,您已经向输出流写入了一些内容,并导致提交响应


这与数据库无关。

我认为响应已经提交,不允许您执行重定向

请查看此处以了解更多信息:


    • 我认为响应已经提交,不允许您执行重定向

      请查看此处以了解更多信息:


      哪一行引发异常?另外,你能发布例外文本吗?你可能已经问了(至少)两次同样的问题,并删除了之前的一个。侧边评论-你是关注spring还是struts?另外,你正在研究散列密码吗?根据上面的说明,堆栈跟踪将帮助更多,因为我对代码做了一点修改!Dao和Getset方法做什么?哪一行抛出异常?另外,你能发布例外文本吗?你可能已经问了(至少)两次同样的问题,并删除了之前的一个。侧边评论-你是关注spring还是struts?另外,你正在研究散列密码吗?根据上面的说明,堆栈跟踪将帮助更多,因为我对代码做了一点修改!Dao和Getset方法是做什么的?没有由部分引起的。对不起!!好吧,这不会改变答案。您已提交响应。没有由部分引起的。抱歉!!好吧,这不会改变答案。您已经提交了响应。