SpringMVC = SpringMVC响应,异常处理以及拦截器

springmvc 响应,同步-页面跳转,异步-网络请求返回数据 ; ajax异步交互; restful前后端分离开发风格;异常统一处理;拦截器一.SpringMVC的响应:(1)页面跳转=====转发方式一:简单方式方式 二: forward关键字:此关键字的底层就是:request.getRequestDispatcher("跳转路径").forward(req,resp);此关键字在使用后,不在经过视图解析器进行字符串的拼接... @RequestM.
摘要由CSDN通过智能技术生成

springmvc 响应,同步-页面跳转,异步-网络请求返回数据 ; ajax异步交互; restful前后端分离开发风格;

异常统一处理;拦截器

一.SpringMVC的响应:

(1)页面跳转=====转发

方式一:简单方式

方式 二: forward关键字:

此关键字的底层就是:request.getRequestDispatcher("跳转路径").forward(req,resp);

此关键字在使用后,不在经过视图解析器进行字符串的拼接...

    @RequestMapping("/quick")
    public String quick(){
//        return "success";  //方式一
//        int i=1/0;
        return "forward:/WEB-INF/pages/success.jsp"; //方式二
    }

方式三:servlet原生API

 

转发携带数据:(request域)

方式一:ServletAPI

    @RequestMapping("/requestApiData") //
    public void requestApiData(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws ServletException, IOException{
       request.setAttribute("message","requestApiData==方式四转发携带数据:");
        request.getRequestDispatcher("/WEB-INF/pages/successData.jsp").forward(request,response);
    }

方式二:ModelAndView对象

 @RequestMapping("/modelAndView")
    public ModelAndView modelAndView(ModelAndView  modelAndView){
        modelAndView.addObject("message","modelAndView==方式四转发携带数据:");
        modelAndView.setViewName("successData");
        return modelAndView;
    }

方式三:Model对象:

    @RequestMapping("/quickModel")
    public String quickModel(Model model){
        model.addAttribute("message","quickModel==b不会收到的");
        return "successData";
    }

 

(2)页面跳转---重定向

方式一:redirect 关键字

此关键字的底层:response.sendRedirect("web项目地址+重定向地址");

而且还在此技术上进行了优化,我们不需要再去编写web项目地址,直接编写重定向地址.

 //方式一
    @RequestMapping("/redirect")
    public String redirect(){
        return "redirect:/index.jsp";
    }

方式二:servlet原生API

    @RequestMapping("/responseRedirect")
    public void responseRedirect(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws ServletException ,IOException{
        response.sendRedirect(request.getContextPath()+"/index.jsp");
    }

 

二、ajax异步交互

需求:

发送$.ajax()

响应new ObjectMapper().writeValueAsString()

关于SpringMVC框架,ajax异步请求,后端响应json

在SpringMVC中,这个功能主要是通过两个注解@RequestBody 和 @ResponseBody实现的

注意:

SpringMVC默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包

<!--jsckson -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.9</version>
</dependency>

(1)RequestBody

用于接收前端传递的请求体中的json数据, 并可以自动转换封装进指定的对象中。

 

开启静态资源放行:

页面引入jquery文件

编写ajax代码:

<button id="ajaxBtn">发送ajax请求</button>
<script>
    $('#ajaxBtn').click(function () {
        // alert(1)

        /*
            使用: $.ajax() 函数
            规则:
                1.ajax提交的数据必须是一个标准的json字符串
                2.ajax提交的方式必须为post,数据必须在请求体中
                3.ajax提交的MIME类型必须为:application/json;charset=utf-8
         */
        $.ajax({
            url: '${pageContext.request.contextPath}/ajaxRequest',
            type: 'POST',
            data: '{"username":"lucy","age":18}',
            contentType:'application/json;charset=utf-8',
            success: function (resp) {

            }
        });
    })
</script>

编写User实体类:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {

    private String username;

    private Integer age;
}

获取请求体的json数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值