关于request.getRequestDispatcher("######").forward(req, resp)

原创 2017年01月03日 10:02:47

java web 报错:java.lang.IllegalStateException: Cannot forward after response has been committed…

不知不觉又掉进一个坑里面…反思之后,觉得还是总结不到位,因为最终结局的时候会突然想起来自己以前已经知道这么回事。。。感觉好蠢……


比如:(一些逻辑省略…)

	public void checkPass(HttpServletRequest req, HttpServletResponse resp,UserService userService)  {
		 User user = null;
		
         String name = req.getParameter("username");
         String pass = req.getParameter("pass");
         
         log.debug("pass"+pass);
         
         //***************获取user逻辑省略***************
         //
         if(user == null){
        	 loginMsg = "账号不存在";
			 req.getSession().setAttribute("loginMsg", loginMsg);
			 try {
				req.getRequestDispatcher("login.jsp").forward(req, resp);
			} catch (ServletException | IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
         }
         else{
        	 if(!user.getPassword().equals(pass)){
        		 loginMsg = "密码错误";
    			 req.getSession().setAttribute("loginMsg", loginMsg);
    			 try {
					req.getRequestDispatcher("login.jsp").forward(req, resp);
				} catch (ServletException | IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
        	 }
        	 else{
        		 req.getSession().setAttribute("user", user);
        		
					try {
						req.getRequestDispatcher("index.jsp").forward(req, resp);
					} catch (ServletException | IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
			
        	 }
        	//若不注释掉,这一句始终会执行,那么这个方法就会执行两次forward(),就会报错
//        	 try {
//				req.getRequestDispatcher("login.jsp").forward(req, resp);
//			} catch (ServletException | IOException e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
         }
	}




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

关于request.getRequestDispatcher("######").forward(req, resp)

java web 报错:java.lang.IllegalStateException: Cannot forward after response has been committed… 不知...

Tomcat8.x Servlet内部跳转机制 req.getRequestDispatcher("...").forward(req, resp);

// Servlet内部跳转的源代码片段 req.getRequestDispatcher("...").forward(req, resp); // req.getRequestDispatche...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

request.getRequestDispatcher(Request req,Response res) 和sendRedirect()

1.getRequestDispatcher(url)是请求转发,前后页面共享一个request。 RequestDispatcher 对象从客户端获取请求request,并把它们传递给服务器上的s...

response.sendRedirect()与request.getRequestDispatcher().forward()区别

JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是...

response.sendRedirect()和request.getRequestDispatcher().forward(request,response)

一、安装篇jspSmartUpload是由www.jspsmart.com网站开发的一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点: 1、使用简...

response.sendRedirect()与request.getRequestDispatcher().forward()区别

JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是...

response.sendRedirect()与request.getRequestDispatcher().forward()区别

response.sendRedirect()与request.getRequestDispatcher().forward()区别

response.sendRedirect()与request.getRequestDispatcher().forward()、<jsp:forward> 区别

JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是...

response.sendRedirect()与request.getRequestDispatcher().forward()区别

转载:http://jorton468.blog.163.com/blog/static/72588135201101711810508/ response.sendRedirect()与r...

response.sendRedirect()与request.getRequestDispatcher().forward(request,response)比较

JSP中response.sendRedirect()与request.getRequestDispatcher().forward(request,response)这两个对象都可以使页面跳转,但是...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)