jsp - Why I am getting java.lang.IllegalStateException when the validate servlet is called? -


i have login web application. whenever login, request must validated validate servlet , must forwarded admin.jsp fine except got exception java.lang.illegalstateexception.

code:

/*  * developer : suraj gautam  * campus: shankerdev  * faculty: bim  * company : unknown company  */ package com.suraj.technepbankapplication;  import java.io.ioexception; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; import javax.servlet.servletexception; import javax.servlet.annotation.webservlet; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse;  /**  *  * @author suraj gautam  */ @webservlet(name = "validate", urlpatterns = {"/validate"}) public class validate extends httpservlet {  databean bean = new databean(); int count = 0;  @override protected void doget(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {  }     @override protected void dopost(httpservletrequest req, httpservletresponse resp) throws servletexception, ioexception {     //the form inputted sent databean class      settingvalue(req.getparameter("userid"), req.getparameter("password"));     try {         if (!isvalid(req, resp)) {             req.getrequestdispatcher("/index.jsp").forward(req, resp);         } else if (bean.getuserid().equals("admin")) {            req.getrequestdispatcher("/admin.jsp").forward(req, resp);         } else {              req.getrequestdispatcher("/afterlogin.jsp").forward(req, resp);         }     } catch (sqlexception | classnotfoundexception ex) {         system.out.println(ex.getmessage());     }  }  public boolean isvalid(httpservletrequest req, httpservletresponse resp) throws sqlexception, servletexception, ioexception, classnotfoundexception {     string userid = req.getparameter("userid");     string password = req.getparameter("password");     if (userid.length() <4 || password.length() < 4) {         return false;     } else {         return loginvalidate(req, resp);     } }  //setting databean class value public void settingvalue(string userid, string password) {      bean.setuserid(userid);     bean.setpassword(password); }  public boolean loginvalidate(httpservletrequest req, httpservletresponse resp) throws sqlexception, servletexception, ioexception, classnotfoundexception {     string url = "jdbc:mysql://localhost/technep";     string user = "root";     string password = "";     string query = "select id, password technep_login";      class.forname("com.mysql.jdbc.driver");     connection conn = drivermanager.getconnection(url, user, password);      preparedstatement preparedstatement = conn.preparestatement(query);      resultset resultset = preparedstatement.executequery();     while (resultset.next()) {         //working till here         if (resultset.getstring("id").trim().equals(bean.getuserid()) && resultset.getstring("password").trim()                 .equals(bean.getpassword())) {             count = 1;             break;          }      }     if (count == 1) {         return true;     } else {         return false;     }  } } 

the output:

warning:   standardwrappervalve[jsp]: servlet.service() servlet jsp    threw exception java.lang.illegalstateexception: getoutputstream() has been called response @ org.apache.catalina.connector.response.getwriter(response.java:777) @ org.apache.catalina.connector.responsefacade.getwriter(responsefacade.java:224) @ org.apache.jasper.runtime.jspwriterimpl.initout(jspwriterimpl.java:195) @ org.apache.jasper.runtime.jspwriterimpl.flushbuffer(jspwriterimpl.java:188) @ org.apache.jasper.runtime.pagecontextimpl.release(pagecontextimpl.java:240) @ org.apache.jasper.runtime.jspfactoryimpl.internalreleasepagecontext(jspfactoryimpl.java:185) @ org.apache.jasper.runtime.jspfactoryimpl.releasepagecontext(jspfactoryimpl.java:137) @ org.apache.jsp.dbimage_jsp._jspservice(dbimage_jsp.java:93) @ org.apache.jasper.runtime.httpjspbase.service(httpjspbase.java:111) @ javax.servlet.http.httpservlet.service(httpservlet.java:790) @ org.apache.jasper.servlet.jspservletwrapper.service(jspservletwrapper.java:411) @ org.apache.jasper.servlet.jspservlet.servicejspfile(jspservlet.java:473) @ org.apache.jasper.servlet.jspservlet.service(jspservlet.java:377) @ javax.servlet.http.httpservlet.service(httpservlet.java:790) @ org.apache.catalina.core.standardwrapper.service(standardwrapper.java:1682) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:318) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:160) @ org.apache.catalina.core.standardpipeline.doinvoke(standardpipeline.java:734) @ org.apache.catalina.core.standardpipeline.invoke(standardpipeline.java:673) @ com.sun.enterprise.web.webpipeline.invoke(webpipeline.java:99) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:174) @ org.apache.catalina.connector.coyoteadapter.doservice(coyoteadapter.java:416) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:283) @ com.sun.enterprise.v3.services.impl.containermapper$httphandlercallable.call(containermapper.java:459) @ com.sun.enterprise.v3.services.impl.containermapper.service(containermapper.java:167) @ org.glassfish.grizzly.http.server.httphandler.runservice(httphandler.java:206) @ org.glassfish.grizzly.http.server.httphandler.dohandle(httphandler.java:180) @ org.glassfish.grizzly.http.server.httpserverfilter.handleread(httpserverfilter.java:235) @ org.glassfish.grizzly.filterchain.executorresolver$9.execute(executorresolver.java:119) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executefilter(defaultfilterchain.java:283) @ org.glassfish.grizzly.filterchain.defaultfilterchain.executechainpart(defaultfilterchain.java:200) @ org.glassfish.grizzly.filterchain.defaultfilterchain.execute(defaultfilterchain.java:132) @ org.glassfish.grizzly.filterchain.defaultfilterchain.process(defaultfilterchain.java:111) @ org.glassfish.grizzly.processorexecutor.execute(processorexecutor.java:77) @ org.glassfish.grizzly.nio.transport.tcpniotransport.fireioevent(tcpniotransport.java:536) @ org.glassfish.grizzly.strategies.abstractiostrategy.fireioevent(abstractiostrategy.java:112) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.run0(workerthreadiostrategy.java:117) @ org.glassfish.grizzly.strategies.workerthreadiostrategy.access$100(workerthreadiostrategy.java:56) @ org.glassfish.grizzly.strategies.workerthreadiostrategy$workerthreadrunnable.run(workerthreadiostrategy.java:137) @ org.glassfish.grizzly.threadpool.abstractthreadpool$worker.dowork(abstractthreadpool.java:591) @       org.glassfish.grizzly.threadpool.abstractthreadpool$worker.run(abstractthreadpoo    l.java:571) @ java.lang.thread.run(thread.java:745) 

sorry, question unanswerable based on stacktrace give: servlet not appear in stacktrace, either servlet can't problem or you're omitting "root cause" stacktrace.

further, there a lot more problems code , should go through basic tutorial servlet development. these can't corrected in single answer on stackoverflow

  • the way use bean member of servlet result in disaster (race condition). must not have member variables (state) in servlet.
  • you're taking care of authentication - shouldn't this, it's solved problem
  • on top, you're storing clear text passwords in database , you're enumerating whole user database instead of fetching single value (imagine have many users...)
  • from code i'm assuming 1 can skip validation going /afterlogin.jsp or /admin.jsp manually.
  • the parameters methods arguable , create hard maintain implementation.

this incomplete list.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -