在某些进程之后,我有一个自定义路由器和forward
对指定servlet的请求。所以servlet在web.xml中实际上是私有的,但路由器本身就是私有的。
是否可以不为servlet设置url-pattern并使其无法从Web访问? 目前我正在使用大型哈希作为url-pattern并检查直接请求中不存在的一些标志。
答案 0 :(得分:1)
由于您的类实际上并未用作Servlet,我建议它们不是作为servlet实现的。远离web.xml
中的映射,而是使用HasMap<String, Class>
代替映射。
答案 1 :(得分:1)
回答你的非常好的评论,你在这里:
@WebServlet(urlPatterns = "/WEB-INF/test")
public class Test extends HttpServlet
{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
resp.getWriter().println("helloooooooooooo");
}
}
和
@WebServlet(urlPatterns = "/router")
public class Router extends HttpServlet
{
private static final long serialVersionUID = 1L;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
request.getRequestDispatcher("/WEB-INF/test").forward(request, response);
}
}
这可以完美:
虽然无法访问测试servlet
然而,我建议你更好地帮助你的人:)