想用tomcat实现自动的FORM验证,完成配置后,整个网站却不能访问,显示“The requested resource () is not available.”。下面是一系列配置代码。web.xml:<servlet>
  <servlet-name>ID_Code_Gen</servlet-name>
  <servlet-class>security.validate.ID_Code_Gen</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>ID_Code_Gen</servlet-name>
  <url-pattern>/ID_Code_Gen</url-pattern>
 </servlet-mapping> <welcome-file-list>
  <welcome-file>register.jsp</welcome-file>
 </welcome-file-list>
 
 <!-- 定义安全验证。 -->
 <security-constraint>
  <web-resource-collection>
   <web-resource-name>personal</web-resource-name>
   <url-pattern>/personal/*.jsp</url-pattern>
   <http-method>GET</http-method>
   <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
   <role-name>admin</role-name>
  </auth-constraint>
 </security-constraint> <login-config>
  <auth-method>FORM</auth-method>
  <form-login-config>
   <form-login-page>/register.jsp</form-login-page>
   <form-error-page>/error.jsp</form-error-page>
  </form-login-config>
 </login-config> <security-role>
  <role-name>admin</role-name>
 </security-role>
server.xml:<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="org.gjt.mm.mysql.Driver" connectionURL="jdbc:mysql://localhost/ilearning" connectionName="root" connectionPassword="85121340" userTable="users" userNameCol="u_name" userCredCol="passw" userRoleTable="user_role" roleNameCol="role" /> 所用的数据库是mysql,相关的两个表users和user_role已建好。
似乎是web.xml里出了问题。因为我把配置验证的相关代码删去后,应用可照常访问,一加上就不行了。

解决方案 »

  1.   

    应该是这句把
    <url-pattern>/personal/*.jsp</url-pattern>
    改成
    <url-pattern>/personal/*</url-pattern>看看
      

  2.   

    谢谢,用了这个方法已经出来了。还有一个问题能不能帮我解答一下。上面说的/personal/*.jsp这样的后缀型的url模式,我似乎在servlet-mapping里看到过,在这里不能用吗?
      

  3.   

    虽然我也不理解为什么不能,但是事实就是如此,包括filter/servlet-mapping
      

  4.   

    personal/里面最好不要再放css/js/img了,否则容易由于
    <script src="/personal/...js" 
    导致登录