标签: url-pattern

使用 URL 路径或查询参数进行分页

我正在写博客,并在互联网上遇到了两种不同的分页替代方法。我无法决定使用哪个。网址类型就像;

博客/页/2

博客/?page=2

其中一个比另一个有优势吗?

python django url pagination url-pattern

6
推荐指数
1
解决办法
3623
查看次数

Wiremock 与正则表达式不匹配

我正在使用 wiremock 来模拟某些请求及其各自的响应,但我正在尝试添加一个正则表达式。不幸的是,这只是抛出一个异常,指出请求不匹配。

{
  "request" : {
     "method": "GET",
     "urlPattern": "/my/service/url?^.*(specificParam.*(M[0-9]{9})).*$"
   },
 "response": {
   ...
   }
}
Run Code Online (Sandbox Code Playgroud)

我也试过

"urlPattern": "/my/service/url\\?^.*(specificParam.*(M[0-9]{9})).*$"
Run Code Online (Sandbox Code Playgroud)

我发送的请求是 /my/service/url?saml2=disabled&filter=specificParam%20eq%20%27M012345678%27

有谁知道为什么请求与映射不匹配?提前致谢。

regex mocking url-pattern wiremock

6
推荐指数
1
解决办法
1万
查看次数

Spring新手:我的DispatcherServlet的url-pattern似乎"覆盖"了welcome-file

我使用Spring来渲染我的JSP,而我的url-pattern DispatcherServlet是"/".这似乎是为了使欢迎文件列表永远不会被考虑.我真的想DispatcherServlet处理除"/"之外的所有事情.但是,我想避免文件扩展名(例如,*.html,.do等),并且我正在使用InternalResourceViewResolver,因此将调度程序servlet的url-pattern设置为"/ "会使其接受太多(例如对InternalResourceViewResolver生成的JSP页面的内部请求将被调度程序servlet拦截,然后调度程序servlet会因为没有/WEB-INF/jsp/about.jsp的映射而抛出错误.任何帮助将不胜感激 - 我对Spring 新(例如2天;-))

以下是相应的文件:

目录结构

/war (I'm using AppEngine)
  index.jsp (Simply includes WEB-INF/jsp/index.jsp)
  /WEB-INF
    XML Config files

    /jsp
      index.jsp
      about.jsp
      ...
Run Code Online (Sandbox Code Playgroud)

web.xml中

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!--
    We purposefully do not make this /*. The convention here is to define
    mappings for files that exist, and write a good 404 page for anything
    else. …
Run Code Online (Sandbox Code Playgroud)

java configuration spring spring-mvc url-pattern

5
推荐指数
0
解决办法
4764
查看次数

servlet url匹配模式中/和/*之间的区别

可能重复:
Servlet映射/ vs/*

servlet url映射中'/'和'/*'有什么区别?

因为我正在阅读春天的书,我找到了这些话:

接下来,我们必须指出DispatcherServlet将处理哪些URL.通常会发现DispatcherServlet映射到URL模式,例如.htm,/或/ app.但是这些URL模式存在一些问题:

  • *.htm模式意味着响应将始终采用HTML格式(正如我们将在第11章中学到的那样,并不一定如此).
  • 将其映射到/*并不意味着任何指定的响应类型,但表示DispatcherServlet将为所有请求提供服务.这使得服务静态内容(如图像和样式表)比必要更困难.
  • / app模式(或类似的东西)帮助我们区分Dispatcher-Servlet提供的内容与其他类型的内容.但是我们在URL中公开了一个实现细节(特别是/ app路径).这导致复杂的URL重写策略隐藏/ app路径.

而不是使用任何有缺陷的servlet映射方案,我更喜欢像这样映射DispatcherServlet:

<servlet-mapping>
  <servlet-name>spitter</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

通过将DispatcherServlet映射到/,我说它是默认的servlet,并且它将负责处理所有请求,包括对静态内容的请求.

根据上面的话,似乎'/'和'/*'都将服务于所有请求.

有什么不同?

servlets url-pattern

5
推荐指数
1
解决办法
2107
查看次数

在Django的执行阶段修改urlpatterns

我正在开发需要加载动态模块(在运行时)的Django应用程序。现在,我可以上载(从客户端浏览器到服务器)“插件”并在数据库中注册插件模型,等等。但是我需要一种方法来处理每个插件的urlpatterns。当前,我已经在webapp的“核心”中编写了一个函数,该函数注册了一个模型,并(通过理论上)通过包含该插件将上传插件的urlpatterns添加到了webapp urls.py中。该函数是:

def register_plugin_model(model,codename):
# Standard syncdb expects models to be in reliable locations,
# so dynamic models need to bypass django.core.management.syncdb.
# On the plus side, this allows individual models to be installed
# without installing the entire project structure.
# On the other hand, this means that things like relationships and
# indexes will have to be handled manually.
# This installs only the basic table definition.

if model is not None:
    style = color.no_style()
    cursor = connection.cursor() …
Run Code Online (Sandbox Code Playgroud)

django url-pattern

5
推荐指数
1
解决办法
2303
查看次数

无法使用/ *以外的url模式进行REST调用

我正在尝试使用Tomcat 7,Apache Wink和Jackson JSON处理器来做一个简单的REST Web应用程序,但是似乎遇到了麻烦。如果查看我的web.xml文件,则会看到:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Example Web Application</display-name>
    <servlet>
        <servlet-name>ExampleServlet</servlet-name>
        <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.dummy.example.server.ExampleApplication</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>ExampleServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

现在,如果我用/ *代替URL模式,则REST调用有效,但是当我使用/ services / *时,它将失败。

在我的ExampleApplication中,我看到:

package com.dummy.example.server;

import java.util.HashSet;
import java.util.Set;

import javax.ws.rs.core.Application;

import org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;
import org.codehaus.jackson.map.AnnotationIntrospector;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;
import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;

public class ExampleApplication extends Application {

    /**
     * Get the list of service classes provided by this JAX-RS application
     */
    @Override
    public …
Run Code Online (Sandbox Code Playgroud)

rest url-pattern

5
推荐指数
1
解决办法
3947
查看次数

是否有一种标准的方法用django中的视图装饰器替换urlpatterns?

我已经开发了自己的,但看起来这是一个非常好的事情,其他人可能首先想到它并做得更好;)

