springMvc简单介绍

2. spring mvc 请求:

     @RequestMapping:  请求路径映射,可以在类上也可以在方法上面, produces 指定返回格式 ,

                                       可以指定method 请求方式get还是post

     @RequestParam: 请求参数映射,required 可以指定需不需要必须传,可以设置defaultValue默认值

     @PathVariable : 带占位符的URL,从占位符中取出值

     @RequestBody:  注解用于读取http请求的内容(字符串),通过springmvc提供的HttpMessageConverter接口将读到的内容

          转换为 json、xml等格式的数据并绑定到controller方法的参数上。

   

3 spring mvc 返回值

     1. 返回ModelAndView:

          controller方法中定义ModelAndView对象并返回,对象中可添加model数据、指定view。

      2 .返回void

         在controller方法形参上可以定义request和response,使用request或response指定响应结果:

     3. @ResponseBody作用:

       该注解用于将Controller的方法返回的对象,通过HttpMessageConverter接口转换为指定格式的数据如:json,xml等,

       通过 Response响应给客户端

4. SpringMvc中的转发和重定向

   1. 转发和重定向的区别:

         ① 转发: 浏览器的url地址不变,重定向: 浏览器的URL地址改变

         ② 转发: 服务器行为, 重定向: 客户端行为

         ③ 转发: 浏览器只做了一次请求 重定向: 浏览器做了多次请求

         ④ 转发: 传输的信息不回丢失 重定向: 传输的信息会丢失(request范围)

   2. 使用request转向页面,如下:

        request.getRequestDispatcher("页面路径").forward(request, response);

         return"forward:editItem.action";

   3. 也可以通过response页面重定向:

       response.sendRedirect("url")

       return"redirect:queryItem.action";

   4. 也可以通过response指定响应结果,例如响应json数据如下:

        response.setCharacterEncoding("utf-8");

        response.setContentType("application/json;charset=utf-8");

        response.getWriter().write("json串");

    5.  返回逻辑视图名

       controller方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。

       //指定逻辑视图名,经过视图解析器解析为jsp物理路径:/WEB-INF/jsp/item/editItem.jsp

       return"item/editItem";

5 .自定义异常处理器

     1.  springmvc在处理请求过程中出现异常信息交由异常处理器进行处理,

          自定义异常处理器可以实现一个系统的异常处理逻辑。

    2.  系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,

                   后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。系统的dao、service、controller出现都

                    通过throwsException向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理

   
   

public class CustomExceptionResolver implements HandlerExceptionResolver {


    @Override

    public ModelAndViewresolveException(HttpServletRequest request,

          HttpServletResponseresponse, Object handler, Exception ex) {


        ex.printStackTrace();


       CustomExceptioncustomException = null;

      

       //如果抛出的是系统自定义异常则直接转换

       if(ex instanceof CustomException){

           customException =(CustomException)ex;

       }else{

           //如果抛出的不是系统自定义异常则重新构造一个系统错误异常。

           customException = new CustomException("系统错误,请与系统管理员联系!");

       }

      

       ModelAndView modelAndView = new ModelAndView();

       modelAndView.addObject("message",customException.getMessage());

       modelAndView.setViewName("error");


       return modelAndView;

    }


}

猜你喜欢

转载自blog.csdn.net/xc123_java/article/details/77658640