黑马程序员技术交流社区

标题: SpringMVC框架|Handler处理器的三种写法 [打印本页]

作者: 长沙-小知姐姐    时间: 2020-2-18 17:42
标题: SpringMVC框架|Handler处理器的三种写法
本帖最后由 长沙-小知姐姐 于 2020-2-18 17:43 编辑

一、SpringMVC中的处理器
配置完SpringMVC的处理器映射器,处理适配器,视图解析器后,需要手动写处理器。关于处理器的写法有三种,无论怎么写,执行流程都是①处理映射器通过@Controller注解找到处理器,继而②通过@RequestMapping注解找到用户输入的url。下面分别介绍这三种方式。

package com.gql.springmvc;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* 类说明:
*                处理器的三种写法
* @guoqianliang1998.
*/
@Controller
public class UserController {
        //1.SpringMVC开发方式
        @RequestMapping("/hello")
        public ModelAndView hello(){
                ModelAndView mv = new ModelAndView();
                mv.addObject("msg","hello world!");
                mv.setViewName("index.jsp");
                return mv;
        }
        
        //2.原生Servlet开发方式
        @RequestMapping("xx")
        public void xx(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
                request.setAttribute("msg", "周冬雨");
                request.getRequestDispatcher("/index.jsp").forward(request, response);
        }
        
        //3.开发中常用
        @RequestMapping("yy")
        public String yy(Model model){
                model.addAttribute("msg", "双笙");
                return "forward:/index.jsp";//forward写不写都是转发,redirect代表重定向.
        }
}

1.SpringMVC开发方式
        @RequestMapping("/hello")
        public ModelAndView hello(){
                ModelAndView mv = new ModelAndView();
                mv.addObject("msg","hello world!");
                mv.setViewName("index.jsp");
                return mv;
        }

2.Servlet原生开发方式
        @RequestMapping("xx")
        public void xx(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
                request.setAttribute("msg", "周冬雨");
                request.getRequestDispatcher("/index.jsp").forward(request, response);
        }

3.开发中常用的方式
在return的字符串中,forward写不写都是代表转发,redirect则代表重定向。

        @RequestMapping("yy")
        public String yy(Model model){
                model.addAttribute("msg", "双笙");
                return "forward:/index.jsp";
        }

————————————————

原文链接:郭乾亮1998.」 https://blog.csdn.net/weixin_43691058/article/details/104349096







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2