锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
娉ㄥ唽servlet/鏄犲皠servlet
web.xml涓?
<servlet>
<servlet-name>HelloWorldServlet</servlet-name> //娉ㄥ唽
<servlet-class>testservlet.HelloWorldServlet</servlet-class>
</servlet>
</servlet-mapping><servlet-mapping> //鏄犲皠
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</servlet-mapping><servlet-mapping> //澶氫釜鏄犲皠
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hd</url-pattern>
</servlet-mapping>
鍙互閫氳繃 http://host:port/context path/servlet/registered-servlet-name (璨屼技榪欑娌¤皟璇曞嚭鏉ワ紝姹椼傘傘?
浣跨敤閫氶厤絎?*
<url-pattern>/login/*</url-pattern> //url鍦板潃鍚庣殑login閮藉皢鐢ㄨ繖涓猻ervlet鏉ヨ姹?
<url-pattern>/*</url-pattern> //鎵浠ラ潪servlet鐨勯〉闈㈠拰鍏朵粬璺緞閮藉皢鐢ㄨ繖涓猻ervlet鏉ヨ姹傦紝濡傛灉鏈夎繖鏍風殑servlet錛屽皢琚紭鍏堛?br /><url-pattern>/servlet/*</url-pattern> //鐢ㄦ潵鍖歸厤 http://host:port/context path/servlet/registered-servlet-name 璁塊棶servlet妯″紡
鐢氳嚦鍙互 <url-pattern>*.jsp</url-pattern> <url-pattern>*.html</url-pattern> 榪欏彨鎵╁睍鏄犲皠
鍦╯ervlet涓漿鍙戣姹?br />protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out = response.getWriter();
out.println("Login ...");
RequestDispatcher dispather = null;
String param = request.getParameter("go");
if(param == null ){
throw new ServletException("Missing parameter!"); //涓嶇煡閬撹繖浜涘紓甯稿湪浣曞鎹曡幏
}else if(param.equals("h")){
dispather = request.getRequestDispatcher("/helloworld"); //瀹氫箟灝嗚杞彂浣嶇疆
//鎴栬?dispather = getServletContext().getNamedDispatcher(“娉ㄥ唽鐨勭被鍚?#8221;);
}else{
throw new ServletException("wrong parameter");
}
if(dispather != null){
dispather.forward(request,response); //榪涜杞彂
}else{
throw new ServletException("dispather = null!");
}
}
涓簑eb搴旂敤紼嬪簭鍒涘緩嬈㈣繋鏂囦歡
鍦╳eb.xml涓厤緗?br /><welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
闄愬埗瀵規煇浜泂ervlet鐨勮姹?br />鏈夋椂鎴戜滑鍙笇鏈涢氳繃璁よ瘉鐨勭敤鎴鋒墠鑳借姹傛煇浜泂ervlet鐨勮瘽錛屽氨鍙互鍦╳eb.xml涓潵榪涜鐩稿簲鐨勯厤緗紝鏉ヨ揪鍒版鐩殑銆?br />榪欏氨瑕佺敤鍒?lt;security-constraint></security-constraint>鍏冪礌銆?br />瀵逛簬tomcat錛屼腑web.xml浣跨敤security-constraint鍏冪礌闇瑕佸湪浣嶄簬<Tomcat-installation-directory>/conf/tomcat-users.xml鐨刋ML鏂囦歡涓垱寤虹敤鎴峰悕鍜屽瘑鐮併傛瘮濡備笅闈㈢殑榪欎釜tomcat-users.xml鏂囦歡錛?br /><?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,manager"/>
<user username="admin" password="admin" roles="admin"/>
</tomcat-users>
姝ML鐗囨鍖呮嫭涓涓猼omcat-users鏍瑰厓绱狅紝瀹冨寘鍚竴涓垨澶氫釜role鍜寀ser鍏冪礌銆?/p>
鐒跺悗鍦╓eb搴旂敤紼嬪簭鐨剋eb.xml涓垱寤簊ecurity-constraint銆乴ogin-config鍜宻ecurity-role鍏冪礌銆?/p>
<security-constraint>
<web-resource-collection>
<web-resource-name>HelloServlet</web-resource-name>
<url-pattern>/HelloServlet</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>This applies only to the "tomcat" security role</description>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>
鍏朵腑security-constraint鍏冪礌鍖呭惈涓涓垨澶氫釜web-resource-collection鍏冪礌錛屽畠鏄弿榪癢eb搴旂敤紼嬪簭涓殑鍝簺web璧勬簮鍙楀埌鎸囧畾瀹夊叏闄愬埗鐨勪繚鎶ゃ俬ttp-method鍏冪礌鎸囧畾瀹夊叏闄愬埗瑕嗙洊鐨凥TTP鏂規硶銆備笂闈㈢殑渚嬪瓙涓紝褰撴垜浠/HelloServlet鐨凣ET鎴朠OST璇鋒眰鏃跺皢瑙﹀彂閰嶇疆鐨勫畨鍏ㄦ満鍒躲?br />auth-constraint鍏冪礌鐢ㄤ簬鎻忚堪鍏佽璁塊棶Web緇勪歡鐨勫畨鍏ㄨ鑹層傛渚嬩腑瀹夊叏瑙掕壊鐨勪緥瀛愭湁tomcat銆乵anager銆乤dmin銆傝屽彧鏈夊綋浣滀負admin瑙掕壊鐨勭敤鎴鋒墠鍙互璁塊棶HelloServlet銆?/p>
Web搴旂敤紼嬪簭閫氳繃login-config鍏冪礌鏉ヨ璇佺敤鎴鳳紝騫剁‘璁よ鐢ㄦ埛鏄惁涓烘紜殑瑙掕壊銆?br />longin-config鍖呭惈鐨則ransport-guarantee瀛愬厓绱犵敤鏉ユ寚瀹氳璇佹柟娉曪紝BASIC鏄竴縐嶅父瑙佺殑Web璁よ瘉鏂瑰紡錛屾祻瑙堝櫒緇欑敤鎴鋒彁紺轟竴涓璇濇錛岃姹傝緭鍏ョ敤鎴峰悕鍜屽瘑鐮侊紝闅忓悗Tomcat灝嗙粰鍑虹殑鐢ㄦ埛鍚嶅拰瀵嗙爜涓巘omcat-users.xml涓殑鐢ㄦ埛鍚嶅拰瀵嗙爜榪涜姣旇緝錛岀劧鍚庝嬌鐢ㄥ墠闈㈢殑security-constraint閰嶇疆鏉ョ‘瀹氱敤鎴鋒槸鍚﹀彲璁塊棶鍙椾繚鎶ょ殑servlet銆?/p>
錛堥櫎BASIC澶栵紝榪樺彲浠ユ槸FORM銆丆LIENT-CERT銆丏IGEST絳夛級
鍏跺疄榪欑璁よ瘉鏂規硶瀹為檯涓婃湁涓や釜姝ラ錛?br />1銆佹鏌ユ彁渚涚殑鐢ㄦ埛鍚嶅拰瀵嗙爜鏄惁姝g‘銆?br />2銆佸垽鏂敤鎴鋒槸鍚︽槧灝勫埌鐗瑰畾鐨勫畨鍏ㄨ鑹層備緥濡傦紝鐢ㄦ埛鍙兘鎻愪緵浜嗘紜殑鐢ㄦ埛鍚嶅拰瀵嗙爜錛屼絾娌℃湁鏄犲皠鍒扮壒瀹氱殑瀹夊叏瑙掕壊錛屼篃灝嗚紱佹璁塊棶鐗瑰畾鐨刉eb璧勬簮銆?br />