在 web.xml 中将 servlet 设置为默认主页 [英] Set servlet as default home page in web.xml
问题描述
我在 web.xml
中注册了一个 servlet,如下所示.
I've a servlet registered in web.xml
as below.
<servlet>
<servlet-name>Manager</servlet-name>
<servlet-class>Manager</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern>/RequestManager</url-pattern>
</servlet-mapping>
基本上,当我打开 http://localhost:8080/appname
时,我想调用这个 servlet 作为我的默认主页.因此,我尝试将其注册为与下面相同的 web.xml
中的欢迎文件:
Basically I want to call this servlet as my default home page when I open http://localhost:8080/appname
. So, I tried registering it as welcome file in same web.xml
as below:
<welcome-file-list>
<welcome-file>Manager</welcome-file>
</welcome-file-list>
但是,当我运行该项目时,我收到一条错误消息,提示请求的资源不可用".但是,如果我用我的 servlet URL 模式在 url 中写入,它就可以正常工作.
But, when I run the project, I get an error saying "requested resource not available". However, if I write in the url with my servlet URL pattern, it works fine.
推荐答案
指定一个空字符串作为 servlet 的 URL 模式.
Specify an empty string as servlet's URL pattern.
<servlet>
<servlet-name>Manager</servlet-name>
<servlet-class>Manager</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Manager</servlet-name>
<url-pattern></url-pattern>
</servlet-mapping>
另见:
- servlet 映射 url 模式中/和/* 的区别一个>
与具体问题无关,
应该代表一个 URL 路径,而不是一个 servlet 名称.如果您指定
,它会起作用.但这会影响所有子文件夹.实际上,
与您想象的主页文件"具有完全不同的含义.它表示在请求文件夹时应提供的默认资源.
Unrelated to the concrete problem, the <welcome-file>
should represent an URL path, not a servlet name. It'd have worked if you specifed <welcome-file>RequestManager</welcome-file>
. But this affects all subfolders. Actually, the <welcome-file>
has an entirely different meaning than "home page file" you've had in mind. It represents the default resource which should be served when a folder is been requested.
这篇关于在 web.xml 中将 servlet 设置为默认主页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!