我在寫一個簡單的小應用程序,它是一個預訂系統。在系統中有兩個角色:管理員和用戶。所有請求都通過唯一的servlet進行工作。 Index.jsp
(用戶和管理員的登錄頁面)在沒有幫助的情況下工作。所以,我有起始URL看起來像這樣:在Java EE web應用程序中製作自定義URL
本地主機:8080/[AppName的] /index.jsp
爲了確保安全,我寫了一個過濾器,將不會允許匿名用戶將任何網頁,除index.jsp外;管理員進入用戶頁面,用戶進入管理頁面。但問題是,我不能正確映射過濾器,因爲在我的應用程序的所有網址看起來像:
本地主機:8080/[AppName的]/servlet的命令= [命令名]
因爲這一點,這樣的映射,如(當然,在web.xml過濾器已經這個映射之前描述):
<filter-mapping>
<filter-name>Security</filter-name>
<url-pattern>/servlet?command=[commandName]</url-pattern>
</filter-mapping>
不工作,我不喜歡它,因爲在這種情況下,有必要規定應用程序的所有命令。 在這方面,我有一個想法,使URL時smbdy登錄這樣的:
本地主機:8080/[AppName的] /用戶 - 用戶
本地主機:8080/[AppName的]/admin - for admin
在web-inf文件夾中,我有內部文件夾「pages」,其中有幾個內部文件夾:「error」,「admin」和「user」,它們爲這些頁面保留jsp頁面角色和錯誤。
如何實現所提出的想法?我懷疑這是很微不足道的,但我沒有找到答案,因爲我甚至不知道如何命名我的問題。
這[頁碼](http://docs.oracle。 com/javaee/1.4/tutorial/doc/Security5.html)可能會有所幫助。你可能也想看看這個[問題](http://stackoverflow.com/questions/6202778/am-i-doing-the-servlet-filter-correctly)。 – Dallas 2012-01-16 00:29:00
感謝您的聯繫,但他們不是我要找的。 第一個講述認證類型,第二個講述servlet處理用戶請求的情況。不幸的是,他們兩個都沒有製作自定義URL的解決方案。 – juniorIce 2012-01-16 13:30:38
爲什麼不將Filter過濾器映射到Servlet本身,而不是url模式? – 2012-01-17 14:12:26