当前位置: 代码迷 >> 综合 >> Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequest、HttpServletRespose
  详细解决方案

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

热度:28   发布时间:2023-11-27 11:46:02.0

目录

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";}}}

扩展:

 

  相关解决方案