我想知道是否有辦法啓用或禁用web.xml以外的servlet(或至少映射servlet)。我有多種服務器使用相同的web.xml(我無法改變這種情況),所以這就是爲什麼另一種啓用/禁用servlet的方式會很有用。以web.xml以外的方式啓用/禁用servlet
感謝, 張志賢
我想知道是否有辦法啓用或禁用web.xml以外的servlet(或至少映射servlet)。我有多種服務器使用相同的web.xml(我無法改變這種情況),所以這就是爲什麼另一種啓用/禁用servlet的方式會很有用。以web.xml以外的方式啓用/禁用servlet
感謝, 張志賢
你可以使用@WebServlet
註釋使用Servlet 3.0開始,不知道這是否會爲您的要求工作,請評論,如果這不是你想要
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
// code code code
}
看起來很酷,很遺憾,使用Servlet 3.0還沒有選擇... – Sandman 2012-08-03 07:57:55
據我所知,不存在程序化禁用其他部署描述符以外的其他servlet的情況。
,我會處理這一問題的方式如下:
-I將if語句中,我想控制訪問諸如我的每一個servlet的服務()方法添加:
if(MyCustomSecurity.isServletAccessible(request)){
//here is your code that you have right now
}else{
//redirect request to an error page maybe
}
- 創建這種方法isServletAccessible()在MyCustomSecurity類將返回一個布爾值在天氣允許用戶acceess servlet或不
如果您使用的是Tomcat 7.x版/ Servlet的3.0,你可以通過編程添加一個servlet過濾器r動態啓用/禁用對某些servlet的訪問,而不觸及web.xml文件或應用程序代碼。
我只是創建一個Web過濾器,讀取某種配置,並傳遞或重定向特定的,配置的路徑。
另一種選擇是阻止安全層上的路徑,例如Spring Security(實際上它使用了上面描述的東西)。
什麼有關創建過濾(實現javax.servlet.Filter
類),然後在xml
或properties
文件,甚至在database
,您可以添加的servlet用戶可以訪問或無法訪問的名字。
你正在使用哪個應用服務器? – MaVRoSCy 2012-08-03 08:10:16
我正在使用Tomcat 7 – Sandman 2012-08-03 08:11:47