Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose
Posted 吃人陈乐游刘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose相关的知识,希望对你有一定的参考价值。
目录
• HttpServletRequest、HttpServletResponse、HttpSession、
Servlet API对象(类似9大内置对象)
SpringMVC框架支持直接在控制器方法中绑定一些ServletAPI对象的,
支持的对象有:
• HttpServletRequest、HttpServletResponse、HttpSession、
java.security.Principal、Locale、InputStream、OutputStream、Reader、
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";
扩展:
以上是关于Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose的主要内容,如果未能解决你的问题,请参考以下文章
Spring MVC @Controller中转发或者重定向到其他页面的信息怎么携带和传递(Servlet API对象)HttpServletRequestHttpServletRespose(代码片
Spring MVC controller中,使用redirect重定向后却无法传递session的属性