SpringMVC 处理响应的实战讲解


一、配置视图解析器

在这里插入图片描述
在springmvc.xml中配置视图解析器:

<!--    配置视图解析器-->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

login.jsp页面:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    Login...
</body>
</html>

PageController.java页面:

@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(){
        return "login";
    }
}

在这里插入图片描述

二、SpringMVC 作用域传值

在这里插入图片描述

1、Request作用域传值

1.1、使用原生的HttpServletRequest

PageController.java页面:


@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(HttpServletRequest request){
        request.setAttribute("msg","Hello Corey");
        return "login";
    }
}

在这里插入图片描述

1.2、使用Map集合

@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(HttpServletRequest request, Map<String,String >map){
        map.put("msg","Hello kk");
        return "login";
    }
}

在这里插入图片描述

1.3、使用Model接口

在SpringMVC中提供了一个Model类型的接口,该接口定义了传递数据的基本行为。如果在处理请求的方法中指定了Model类型的参数,那么SpringMVC会注入一个BindingAwareModelMap对象,并通过该对象把数据放入到HttpServletRequest对象中。

@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(HttpServletRequest request, Map<String,String >map, Model model){
        model.addAttribute("msg","Hello Corey");
        return "login";
    }
}

在这里插入图片描述

2、Session作用域传值

在这里插入图片描述

@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(HttpServletRequest request, Map<String,String >map, Model model,HttpSession session){
        //HttpSession session = request.getSession();
        session.setAttribute("msg","Hello Corey");
        return "login";
    }
}

在这里插入图片描述

3、Application作用域传值

在这里插入图片描述


@Controller
@RequestMapping("/page")
public class PageController {

    @RequestMapping("/login")
    public String showLogin(HttpServletRequest request, Map<String,String >map, Model model,HttpSession session){
        //方法一:
        //ServletContext servletContext = request.getSession().getServletContext();
        //方法二:
        ServletContext servletContext = session.getServletContext();
        servletContext.setAttribute("msg","Hello kk");
        return "login";
    }
}

在这里插入图片描述

三、SpringMVC的响应方式

1、请求转发

1.1、使用Servlet API

在SpringMVC中可以使用HttpServletRequest对象实现请求转发

    @RequestMapping("/login2")
    public void showLogin2(HttpServletRequest request, HttpServletResponse response)throws Exception{
        request.setAttribute("msg","SpringMVC");
        request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request,response);
    }

在这里插入图片描述

1.2、使用视图解析器实现请求转发跳转


    @RequestMapping("/login3")
    public String showLogin3(Model model){
        model.addAttribute("msg","Hello");
        return "login";
    }

在这里插入图片描述

2、重定向

在SpringMVC需要使用redirect关键字实现重定向的跳转,在重定向跳转中是不经过视图解析器的。


    @RequestMapping("/login3")
    public String showLogin3(Model model){
        model.addAttribute("msg","Hello");
        return "login";
    }

    @RequestMapping("/redirectLogin")
    public String redirectLogin(){
        return "redirect:/page/login3";
    }

在这里插入图片描述


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值