0

私はこの構造のWebアプリを使用しています:

main/index.jsp
main/first/index.jsp
main/second/index.jsp

main / index.jspにログインフォームがあり、入力するユーザー/パスの種類に応じて、セッション変数とリダイレクトを有効にします。実際には、request.getRequestDispatcher("/firstを使用しています。 /index.jsp ")およびrequest.getRequestDispatcher(" / second / index.jsp ")を使用して、ログインページからリダイレクトします。2つのWebアプリ(1番目と2番目)は、セッション変数が有効になっている場合にのみ有効になり、両方に次のようなリンクを介して渡される変数があります。

main/first/index.jsp?id=1&var=2

私の現在の問題は、main / index.jspから他の2つのWebアプリケーションの1つに渡しても、URLが変更されないことです。main / second / index.jspである必要がありますが、それでもmain / index.jspであり、そのページ内のすべてのリンクが混乱しているため(フォルダーに相対的であるため)、変数を渡すリンクを使用しようとするとリンクを介して私はこれを取得しません:

main/second/index.jsp?id=2&var=1

でも、これ:

main/index.jsp?id=2&var=1

リンクにホームパスを配置してこの問題を解決しようとしましたが、1回の「反復」の後、2番目のURLは正しいURLになるため、2番目のパスは次のようになります。

main/second/second/index.jsp?id=3&var=1

まだ役に立たない、間違っている。

request.getRequestDispatcher()を使用する代わりにresponse.sendRedirect()を使用しようとしましたが、このソリューションではセッション変数が失われます。リダイレクト後、すべてが失われます。

誰かが私を助けてくれますか?ありがとうございました。

4

1 に答える 1

0

私はいくつかのテストの後でこれを解決しました。次のようにURLを介して変数を渡すときに、完全なアドレスを使用する必要がありました。

<a href="/main/first/index.jsp?id=1"> One, 1</a>

これを使用する代わりに:

<a href="index.jsp?id=1"> One, 1</a>
于 2012-12-20T16:29:50.043 に答える