异常:java.lang.IllegalStateException怎么解决?
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 07:43:32
异常:java.lang.IllegalStateException怎么解决?
java.lang.IllegalStateException
at servlet.zhuce.doGet(zhuce.java:48)
at servlet.zhuce.doPost(zhuce.java:77)
提示这两行有问题
以下是servlet代码:
public class zhuce extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
String yzm = request.getParameter("yzm");
/*判断验证码是否正确*/
if (session.getAttribute("valicode").toString().equals(yzm)) {
Ben b = new Ben();
b.setUname(new String(request.getParameter("username").getBytes(
"iso8859-1"),"gbk"));
b.setUpassword(request.getParameter("password"));
b.setAnquanma(request.getParameter("aqpassword"));
b.setTouxiang(request.getParameter("touxiang"));
/*判断用户名是否已经注册 panduan()返回boolean true:可用 false:不可用*/
if (b.panduan()) {
b.Dbcinsert();/*写进数据库*/
out.println("");
out.println("zhuce");
out.println("");
out.println("");
out.println("");
out.print("");
out.print("注册成功!alert(\"用户:" +
new String(request.getParameter("username").getBytes(
"iso8859-1"),"gbk") +
"注册成功!\");window.location.href=\"main.jsp\"");
out.close();
/*把注册的用户名放进session*/
session.setAttribute("yonghuming",
b.getUname());
/*跳转到主页面*/
response.sendRedirect("main.jsp");
java.lang.IllegalStateException
at servlet.zhuce.doGet(zhuce.java:48)
at servlet.zhuce.doPost(zhuce.java:77)
提示这两行有问题
以下是servlet代码:
public class zhuce extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request,HttpServletResponse response) throws
ServletException,IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
String yzm = request.getParameter("yzm");
/*判断验证码是否正确*/
if (session.getAttribute("valicode").toString().equals(yzm)) {
Ben b = new Ben();
b.setUname(new String(request.getParameter("username").getBytes(
"iso8859-1"),"gbk"));
b.setUpassword(request.getParameter("password"));
b.setAnquanma(request.getParameter("aqpassword"));
b.setTouxiang(request.getParameter("touxiang"));
/*判断用户名是否已经注册 panduan()返回boolean true:可用 false:不可用*/
if (b.panduan()) {
b.Dbcinsert();/*写进数据库*/
out.println("");
out.println("zhuce");
out.println("");
out.println("");
out.println("");
out.print("");
out.print("注册成功!alert(\"用户:" +
new String(request.getParameter("username").getBytes(
"iso8859-1"),"gbk") +
"注册成功!\");window.location.href=\"main.jsp\"");
out.close();
/*把注册的用户名放进session*/
session.setAttribute("yonghuming",
b.getUname());
/*跳转到主页面*/
response.sendRedirect("main.jsp");
抛出异常:
ERROR [Engine] StandardWrapperValve[jsp]:Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException:getOutputStream() has already been called for this response
从网上找了下资料,综合一下原因分析:
这是web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突.
即Servlet规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out变量,故出现以上错误.
解决方案:
1.在程序中添加:
out.clear();
out = pageContext.pushBody();
就可以了;
2,不要在%〕〔%之间写内容包括空格和换行符
3,在页面写入图片的时候,需要flush()
OutputStream output=response.getOutputStream();
output.flush();
4,在页面确定写入
ERROR [Engine] StandardWrapperValve[jsp]:Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException:getOutputStream() has already been called for this response
从网上找了下资料,综合一下原因分析:
这是web容器生成的servlet代码中有out.write(””),这个和JSP中调用的response.getOutputStream()产生冲突.
即Servlet规范说明,不能既调用 response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出 IllegalStateException,因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了response.getOutputStream,又用了out变量,故出现以上错误.
解决方案:
1.在程序中添加:
out.clear();
out = pageContext.pushBody();
就可以了;
2,不要在%〕〔%之间写内容包括空格和换行符
3,在页面写入图片的时候,需要flush()
OutputStream output=response.getOutputStream();
output.flush();
4,在页面确定写入
异常:java.lang.IllegalStateException怎么解决?
java.lang.IllegalStateException异常
java.lang.illegalstateexception
java.lang.IllegalStateException是什么?
java.lang.IllegalStateException: Already connected错误如何解决
java.lang.IllegalArgumentException是什么异常,如何解决.
java.lang.nullpointerexception 怎么解决
java.lang.IllegalStateException:Cannot forward after respons
求问java.lang.IllegalStateException是什么?
java.lang.IllegalStateException: BeanFactory not initialized
java.lang.IllegalStateException是什么回事?
java.lang.IllegalStateException:getOutputStream() has alread