jsp中的异常----java.lang.IllegalStateException

在写servlet 文件时,遇到了java.lang.IllegalStateException异常,刚开始一直不知道错误出现在哪里,后来才发现。

以下是异常提示:

java.lang.IllegalStateException: Cannot forward after response has been committed
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:302)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:292)
	at servlet.UserListByPowerServlet.doPost(UserListByPowerServlet.java:68)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	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:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	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:263)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)


出现异常的servlet文件是UserListByPowerServlet.java,文件代码如下

 

 

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		
		response.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		String power=request.getParameter("power");
		String pNo=request.getParameter("pNo");
		String po="0";
		
		if(power.equals("1")){
			po="超级管理员";
		}else if(power.equals("2")){
			
			po="普通管理员";
			
		}else if(power.equals("3")){
			po="普通用户";
		
		}
		if(power.equals("0")){
			request.setAttribute("pNo", pNo);
			request.getRequestDispatcher("userListServlet?pNo="+pNo).forward(request, response);
			return;
		}
		
		
		
		if(pNo==null || pNo.equals("") || pNo.trim().equals("0")){
			pNo="1";
		}
		int p=1;
		try{/当用户输入的是字符串时
		p=Integer.parseInt(pNo);
		}catch(Exception e){
			
			p=1;
		}
		

		
		oj_UserDao ud=new oj_UserDaoImpl();
		int pageSize=10;
		
		int totalCount=ud.totalCount2(po);
		int pageCount=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
if(p>=pageCount){///当输入的数字大于总页数时
			
			p=pageCount;
			
		}
List list=ud.getUserList2(po,p, pageSize);
		request.setAttribute("pNo", pNo);
		request.setAttribute("totalCount", totalCount);
		request.setAttribute("pageCount" ,pageCount);
		request.setAttribute("userList", list);
	  request.setAttribute("power",power);
	request.getRequestDispatcher("tab/UserList.jsp").forward(request, response);
		
		
		

		 
	}


 

 

大家看到上面的两句request.getRequestDispatcher("").forward(request, response);了吧,就是这两个语句冲突造成的异常,解决办法就是在第一个句子执行完之后,在其后面

加上return语句,让其不在往下执行!!!!!!这样就OK了!!!

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值