我可以通过 web.xml 将所有请求定义为类似于 /* 的 servlet 吗?
Can I define all requests via web.xml to servlet something like /*?
所以我想处理对 Servlet 的所有请求。但是,如果我将通配符 /* 放入我的 web.xml 中,然后进入无限循环:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
而且我希望我所有的请求都不要以 .jsp 结尾,而是以 /main、/main/level、/main/level/1 等结尾。
问题是如何避免那里的无限循环?
<servlet>
<servlet-name>main</servlet-name>
<servlet-class>main.Main</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
发现如果我想通过 servlet 处理所有请求,我可以创建我的过滤器,然后我可以使用
<filter>
<filter-name>main</filter-name>
<filter-class>main.Main</filter-class>
</filter>
<filter-mapping>
<filter-name>main</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
之后我可以将 req
和 resp
对象传递给我想要的人。
所以我想处理对 Servlet 的所有请求。但是,如果我将通配符 /* 放入我的 web.xml 中,然后进入无限循环:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
而且我希望我所有的请求都不要以 .jsp 结尾,而是以 /main、/main/level、/main/level/1 等结尾。 问题是如何避免那里的无限循环?
<servlet>
<servlet-name>main</servlet-name>
<servlet-class>main.Main</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
发现如果我想通过 servlet 处理所有请求,我可以创建我的过滤器,然后我可以使用
<filter>
<filter-name>main</filter-name>
<filter-class>main.Main</filter-class>
</filter>
<filter-mapping>
<filter-name>main</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
之后我可以将 req
和 resp
对象传递给我想要的人。