Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequest、HttpServletRespose

目录

Servlet API对象(类似9大内置对象)

支持的对象有:

• HttpServletRequest、HttpServletResponse、HttpSession、

完善登录跳转功能


Servlet API对象(类似9大内置对象)

SpringMVC框架支持直接在控制器方法中绑定一些ServletAPI对象的,

支持的对象有:

HttpServletRequestHttpServletResponseHttpSession

java.security.PrincipalLocaleInputStreamOutputStreamReader

Writer

   可以直接在控制器方法中使用这些对象作为方法的参数,SpringMVC

框架自动完成参数绑定

public String doLogin(@RequestParam("loginname") String name, @RequestParam("password") String pwd, 
HttpServletRequest request, HttpServletResponse response) {

    }

完善登录跳转功能

– 现在这里还有两个问题,一个是登录成功后需要将登录用户保存到

Session域中,另一个则是登录失败后将登录错误信息发送回登录页。

– 以往在Servlet编程中,可以通过HttpServletRequest对象保存错误信

息,然后在JSP页面中可以通过域对象读取错误信息,此外还可以通过

Request对象获取会话的Session,之后可以保存登录的用户对象。

– 在SpringMVC框架中也可以获取到相关的Servlet中的一些象。

@PostMapping("/login")
    public String dologin(@RequestParam("loginname")String loginname,@RequestParam("password")String password
    	,HttpServletRequest request	) {
    	
		User user = userservice.selectLoginUser(loginname, password);
		System.out.println(user);
		
		if (user == null) {
			request.getSession().setAttribute("msg", "用户信息输入错误!!");
                        //域对象当中的信息在哪都可以通过EL表达式进行获取
                         //key--->msg,value-->用户信息输入错误!!                                                 
               
			return "login";
		} else {
			request.getSession().setAttribute("user", user);
                        //设置了一个域对象user,user就可以在整个域当中进行调用
                        //在转发到下面的页面的时候可以把域对象的信息带走key--》value形式 
                        //key--->user,value-->user对象,                                                 
                       //即User user = userservice.selectLoginUser(loginname,password);
			if (user.getRole() == 1) {
				
				return "redirect:/manager/index";///WEB-INF/pages/manager/index.jsp  绝对不行
			} else {
				return "redirect:/reader/index";
			}
		}
    	
    }

扩展:

猜你喜欢

转载自blog.csdn.net/qq_53463161/article/details/121505069