标签: url-pattern

Catch-all(通配符)servlet url-pattern覆盖文件扩展名模式

我想实现以下目标:

/webapp-context/Page-1               -> Handled by my custom "ContentServlet"
/webapp-context/Another-Page         -> Handled by my custom "ContentServlet"
/webapp-context/Page-with-long-title -> Handled by my custom "ContentServlet"

/webapp-context/_cms/<something>.zul -> Handled by ZK framework
Run Code Online (Sandbox Code Playgroud)

我的最新尝试看起来像这样(web.xml提取):

  <servlet-mapping>
    <servlet-name>zkLoader</servlet-name>
    <url-pattern>*.zul</url-pattern>
  </servlet-mapping>

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

不幸的是现在我的内容servlet处理所有请求(我认为更具体的模式优先?).

如果我将我的内容servlet映射到模式"/ webapp-context/content/*",则不存在冲突,但这不是我想要的.

谢谢你的时间.

web.xml servlets zk url-pattern

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

Servlet @WebServlet urlPatterns

这是一个快速的问题,但我找不到快速的答案.现在我有一个servlet BaseServlet,当用户请求下面的任何url时:

host
host/
host/BaseServlet
Run Code Online (Sandbox Code Playgroud)

它应始终引用相同的servlet并重定向到主页.

当我设置

@WebServlet({"/BaseServlet", ""})
Run Code Online (Sandbox Code Playgroud)

只要

host/
host/BaseServlet
Run Code Online (Sandbox Code Playgroud)

作品

如果我订

@WebServlet({"/BaseServlet", "", "/"})
Run Code Online (Sandbox Code Playgroud)

BaseServlet将被循环请​​求...

为什么?

编辑:BaseServlet转发到WEB-INF文件夹中的index.html hid,就是这样.

getServletContext().getRequestDispatcher("/WEB-INF/index.html").forward(request,response);
Run Code Online (Sandbox Code Playgroud)

servlet规范说"只包含/字符的字符串表示应用程序的"默认"servlet." 所以我希望BaseServlet成为我的默认设置.为什么它不起作用?

java servlets url-pattern

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

用于匹配以斜杠("/")结尾的URL的Servlet URL模式

我想指定一个Servlet URL模式来匹配以斜杠("/")结尾的URL,而只是斜杠.

我理解这种模式

    /example/path/*

将匹配的URL

    http://example.com/example/path/

这似乎有效.但是,相同的模式也会匹配的URL

    http://example.com/example/path/a/
    http://example.com/example/path/b/
    http://example.com/example/path/c/

我只是在寻找一个http://example.com/example/path/只匹配而不匹配的URL模式http://example.com/example/path/a/等等.

澄清:不允许以斜杠结尾的URL模式.

java web.xml servlets url-pattern

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

Django1.4:在模板中设置语言链接以与i18n_patterns一起使用的通用方法?

我开始在Django 1.4中使用新的i18n_patterns.基本上,我希望在我的所有模板标题上为每种支持的语言提供语言链接.我已将我的标题实现为一个单独的模板,该模板包含在其他模板中.

有没有办法保持我的标题通用并解决这个问题,而不传递模板上下文中的当前视图名称或当前网址?我想这是一个问题,我如何以通用方式从模板内部检索当前视图或网址.

顺便说一句,我发现我之前用set_lang视图改变活动语言的方法将使用url_patterns打破,因为在更改语言后,它会在重定向到引用视图时将其更改回来.

任何帮助找出在模板中设置语言链接的通用方法,以通用的方式与url_patterns一起使用将不胜感激!

django localization internationalization url-pattern django-1.4

8
推荐指数
2
解决办法
2746
查看次数

servlet的通配符路径?

有一个@WebServlet(urlPatterns = "/myServlet/").如果用户去myapp/myServlet/other,我仍然希望我的servlet能够捕获.所以说,在servlet路径之后的通配符.我怎么能这样做?

servlets wildcard url-pattern path-parameter

8
推荐指数
1
解决办法
7148
查看次数

Servlet过滤器URL映射

如何将过滤器映射到URL的根目录?我正在使用Tomcat 7.0.2并将应用程序部署为ROOT.war.欢迎页面是sign_in.xhtml.每当客户端发送对站点根目录的请求(即仅域名),或者客户端请求sign_in.xhtml时,我想运行过滤器.这是我到目前为止:

  <filter>
        <filter-name>My filter</filter-name>
        <filter-class>com.myApp.myFilter</filter-class>        
    </filter>
    <filter-mapping>
        <filter-name>My filter</filter-name>
        <url-pattern>/sign_in.xhtml</url-pattern>
    </filter-mapping>
Run Code Online (Sandbox Code Playgroud)

直接请求sign_in.xhtml,成功调用过滤器,但我不知道如何获取root用户调用过滤器的请求.根据Servlet规范(3.0版)

<url-pattern>/</url-pattern>
Run Code Online (Sandbox Code Playgroud)

映射到默认servlet,空字符串映射到根.以下是规范中的相关部分:

"空字符串("")是一个特殊的URL模式,它完全映射到应用程序的上下文根,即http:// host:port //形式的请求.在这种情况下,路径信息是'/'和servlet路径和上下文路径是空字符串("")."

但是,以下两个url模式都会导致Tomcat抛出异常.

<url-pattern></url-pattern>
<url-pattern>""</url-pattern>
Run Code Online (Sandbox Code Playgroud)

如果有人能够对此有所了解,我将非常感激.谢谢.

安德鲁

java servlets url-pattern servlet-filters

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

django - 可选url参数的正则表达式

我在django中有一个可以接受许多不同过滤器参数的视图,但它们都是可选的.如果我有6个可选的过滤器,我是否真的必须为6的每个组合编写URL或者有没有办法定义url的哪些部分是可选的?

为了给你一个只有2个过滤器的例子,我可以拥有所有这些url的可能性:

/<city>/<state>/
/<city>/<state>/radius/<miles>/
/<city>/<state>/company/<company-name>/
/<city>/<state>/radius/<miles>/company/<company-name>/
/<city>/<state>/company/<company-name>/radius/<miles>/
Run Code Online (Sandbox Code Playgroud)

所有这些网址都指向相同的视图,唯一需要的参数是城市和州.使用6个过滤器,这变得难以管理.

做我想做的最好的方法是什么?

python django url-pattern urlconf

7
推荐指数
2
解决办法
5052
查看次数

使用斜杠分隔的多个(两个)通配符的Servlet映射

我试图映射一个匹配两者的servlet模式

/server/abcDef/1432124/adfadfasdfa 
Run Code Online (Sandbox Code Playgroud)

/server/abcDef/abcd/12345
Run Code Online (Sandbox Code Playgroud)

值'1432124'和'abcd'不是固定的,可以是多个值.所以基本上我需要匹配/abcDef/*/*- 只有abcDef是固定的.

