我有一个jetty servlet页面集,所有页面都已设置并正在运行。
要访问登录页,您必须输入完整的urlhttp://127.0.0.1/console/console.jsp
一切对我的上下文来说都很好&";控制台";。
我想为根url添加一个处理程序,这样我就可以放一个主机,它就会重定向到上面的url。
我做到了,只是似乎每个请求都通过我的根路径处理程序,它会把所有其他请求都扰乱到真正的jsp页面。
我该如何阻止它这样做,或者我该如何做?
我的web.xml…
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<description></description>
<servlet-name>console</servlet-name>
<servlet-class>net.console.Consoleservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>console</servlet-name>
<url-pattern>/console</url-pattern>
</servlet-mapping>
<servlet>
<description></description>
<servlet-name>redirect</servlet-name>
<servlet-class>net.console.Redirectservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>redirect</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
精简版的重定向servlet。。。
public class Redirectservlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet
{
static final long serialVersionUID = 1L;
public Redirectservlet()
{
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
try
{
String redirect_path = "http://127.0.0.1/console/console.jsp";
response.sendRedirect(redirect_path);
}
catch (Exception e)
{
}
}
尝试在WEB-INF/web.xml
中使用欢迎文件而不是RedirectServlet
。。。
<web-app ...>
<welcome-file-list>
<welcome-file>console/console.jsp</welcome-file>
</welcome-file-list>
... other entries
</web-app>
如果这不起作用,请考虑将其设为RedirectFilter
,并且仅在request.getRequestURI()
仅在应重定向的确切请求URI字符串匹配列表中时发送重定向。