永发信息网

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

答案:1  悬赏:20  手机版
解决时间 2021-02-21 23:10
异常: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);
最佳答案

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


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新加坡樟宜机场可不可以把一千新元兑换开
赤脚湾怎么去啊,有知道地址的么
mapgis如何计算面积
17年6月6日干支属什么
主动的女生好吗?
0和1之间的数有________个.
魅族手机flash插件怎么突然没有了
中国电信岔北天翼手机卖场这个地址在什么地方
车牌尾号是字母怎么限行
少儿适俗韵中的适是什么意思
世界上最大的岛国是那一个国家?
南平地区有多少所中学?
圣慧聪明娃国学幼儿园这个地址在什么地方,我
在京东上买手机怎么看是不是别人的退货
bigger表示更大,那much bigger是什么意思?
推荐资讯
摩托车发动机号在那,跨骑一般都在什么位置
甘泉公园地址在什么地方,想过去办事
单身QQ网名、请大家帮我想想,要对女孩有吸引
前几天去同学家里玩 她家有个坏了但是可以玩
天天快递下午2点发的,第二天早上能到吗
请问,个位大师600986科达股份,个位大师600986
“刻舟求剑”违背了这样的哲理C  ①联系是
英侨培训中心地址在哪,我要去那里办事
家家达百货这个地址在什么地方,我要处理点事
单选题避免对胃产生刺激,制药厂常把一些药物
请教,《神幻拍档》中的“七鬼神”分别有什么
翔英粉体我想知道这个在什么地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?