目标是能够在myapp/views.py中编写

router = Router(prefix=r'^myapp/')

@router.route(url=r'my/url/here', name="my-great-view")
def myview(request):
    return render_to_response("mytemplate.html", {})
Run Code Online (Sandbox Code Playgroud)

然后在urls.py中

urlpatterns += myapp.views.router.get_patterns()
Run Code Online (Sandbox Code Playgroud)

我还内置了其他一些很酷的装饰器(@jsonview用于获取返回的字典并进行json响应,@ use_template用于获取返回的字典并将其作为上下文传递给定义的模板...)

看起来这种方式使得一切都更加本地化,​​可读性更强.在查看视图函数时,您不必搜索它以查找它所属的URL,或者它的"命名".

我看到了这个djangosnippet,但它比我想要的更加神奇,它看起来并不像它被普遍采用.

如果没有人将标准解决方案放在一起,我应该清理我的并向contrib提交拉取请求吗?

编辑: 如果您想要同一视图的多个网址:

@router.route(url="my-first-url", kwargs={'foo':'bar'})
@router.route(url="my-second=url", kwargs={'foo':'baz'})
def my_view(...): ...
Run Code Online (Sandbox Code Playgroud)

当然,这并不一定是唯一做到这一点的方式-正常urlpatterns的方式大约有两份一些不错的事情,但是这两种方法并不是相互排斥的.

django view decorator url-pattern

5
推荐指数
1
解决办法
521
查看次数

Spring MVC测试 - 在集成测试需要特定类型时注入模拟存储库

我使用spring mvc 3编写了一个Web应用程序.它提供了一个返回JSON的单个端点.我确实使用url参数成功运行它,但现在我需要更改它以使用路径变量.

我换了控制器

从:

@Controller
public class DataController {

    @Autowired
    private IDataService dateService;

    @RequestMapping(
            value = "/some/data",
            method = RequestMethod.GET,
            produces = "application/json"
    )
    public @ResponseBody Data getDataByCode(@RequestParam String code) {
        return versionService.getDataByCode(code);
    }
}
Run Code Online (Sandbox Code Playgroud)

至:

@Controller
public class DataController {

    @Autowired
    private IDataService dateService;

    @RequestMapping(
            value = "/some/data/{code}",
            method = RequestMethod.GET,
            produces = "application/json"
    )
    public @ResponseBody Data getDataByCode(@PathVariable String code) {
        return versionService.getDataByCode(code);
    }
}
Run Code Online (Sandbox Code Playgroud)

和我的web xml来映射网址...

从:

    <servlet>
        <servlet-name>dataBycode</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:/config/servlet-config.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping> …
Run Code Online (Sandbox Code Playgroud)

java path-variables spring-mvc url-pattern

5
推荐指数
1
解决办法
240
查看次数

&lt;security-constraint&gt; &lt;url-pattern&gt; 和 web.xml 中的 * 字符

使用 Spring for Security,我可以使用以下代码运行程序。

<intercept-url pattern="/web/admin**/**" access="ROLE_ADMIN" requires-channel="https"/>
<intercept-url pattern="/web/**/" access="ROLE_USER,ROLE_ADMIN" requires-channel="https"/>
Run Code Online (Sandbox Code Playgroud)

我目前正在尝试在 web.xml 中执行此操作。使用 JBOSS 部署 .war 文件。下面是我所拥有的,网址模式是导致我出现第一个安全约束问题的原因。这些页面位于,并命名为 /web/adminarchive /web/adminsettings /web/adminstuff 等... Spring 中的上面的代码按照我想要的方式处理它,URL 是 /web/admin**/** 到捕获所有管理页面。我注释掉了 /* 部分,因为我知道它有效,只留下了管理部分。使用该结构不会引发任何错误,它只是根本不提示登录。

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Name</web-resource-name>
        <url-pattern>/web/admin**/**</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>ROLE_ADMIN</role-name>
    </auth-constraint>
</security-constraint>
<security-constraint>
    <web-resource-collection>
        <web-resource-name>Name</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
    </web-resource-collection>
    <auth-constraint>
        <role-name>ROLE_USER</role-name>
    </auth-constraint>
</security-constraint>
Run Code Online (Sandbox Code Playgroud)

web.xml war url-pattern jboss6.x security-constraint

4
推荐指数
1
解决办法
2万
查看次数

正则表达式阻止 nginx 中的 url

我想阻止访问末尾有多余字符的网址。

例如我希望 nginx 阻止请求https://www.example.com/url-pattern/amp/extra-chars/more-extra

但希望它允许https://www.example.com/url-pattern/amphttps://www.example.com/url-pattern/amp/

这行得通吗?

location .*\/amp\/. {
   deny all
}
Run Code Online (Sandbox Code Playgroud)

请指导。

regex url nginx url-pattern

4
推荐指数
1
解决办法
7921
查看次数