有没有办法让我映射这个?我真的在寻找以下内容:

<servlet-mapping>
    <servlet-name>abcDefServlet</servlet-name>
    <url-pattern>/server/abcDef/*/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

java web.xml servlets url-pattern

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

为什么我不能让我的静态目录与django 1.3一起使用?

这个问题很简单,但我无法弄清楚

添加到我的urlpatterns

url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/home/user/www/site/static'})
Run Code Online (Sandbox Code Playgroud)

我的main.css是:/home/user/www/site/static/css/main.css

当我访问http:// localhost:8000/static /

我得到:404:这里不允许目录索引.

当我访问http:// localhost:8000/static/css/main.css时

我得到:404:'css/main.css'找不到

我究竟做错了什么?

固定它:

url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT } ),
Run Code Online (Sandbox Code Playgroud)

在settings.py中

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = os.path.join(CURRENT_PATH, 'static') #=='/home/user/www/site/static'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/mystatic/'
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我唯一真正改变的是从STATIC_URL ='/ static …

python django static url-pattern web

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

如何解决 Django POST URL APPEND_SLASH 错误

我正在尝试将表单 POST 数据发送到下一页,但出现错误

您通过 POST 调用了此 URL,但该 URL 不以斜杠结尾,并且您设置了 APPEND_SLASH。Django 在维护 POST 数据时无法重定向到斜杠 URL。将表单更改为指向 127.0.0.1:8000/robustSearch/(注意结尾的斜杠),或在 Django 设置中设置 APPEND_SLASH=False。

我的 urls.py 文件

from django.urls import path
from . import views


urlpatterns = [
    path('', views.home, name='home'),
    path('search_titles', views.searchTitles, name='search_titles'),
    path('stats/', views.dataStats, name='stats'),

    path('robustSearch/', views.robustSearch, name='robustSearch'),
]
Run Code Online (Sandbox Code Playgroud)

和我的views.py 文件

def robustSearch(request):
    
    if request.method == 'POST':
        file = request.FILES['titles_file']
        df = pd.read_csv(file)
        df.dropna(inplace=True)
        counting = df.counts()
    context={
        'counting': counting,
    }
    return render(request, 'result_titles.html', context)
Run Code Online (Sandbox Code Playgroud)

我的 POST 表单文件是

<form action="robustSearch" method="POST" enctype="multipart/form-data">
{% csrf_token …
Run Code Online (Sandbox Code Playgroud)

python django form-post url-pattern

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