熟悉的代码:
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
我的理解是/*地图http://host:port/context/*.
怎么样/?它肯定不会映射到http://host:port/contextroot.事实上,它会接受http://host:port/context/hello,但拒绝http://host:port/context/hello.jsp.
任何人都可以解释如何http://host:port/context/hello映射?
当我们提到路径时,两个星号而不是一个星号之间的区别是什么?
之前我正在调试我的Spring 3项目.我试图添加一个.swf
<spring:url var="flashy" value="/resources/images/flash.swf"/>
我的web.xml的ResourceServlet看起来像
<servlet-name>Resource Servlet </servlet-name>
<url-pattern>/resources/*</url-pattern>
Run Code Online (Sandbox Code Playgroud)
但不幸的是我收到了这个错误:
WARN org.springframework.js.resources.ResourceServlet - An attempt to access a protected resource at /images/flash.swf was disallowed.
我发现它真的很奇怪,因为images文件夹中的所有图像都被访问了但是我的.swf怎么会受到"保护"?
后来,我决定改变/resources/*到/resources/**最后和它的工作.我的问题是......为什么?
我有一个与REST网址设计相关的问题.我在这里找到了一些相关的帖子:同一资源的不同RESTful表示,这里:RESTful url来获取不同字段的GET资源,但响应并不十分清楚最佳实践是什么以及为什么.这是一个例子.
我有用于表示"用户"资源的REST URL.我可以使用id或电子邮件地址获取用户,但两者的URL表示形式保持不变.通过大量的博客和书籍,我看到人们已经以不同的方式做到了这一点.例如
在书中和stackoverflow上的某个地方阅读这个练习(我似乎无法再找到链接)
GET /users/id={id}
GET /users/email={email}
Run Code Online (Sandbox Code Playgroud)
在很多博客上阅读这种做法
GET /users/{id}
GET /users/email/{email}
Run Code Online (Sandbox Code Playgroud)
查询参数通常用于过滤网址所代表的资源的结果,但我也看到了这种做法
GET /users?id={id}
GET /users?email={email}
Run Code Online (Sandbox Code Playgroud)
我的问题是,在所有这些实践中,对于使用api的开发人员来说哪一个最有意义?为什么?我相信在REST网址设计和命名约定方面没有任何规则,但我只是想知道应采取哪条路线来帮助开发人员更好地理解apis.
所有帮助赞赏!
我在我的JSF应用程序中使用Servlet过滤器.我的应用程序中有三组Web页面,我想在Servlet过滤器中检查这些页面的身份验证:
我的文件夹
/Admin/ *.xhtml
/Supervisor/*.xhtml
/Employee/*.xhtml
Run Code Online (Sandbox Code Playgroud)
我写得web.xml像
<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.ems.admin.servlet.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Employee/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Admin/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/Supervisor/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
但要求如此
http://localhost:8080/EMS2/faces/Html/Admin/Upload.xhtml
Run Code Online (Sandbox Code Playgroud)
没有进入过滤器.
我必须为这3个文件夹提供安全性.
如何解决这个问题呢 ?
一直试着学习JSF,有时候我看到的URL *.jsf有时是*.xhtml或者/faces/*.请问有人填写我的知识吗?当我使用Facelet创建JSF时,文件扩展名是.xhtml,所以.jsfURL扩展来自哪里?
我已web.xml为我的应用程序手动配置.现在,我在运行我的应用程序时遇到了问题.我正试图servlet从我的jsp页面访问我的.但是,它正在抛出错误page not found.
servlet位于文件夹下方
<application folder>/WEB-INF/classes/<package>
Run Code Online (Sandbox Code Playgroud)
那么,究竟应该是在Servlet中的条目url-pattern和servlet-mapping.这样,servlet可以通过URL访问.
我正在按照我的urlpatterns所在的教程:
urlpatterns = patterns('',
url(r'^passwords/$', PasswordListView.as_view(), name='passwords_api_root'),
url(r'^passwords/(?P<id>[0-9]+)$', PasswordInstanceView.as_view(), name='passwords_api_instance'),
...other urls here...,
)
Run Code Online (Sandbox Code Playgroud)
该PasswordListView和PasswordInstanceView应该是基于类的观点.我无法弄清楚name参数的含义.它是传递给视图的默认参数吗?
我正在尝试将我的webapp从Django 1.5升级到Django 1.6,并且作为我的django应用程序集的一部分,我正在使用django-registration 1.0.
升级到Django 1.6后,我的应用程序无法识别内置的身份验证视图.它们都集成在Django登记可以看出这里,但他们停止工作.
Django发行说明描述了这些视图应该集成的方式的变化,将其与注册应用程序中看起来很好的源代码进行比较.
我正在介绍注册网址如下:
urlpatterns = patterns('',
...,
url(r'^accounts/', include('registration.backends.default.urls')),
)
Run Code Online (Sandbox Code Playgroud)
我在请求内置网址时遇到错误,例如 /accounts/password/change/
django.core.urlresolvers.NoReverseMatch
NoReverseMatch: Reverse for 'password_change_done' with arguments '()' and keyword arguments '{}' not found. 0 pattern(s) tried: []
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我会得到无反向匹配错误?
我是django的新手,我还在学习的其中一件事是url_patterns.我设置了一个页面应用程序来处理根路径(http://www.mysite.com)以及一些静态页面,如about页面.我想出了如何为根路径设置url模式,但我无法让网站将路径'/ about'指向页面"about"视图.
这是我的主要urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
urlpatterns = patterns('',
url(r'^polls/', include('polls.urls')),
url(r'^$', 'pages.views.root'),
url(r'^/', include('pages.urls')),
)
Run Code Online (Sandbox Code Playgroud)
这是我的网页urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('pages.views',
url(r'^about', 'about'),
)
Run Code Online (Sandbox Code Playgroud)
这是我的页面views.py
# Create your views here.
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.http import HttpResponse, HttpResponseRedirect
from django.core.urlresolvers import reverse
def root(request):
return render_to_response('pages/root.html',context_instance=RequestContext(request))
def about(request):
return render_to_response('pages/about.html',context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
如果我更改主urls.py文件r'^a/', include('pages.urls')然后路径'/ a/about'指向about动作..所以我认为它必须是我在这个文件中写url模式的方式的问题.但是,我无法弄清楚如何改变它.有人可以帮忙吗?
我对Spring安全性中的URL模式有点混淆.因为,在servlet核心http安全性中,/和/*url模式用于指定一个或多个目录./用于一个目录,/*用于许多目录.但是在Spring-security中,/**还介绍了/**url-pattern在安全性方面的主要目的是什么.