zoukankan      html  css  js  c++  java
  • 限制action所接受的请求方式或请求参数

    原文:http://www.cnblogs.com/liukemng/p/3726897.html

    2.限制action所接受的请求方式(get或post):

    之前我们在HelloWorldController的index() action方法上配置的为@RequestMapping(value="/*", method = {RequestMethod.GET})我们把它改为@RequestMapping(value="/*", method = {RequestMethod.POST})再次请求http://localhost:8080/SpringMVCLesson/helloworld/index试一下:

    7

    这里可以看到结果映射到了urlTest这个action,这是因为我们在urlTest上配置的为@RequestMapping(value="/*", method = {RequestMethod.GET}),当index这个action映射不在符合时便映射到了urlTest。

    我们也可以这样配置@RequestMapping(value="/*", method = {RequestMethod.GET, RequestMethod.POST})表示该action可以接受get或post请求,不过更简单的是不对method做配置则默认支持所有请求方式。

    3.限制action所接受请求的参数:

    我们可以为某个action指定映射的请求中必须包含某参数,或必须不包含某参数,或者某参数必须等于某个值,或者某参数必须不等于某个值这些限制。

    3.1.指定映射请求必须包含某参数:

    在HelloWorldController添加一个paramsTest的action,内容如下:

    复制代码
    @RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET})
    public ModelAndView paramsTest(){
        
        ModelAndView modelAndView = new ModelAndView();   
        modelAndView.setViewName("paramstest");  
        return modelAndView;
    }
    复制代码

    在views文件夹中新加一个视图paramstest.jsp内容如下:

    复制代码
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        paramstest!
    </body>
    </html>
    复制代码

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest查看结果:

    8

    这里可以看到没有找到paramsTest这个action结果还是映射到了urlTest这个action。

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example查看结果:

    9

    这次可以看到请求映射到了paramsTest这个action。

    3.2.指定映射请求必须不包含某参数:

    把刚才添加的paramsTest的@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET}) 改为@RequestMapping(value="/paramstest", params="!example", method = {RequestMethod.GET})

    重新请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example查看结果:

    10

    可以看到又没有找到paramsTest这个action而映射到了urlTest这个action。

    3.3.指定映射请求中或者某参数必须等于某个值:

    把刚才添加的paramsTest的@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET}) 改为@RequestMapping(value="/paramstest", params="example=AAA", method = {RequestMethod.GET})

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example=BBB查看结果:

    11

    可以看到没有找到paramsTest这个action而映射到了urlTest这个action。

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example=AAA查看结果:

    12

    这次可以看到请求映射到了paramsTest这个action。

    3.4.指定映射请求中或者某参数必须不等于某个值:

    把刚才添加的paramsTest的@RequestMapping(value="/paramstest", params="example", method = {RequestMethod.GET}) 改为@RequestMapping(value="/paramstest", params="example!=AAA", method = {RequestMethod.GET})

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example=BBB查看结果:

    13

    可以看到请求映射到了paramsTest这个action。

    请求http://localhost:8080/SpringMVCLesson/helloworld/paramstest?example=AAA查看结果:

    14

    可以看到没有找到paramsTest这个action而映射到了urlTest这个action。

    注:当我们为params指定多个参数时如:params={"example1", "example2"},表示的是and关系,即两个参数限制必须同时满足。

    4.限制action所接受请求头参数:

    同限制action所接受的请求参数一样,我们也可以为某个action指定映射的请求头中必须包含某参数,或必须不包含某参数,或者某参数必须等于某个值,或者某参数必须不等于某个值这些限制。

    4.1.指定映射请求头必须包含某参数:

    @RequestMapping(value="/headerTest", headers = "example")。与限制请求参数是一样的,可以参考上面的例子进行测试。

    4.2.指定映射请求头必须不包含某参数:

    @RequestMapping(value="/headerTest", headers = "!example")。与限制请求参数是一样的,可以参考上面的例子进行测试。

    4.3.指定映射请求头中或者某参数必须等于某个值:

    @RequestMapping(value="/headerTest", headers = "Accept=text/html")。与限制请求参数是一样的,可以参考上面的例子进行测试。

    4.4.指定映射请求头中或者某参数必须不等于某个值:

    @RequestMapping(value="/headerTest", headers = "Accept!=text/html")。与限制请求参数是一样的,可以参考上面的例子进行测试。

    注:当我们为headers指定多个参数时如:headers={"example1", "example2"},表示的是and关系,即两个参数限制必须同时满足。

  • 相关阅读:
    jx problem
    redhat nginx 启动脚本
    nginx trouble shooting
    异常:2 字节的 UTF-8 序列的字节 2 无效 解决方法
    Springcloud-eureka异常:
    javax.servlet.ServletException: Circular view path [login]: would dispatch back to the current handler URL [/login] again. Check your ViewResolver setup!--异常
    Layui--iframe内嵌页面简单部署
    Error querying database. Cause: java.lang.UnsupportedOperationException-异常
    Error:(4, 25) java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx
    win-安装数个mysql
  • 原文地址:https://www.cnblogs.com/yunqing/p/6247659.html
Copyright © 2011-2022 走看看