是否有机会缩短访问我的servlet的URL?
当前部署的URL为server:port/WebApp/myservlet
。
我想将其缩短为server:port/myservlet
servlet位于EAR存档内的WAR存档内。
WebApp.war / WEB-INF
中的web.xml内容<display-name>WebApp</display-name>
<servlet>
<description></description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.company.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
这里的Servlet代码:
@WebServlet("/*")
public class MyServlet extends HttpServlet implements Servlet {
public MyServlet() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// some magic here
}
}
P.S。:我需要它在JBoss和Websphere上工作。
编辑:
我道歉,我忘了提到我无法使用application.xml
更改上下文。
答案 0 :(得分:1)
您需要将应用程序上下文根目录从/WebApp
更改为/
,而不是servlet映射。最好的方法是在application.xml
文件中定义它,如下所示:
<application>
<display-name>MyApplication</display-name>
<module>
<web>
<web-uri>WebApp.war</web-uri>
<context-root>/</context-root>
</web>
</module>
</application>
<强>更新强>
如果您没有application.xml
,那么您需要专有描述符
JBoss - jboss-web.xml
请参阅here
<jboss-web>
<context-root>/</context-root>
</jboss-web>
WebSphere - ibm-web-ext.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-ext
xmlns="http://websphere.ibm.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-web-ext_1_1.xsd"
version="1.1">
<context-root uri="/"/>
</web-ext>