protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.doPost(req, resp);
Teacher t=new Teacher();
String teacherId =req.getParameter("teacherId");
t.setTeacherId(Integer.parseInt(teacherId));
String teacherName =req.getParameter("teacherName");
t.setTeacherName(teacherName);
String teacherSex =req.getParameter("teacherSex");
t.setTeacherSex(teacherSex);
String teacherAge =req.getParameter("teacherAge");
t.setTeacherAge(Integer.parseInt(teacherAge));
String teacherSchool =req.getParameter("teacherSchool");
t.setTeacherSchool(teacherSchool);
String teacherCourse =req.getParameter("teacherCourse");
t.setTeacherCouse(teacherCourse);
String teacherPhone =req.getParameter("teacherPhone");
t.setTeacherPhone(teacherPhone);
String teacherEmail =req.getParameter("teacherEmail");
System.out.println(teacherEmail);
t.setTeacherEmail(teacherEmail);
String price =req.getParameter("price");
t.setPrice(Integer.parseInt(price));
String passWord =req.getParameter("passWord");
t.setPassWord(passWord);
String teacherInfo =req.getParameter("teacherInfo");
t.setTeacherInfo(teacherInfo);
addTeacher addtea = new addTeacher();
boolean f=addtea.addTeacher(t);
System.out.println(f);
if(f){
System.out.println("插入成功!");
HttpSession session=req.getSession(true);
session.setAttribute("teacherName", teacherName);
resp.sendRedirect("AddSuccess.jsp");
return ;
}
else
resp.sendRedirect("login.jsp");
return ;
}
}
2012-5-14 16:54:53 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet addteacher threw exception
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2390)
at org.apache.catalina.connector.Request.getSession(Request.java:2110)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at com.service.AdminaddTeacherServlet.doPost(AdminaddTeacherServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
throws ServletException, IOException {
super.doPost(req, resp);
Teacher t=new Teacher();
String teacherId =req.getParameter("teacherId");
t.setTeacherId(Integer.parseInt(teacherId));
String teacherName =req.getParameter("teacherName");
t.setTeacherName(teacherName);
String teacherSex =req.getParameter("teacherSex");
t.setTeacherSex(teacherSex);
String teacherAge =req.getParameter("teacherAge");
t.setTeacherAge(Integer.parseInt(teacherAge));
String teacherSchool =req.getParameter("teacherSchool");
t.setTeacherSchool(teacherSchool);
String teacherCourse =req.getParameter("teacherCourse");
t.setTeacherCouse(teacherCourse);
String teacherPhone =req.getParameter("teacherPhone");
t.setTeacherPhone(teacherPhone);
String teacherEmail =req.getParameter("teacherEmail");
System.out.println(teacherEmail);
t.setTeacherEmail(teacherEmail);
String price =req.getParameter("price");
t.setPrice(Integer.parseInt(price));
String passWord =req.getParameter("passWord");
t.setPassWord(passWord);
String teacherInfo =req.getParameter("teacherInfo");
t.setTeacherInfo(teacherInfo);
addTeacher addtea = new addTeacher();
boolean f=addtea.addTeacher(t);
System.out.println(f);
if(f){
System.out.println("插入成功!");
HttpSession session=req.getSession(true);
session.setAttribute("teacherName", teacherName);
resp.sendRedirect("AddSuccess.jsp");
return ;
}
else
resp.sendRedirect("login.jsp");
return ;
}
}
2012-5-14 16:54:53 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet addteacher threw exception
java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2390)
at org.apache.catalina.connector.Request.getSession(Request.java:2110)
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:833)
at com.service.AdminaddTeacherServlet.doPost(AdminaddTeacherServlet.java:46)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
HttpSession session=req.getSession(true);一开始就要把session准备好。
出现这个的原因很可能是,服务器已经将数据发送到客户端,但是此时Response 已经输出响应了之后,才创建Session。
你的servlet很奇怪,在doPost中,为什么还super.doPost(req, resp);?把HttpSession session=req.getSession(true);这句话放到最上面,记住,要重启服务器。最好clean一下。
import Bean.util.Teacher;
import java.io.IOException;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class AdminaddTeacherServlet extends HttpServlet { protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
HttpSession session=req.getSession(true);
super.doPost(req, resp);
Teacher t=new Teacher();
String teacherId =req.getParameter("teacherId");
t.setTeacherId(Integer.parseInt(teacherId));
String teacherName =req.getParameter("teacherName");
t.setTeacherName(teacherName);
String teacherSex =req.getParameter("teacherSex");
t.setTeacherSex(teacherSex);
String teacherAge =req.getParameter("teacherAge");
t.setTeacherAge(Integer.parseInt(teacherAge));
String teacherSchool =req.getParameter("teacherSchool");
t.setTeacherSchool(teacherSchool);
String teacherCourse =req.getParameter("teacherCourse");
t.setTeacherCouse(teacherCourse);
String teacherPhone =req.getParameter("teacherPhone");
t.setTeacherPhone(teacherPhone);
String teacherEmail =req.getParameter("teacherEmail");
System.out.println(teacherEmail);
t.setTeacherEmail(teacherEmail);
String price =req.getParameter("price");
t.setPrice(Integer.parseInt(price));
String passWord =req.getParameter("passWord");
t.setPassWord(passWord);
String teacherInfo =req.getParameter("teacherInfo");
t.setTeacherInfo(teacherInfo);
addTeacher addtea = new addTeacher();
boolean f=addtea.addTeacher(t);
System.out.println(f);
if(f){
System.out.println("插入成功!");
session.setAttribute("teacherName", teacherName);
resp.sendRedirect("AddSuccess.jsp");
return ;
}
else
resp.sendRedirect("login.jsp");
return ;
}
}
另外“super.doPost(req, resp);” 这句话应该是不需要的。