spring mvc2

web拦截方式

springconfig.xml

    <!--不拦截静态资源-->
    <mvc:default-servlet-handler/>

/拦截所有不包含jsp ,包括今天资源,css,js,图片

 /*拦截所有(真拦截)

web.xml

<!-- 配置SpringMVC前端控制器 -->
    <servlet>
        <servlet-name>spring_mvc_test</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/springconfig.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring_mvc_test</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

@RequestMapping

通过@RequestMapping注解可以定义不同的处理器映射规则。

@RequestMapping(“”)作用

标注在方法上:控制器访问的uri;

标注在类上:区别是那个功能,控制器访问的uri前增加一层路径

URL路径映射

@RequestMapping(value="item")或@RequestMapping("/item")
value的值是数组,可以将多个url映射到同一个方法
/**
 * 查询商品列表
 * @return
 */
@RequestMapping(value = { "itemList", "itemListAll" })
public ModelAndView queryItemList() {
    // 查询商品数据
    List<Item> list = this.itemService.queryItemList();

    // 创建ModelAndView,设置逻辑视图名
    ModelAndView mv = new ModelAndView("itemList");

    // 把商品数据放到模型中
    mv.addObject("itemList", list);
    return mv;
}

添加在类上面

在class上添加@RequestMapping(url)指定通用请求前缀, 限制此类下的所有方法请求url必须以请求前缀开头,可以使用此方法对url进行分类管理,如下图

此时需要进入queryItemList()方法的请求url为:

http://127.0.0.1:8080/springmvc-web2/item/itemList.action

或者

http://127.0.0.1:8080/springmvc-web2/item/itemListAll.action

请求方法限定

除了可以对url进行设置,还可以限定请求进来的方法
    限定GET方法
@RequestMapping(method = RequestMethod.GET)

如果通过POST访问则报错:
HTTP Status 405 - Request method 'POST' not supported

例如:
@RequestMapping(value = "itemList",method = RequestMethod.POST)

    限定POST方法
@RequestMapping(method = RequestMethod.POST)

如果通过GET访问则报错:
HTTP Status 405 - Request method 'GET' not supported

    GET和POST都可以
@RequestMapping(method = {RequestMethod.GET,RequestMethod.POST})

Controller方法返回值

返回ModelAndView

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

返回void

在Controller方法形参上可以定义request和response,使用request或response指定响应结果:
1、使用request转发页面,如下:
request.getRequestDispatcher("页面路径").forward(request, response);
request.getRequestDispatcher("/WEB-INF/jsp/success.jsp").forward(request, response);

2、可以通过response页面重定向:
response.sendRedirect("url")
response.sendRedirect("/springmvc-web2/itemEdit.action");

3、可以通过response指定响应结果,例如响应json数据如下:
response.getWriter().print("{\"abc\":123}");

猜你喜欢

转载自www.cnblogs.com/taozizainali/p/11223123.html