Dev*_*xit 1 java web.xml servlets java-ee
我在这两条线web.xml
<url-pattern>/</url-pattern> : Index Servlet
和
<url-pattern>/login</url-pattern> : Login Servlet
但whem我打开http://localhost:8084/login/,它去Index Servlet,当我打开http://localhost:8084/login,它去Login Servlet.和?
有什么区别吗?
我的http://localhost:8084/login/http://localhost:8084/loginweb.xml
<servlet>
<servlet-name>Index</servlet-name>
<servlet-class>Index</servlet-class>
</servlet>
<servlet>
<servlet-name>Login</servlet-name>
<servlet-class>Login</servlet-class>
</servlet>
和
<servlet-mapping>
<servlet-name>Index</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
URL模式/具有特殊含义.它表示"默认Servlet"URL模式.因此,每个请求其不不匹配任何其他更具体的网址模式web.xml最终将在这个servlet结束.请注意,这也包括静态文件,如普通的HTML/CSS/JS和图像文件!通常,servlet容器本身已经提供了"Default Servlet"(参见例如Tomcat的DefaultServlet文档).覆盖您自己的webapp中的"Default Servlet"应该非常谨慎,绝对不是这样.
您需要为索引servlet提供不同的URL模式.它应该与你定义的相同<welcome-file>.
所以万一
<welcome-file-list>
<welcome-file>index</welcome-file>
</welcome-file-list>
Run Code Online (Sandbox Code Playgroud)
您需要按如下方式映射索引servlet
<servlet-mapping>
<servlet-name>Index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
对于您的特定目的,使用其他答案建议的URL重写过滤器是不必要的.
| 归档时间: |
|
| 查看次数: |
23316 次 |
| 最近记录: |