springMVC响应

springmvc


一、响应返回值

返回值为String

当返回值为String时,会执行springmvc中的视图解析器,找到对应的"返回的String字符串.jsp",并跳转到界面。

@RequestMapping("/testString")
    public String testString(Model model){
        System.out.println("testString执行。。。");

        //模拟查询数据库的对象
        User user = new User();
        user.setUsername("老王");
        user.setPassword("123");
        user.setAge(23);
        //将用户信息存入request域中,传到界面
        model.addAttribute("user", user);

        return "success";
    }

返回值为void

当返回值为void时,需要使用原始的请求转发、重定向、直接响应三种方式进行跳转。它不经过springmvc中的视图解析器。

请求转发:

@RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("testVoid执行了。。。");
        
        //请求转发方式
        request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
        return;
    }

重定向:

@RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("testVoid执行了。。。");

        //请求转发方式
        //request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);

        //重定向(注意:重定向进不去WEB-INF目录,故跳转不了到success界面)
        response.sendRedirect(request.getContextPath()+"/index.jsp");
        
        return;
    }

直接响应:

@RequestMapping("/testVoid")
    public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("testVoid执行了。。。");

        //请求转发方式
        //request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);

        //重定向(注意:重定向进不去WEB-INF目录,故跳转不了到success界面)
        //response.sendRedirect(request.getContextPath()+"/index.jsp");
        
        //直接响应
        //1.设置中文编码
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
        //2.响应到界面
        response.getWriter().write("你好");
        return;
    }

返回值是ModelAndView类型

springmvc提供的类,经过springmvc.xml中的视图解析器。

@RequestMapping("/testModelAndView")
    public ModelAndView testModelAndView(){
        //创建ModelAndView对象
        ModelAndView modelAndView = new ModelAndView();
        
        //模拟查询数据库的对象
        User user = new User();
        user.setUsername("老王");
        user.setPassword("123");
        user.setAge(23);

        //把user对象存入mv对象中,也存入request域中
        modelAndView.addObject("user",user);
        
        //跳转界面(经过springmvc.xml中的视图解析器)
        modelAndView.setViewName("success");
        
        return modelAndView;
    }

二、响应json数据(过滤静态资源)

1.导入js,并编写界面

在这里插入图片描述
编写.jsp界面

	<script src="js/jquery.min.js"></script>
    <script>
        $(function () {
           $("#btn").click(function () {
               alert("按钮被点击");
           });
        });
    </script>

<button id="btn">发送ajax的请求</button>

2.过滤静态资源(配置springmvc.xml)

<!--前端控制器,设置静态资源不被拦截-->
    <mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 --> 
    <mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 --> 
    <mvc:resources location="/js/" mapping="/js/**"/> <!-- javascript -->

3.发送ajax请求

将数据传到服务器。(在服务器能拿到请求体的数据)

在这里插入图片描述
在这里插入图片描述

封装数据到javabean对象中(即:实体类)

需要导入jackson的jar包。
作用:json数据封装到javabean;javabean转换为json。

	<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.0</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.0</version>
    </dependency>

在这里插入图片描述

<script>
        $(function () {
           $("#btn").click(function () {
               // alert("按钮被点击");
               // 发送ajax请求
               $.ajax({
                   url:"userController/testAjax",
                   // 给服务器传json数据
                   contentType:"application/json;charset=UTF-8",
                   data:'{"username":"老李","password":"123","age":20}',
                   dataType:"json",
                   type:"POST",
                   success:function (data) {
                        alert(data);
                        alert(data.username);
                        alert(data.password);
                        alert(data.age);
                   }
               });
           });
        });
</script>

总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值