永发信息网

异常:java.lang.IllegalStateException怎么解决?

答案:1  悬赏:20  手机版
解决时间 2021-02-21 23:10
  • 提问者网友:最美的风景
  • 2021-02-21 13:07
异常: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));

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.setAttribute(yonghuming,
b.getUname());

response.sendRedirect(main.jsp);
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-02-21 13:54

抛出异常:
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,在页面确定写入


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