SpringMVC中Controller控制器的三种实现方式

1.实现Controller接口

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.springframework.web.servlet.view.json.MappingJackson2JsonView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashMap;

@Component("/index1")
public class IndexController1 implements Controller {

    @Override
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("方式1:实现Controller接口");
        //使用ModelAndView去响应
        HashMap<String, Object> result = new HashMap<String, Object>();
        result.put("code", 0);
        result.put("data", "success");
        //模型数据和视图对象 -- 导入jackson相关核心jar包(jackson-core、jackson-annotations、jackson-databind)
        ModelAndView mv = new ModelAndView(new MappingJackson2JsonView());
        mv.addAllObjects(result);
        //添加模型数据
        //mav.addObject("msg","helloworld");
        //设置视图路径      是一个转发
        //mav.setViewName("/hello.jsp");
        return mv;
    }
}

2.@Controller注解

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class IndexController2 {
    @RequestMapping("/index2")
    @ResponseBody
    public String index(){
        System.out.println("方式2:@Controller注解");
        return "success";
    }
}

3.实现HttpRequestHandler接口

import org.springframework.stereotype.Component;
import org.springframework.web.HttpRequestHandler;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@Component("/index3")
public class IndexController3 implements HttpRequestHandler {
    @Override
    public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("方式3:实现HttpRequestHandler");
        //使用ModelAndView去响应
        //模型数据和视图对象
        ModelAndView mv = new ModelAndView();
        //添加模型数据
        //mv.addObject("msg","helloworld");
        //设置视图路径 是一个转发
        //mav.setViewName("/hello.jsp");
        PrintWriter out = response.getWriter();
        out.write("success");
        out.close();
    }
}
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值