在tomcat下 安装了若干程序,结构如下
\webapps
 \login
 \app1
 \app2
 \app3
 ...
login为登入程序,要使用其他appx,必须 已经 从login登陆。这组程序里使用了single sign on。在login的web.xml里使用 了
<login-config>
  <auth-method>FORM</auth-method>
  <form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/login.jsp?retry=true</form-error-page>
  </form-login-config>
</login-config>
就是说定义了login page和login失败的page,完全没有问题。但是其他 appx, 偶也其他在没有登入login程序时能转到login程序的login page,因为整个系统只有一个login page。
但是找不到捷径,目前方法如下,
在譬如app1的web.xml定义类似 login程序的
<login-config>
  <auth-method>FORM</auth-method>
  <form-login-config>
    <form-login-page>/loginforward.html</form-login-page>
    <form-error-page>/fail_loginforward.html</form-error-page>
  </form-login-config>
</login-config>
然后在对应的html里面使用
<meta http-equiv="refresh" content="0;URL=../login/">请问有没有其他的方法?
感觉应该是蛮常见的问题, 但google了没有找到满意的答案
多谢帮忙!

解决方案 »

  1.   

    能不能在login.jsp上做文章,用绝对路径转发到各个项目上呢
      

  2.   

    你的Tomcat下是多个工程文件,想要在工程中使用别的工程中的文件,可以使用绝对路径
      

  3.   

    多谢楼上两位. 目前其实就是用相对路径在转了,但是
    <form-login-page>
    <form-error-page>
    的定义必须要由"/"开头,所以无法在这里直接定义相对或绝对路径,所以总要饶一圈。各个程序应该是不认识彼此的,所以是不是有办法在tomcat容器里面就定义什么呢?