我们如何在spring3 mvc中处理get请求?

时间:2012-07-11 01:22:33

标签: javascript spring

在客户端,javascript代码:

<script src="api/api.js?v=1.x&key=abjas23456asg" type="text/javascript"></script>

当浏览器遇到这一行时,我猜它会向服务器发送get请求并获取api.js中的内容。

但是我想处理这个get请求,并根据v和key的参数对内容做一些其他的修剪。

例如:

当密钥无效时,我们只返回一个警告字符串,但不是真正的api。

1 个答案:

答案 0 :(得分:0)

为了做到这一点,你需要先配置你的web.xml,它将.js的请求重定向到spring而不是直接服务。

然后您需要使用HandlerInterceptorAdapter编写Request Handler来拦截请求并验证关键参数。如果它不可用,那么只需按下警报代码,不要通过preHandle发送flase来处理进一步的请求链。

您可以使用

映射静态资源
<mvc:resources mapping="/api/**" location="/api-folder/"/>

为您可以设置的所有资源配置web.xml

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>*</url-pattern>
</servlet-mapping>

对于HandlerInterceptor

@Component
public class MyHandler extends HandlerInterceptorAdapter {
@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
    throws Exception {
    String key=request.getParameter("key");
            if(invalid) {
              write alert to response 
              return false;
            }else{
                // let spring serve your static content
            } 
}

}

for web context xml

<mvc:interceptors>
    <bean class="MyHandler " />
</mvc:interceptors>