Java 以web.xml以外的方式启用/禁用servlet

Java 以web.xml以外的方式启用/禁用servlet,java,jakarta-ee,tomcat,servlets,web.xml,Java,Jakarta Ee,Tomcat,Servlets,Web.xml,我想知道除了web.xml之外,是否有其他方法可以启用或禁用servlet(或者至少是servlet的映射)。我有多种类型的服务器使用相同的web.xml(我不能改变这个),所以这就是为什么启用/禁用servlet的另一种方法会很有用 谢谢, Teo您可以在servlet 3.0以后的版本中使用注释,不确定这是否符合您的要求,如果这不是您想要的方式,请发表评论 @WebServlet("/hello") public class HelloServlet extends HttpServlet

我想知道除了web.xml之外,是否有其他方法可以启用或禁用servlet(或者至少是servlet的映射)。我有多种类型的服务器使用相同的web.xml(我不能改变这个),所以这就是为什么启用/禁用servlet的另一种方法会很有用

谢谢, Teo

您可以在servlet 3.0以后的版本中使用注释,不确定这是否符合您的要求,如果这不是您想要的方式,请发表评论

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
// code code code
}
您可以在Servlet3.0以后的版本中使用注释,但不确定这是否符合您的要求,如果这不是您想要的方式,请发表评论

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
// code code code
}

据我所知,除了部署描述符之外,没有编程禁用servlet这样的事情

我处理这一问题的方式如下:

-我会在我的每个servlets service()方法中添加一条if语句,我希望控制对该方法的访问,例如:

if(MyCustomSecurity.isServletAccessible(request)){
  //here is your code that you have right now
}else{
  //redirect request to an error page maybe
}

-在MyCustomSecurity类中创建此方法isServletAccessible(),该方法将在是否允许用户访问servlet时返回布尔值。据我所知,除了部署描述符之外,不存在编程禁用servlet的情况

我处理这一问题的方式如下:

-我会在我的每个servlets service()方法中添加一条if语句,我希望控制对该方法的访问,例如:

if(MyCustomSecurity.isServletAccessible(request)){
  //here is your code that you have right now
}else{
  //redirect request to an error page maybe
}

-创建此方法isServletAccessible()在MyCustomSecurity类中,如果您使用的是Tomcat 7.x/servlet 3.0,则该类将根据是否允许用户访问servlet返回布尔值。如果您使用的是Tomcat 7.x/servlet 3.0,则可以通过编程方式添加servlet过滤器,以动态启用/禁用对某些servlet的访问,而无需接触web.xml文件或应用程序代码。

如果您正在使用Tomcat 7.x/Servlet 3.0,您可以通过编程方式添加一个Servlet筛选器,以动态启用/禁用对某些Servlet的访问,而无需接触web.xml文件或应用程序代码。

我只需创建一个web筛选器,它读取某种配置,并在特定的配置路径上传递或重定向


另一个选项是阻止安全层上的路径,例如Spring security(实际上它使用的是上面描述的内容)。

我只需要创建一个web筛选器,它读取某种配置,并在特定的配置路径上传递或重定向


另一个选项是阻止安全层上的路径,例如Spring security(实际上它使用了如上所述的内容)。

创建一个过滤器(一个实现
javax.servlet.Filter
的类),然后在
xml
属性文件中,甚至在
数据库中,怎么样,您可以添加用户可以访问或不能访问的servlet名称。

创建一个过滤器(一个实现
javax.servlet.Filter
的类)怎么样,然后在
xml
properties
文件中,甚至在
数据库中,您可以添加用户可以访问或不能访问的servlet名称。

您使用的是什么应用服务器?您使用的是什么应用服务器?