在web應(yīng)用中,對(duì)頁面的訪問控制通常通過程序來控制,流程為:
創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為宿城等服務(wù)建站,宿城等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為宿城企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
登錄 - 設(shè)置session - 訪問受限頁面時(shí)檢查session是否存在,如果不存在,禁止訪問
對(duì)于較小型的web應(yīng)用,可以通過tomcat內(nèi)置的訪問控制機(jī)制來實(shí)現(xiàn)權(quán)限控制。采用這種機(jī)制的好處是,程序中無需進(jìn)行權(quán)限控制,完全通過對(duì)tomcat的配置即可完成訪問控制。
為了在tomcat頁面設(shè)置訪問權(quán)限控制,在項(xiàng)目的WEB-INFO/web.xml文件中,進(jìn)行如下設(shè)置:
Java代碼 復(fù)制代碼
1. web-app
2. !--servlet等其他配置--
3. security-constraint
4. web-resource-collection
5. web-resource-nameMy Test/web-resource-name
6. url-pattern/admin/*/url-pattern
7. /web-resource-collection
8. auth-constraint
9. role-namerole1/role-name
10. role-nametomcat/role-name
11. /auth-constraint
12. /security-constraint
13. login-config
14. auth-methodBASIC/auth-method
15. realm-nameMy Test/realm-name
16. /login-config
web-app
!--servlet等其他配置--
security-constraint
web-resource-collection
web-resource-nameMy Test/web-resource-name
url-pattern/admin/*/url-pattern
/web-resource-collection
auth-constraint
role-namerole1/role-name
role-nametomcat/role-name
/auth-constraint
/security-constraint
login-config
auth-methodBASIC/auth-method
realm-nameMy Test/realm-name
/login-config
其中,url-pattern中指定受限的url,可以使用通配符*,通常對(duì)整個(gè)目錄進(jìn)行訪問權(quán)限控制。
auth-constraint中指定哪些角色可以訪問url-pattern指定的url,在role-name中可以設(shè)置一個(gè)或多個(gè)角色名。
使用的角色名來自tomcat的配置文件$/conf/tomcat-users.xml。
login-config中設(shè)置登錄方式,auth-method的取值為BASIC或FORM。如果為BASIC,瀏覽器在需要登錄時(shí)彈出一個(gè)登錄窗口。如果為FORM方式,需要指定登錄頁面和登錄失敗時(shí)的提示信息顯示頁面。
使用FORM方式的配置樣例如下:
Java代碼 復(fù)制代碼
1. login-config
2. auth-methodFORM/auth-method
3. realm-nameExample Form-Based Authentication Area/realm-name
4. form-login-config
5. form-login-page/login.jsp/form-login-page
6. form-error-page/error.jsp/form-error-page
7. /form-login-config
8. /login-config
login-config
auth-methodFORM/auth-method
realm-nameExample Form-Based Authentication Area/realm-name
form-login-config
form-login-page/login.jsp/form-login-page
form-error-page/error.jsp/form-error-page
/form-login-config
/login-config
其中的form-login-page指定登錄頁面url,form-error-page指定登錄失敗時(shí)的提示頁面url。
登錄頁面中,form的action,以及其中的用戶名和密碼兩個(gè)參數(shù)的名稱,都應(yīng)取固定的值。登錄的后臺(tái)處理程序?yàn)閖_security_check;用戶名和密碼的參數(shù)名稱分別為:j_username和j_password。
如下是登錄頁面(如:login.jsp)的一段示例代碼:
Java代碼 復(fù)制代碼
1. form method="POST" action='%= response.encodeURL("j_security_check") %'
2. table border="0" cellspacing="5"
3. tr
4. th align="right"Username:/th
5. td align="left"input type="text" name="j_username"/td
6. /tr
7. tr
8. th align="right"Password:/th
9. td align="left"input type="password" name="j_password"/td
10. /tr
11. tr
12. td align="right"input type="submit" value="Log In"/td
13. td align="left"input type="reset"/td
14. /tr
15. /table/form
importjava.io.IOException;/××只能給當(dāng)前用戶賦予對(duì)該文件的權(quán)限,調(diào)用createNewFile()方法默認(rèn)的權(quán)限是644.×/publicclassFilePermission{publicstaticvoidmain(String[]args){try{Filefile=newFile("/home/test3.txt");if(
從你現(xiàn)在給的代碼來看,兩個(gè)類的代碼都沒有package頭,也就是說對(duì)于這兩個(gè)類來說都是在同一個(gè)默認(rèn)包下的,而且,你所給出的只有.java文件的路徑,沒有給.class文件的路徑,只要兩個(gè).class文件都在classpath路徑中,就可以訪問的到