0

ログインページのフォームから(POST経由で)ユーザー名とパスワードを取得するログインサーブレットがあります。認証されたら、ようこそページに移動しようとしています。しかし問題は、私のコードは IE8 では問題なく動作しますが、Firefox と Chrome では空白のページが表示されるだけです。ソースの表示をクリックすると、すべての正しい HTML が表示されますが、実際には何も表示されません。アドレス バーからウェルカム ページを直接要求すると、FF と chrome の両方で正しく表示されます。

以下に私のコードを投稿し、必要に応じて変更/ベストプラクティスを教えてください...これは私にとってすべて新しいことです。

ログインサーブレット

    public class Login extends HttpServlet {
      public static String jsessionid = null;

      public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        System.out.println("GET CALLED");
        doPost(req, resp);
    }

    public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException, ServletException {
        System.out.println("POST CALLED");
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        String jsessionid_full;
        String endpoint = "https://sample-url";
        try {
            // Authentication Code...
                    // Authentication Code...

            // resp.sendRedirect(resp.encodeRedirectURL("welcome.jsp"));

            String nextJSP = "welcome.jsp";
            RequestDispatcher dispatcher = getServletContext()
                    .getRequestDispatcher(nextJSP);
            dispatcher.forward(req, resp);

        } catch (Exception e) {
            System.out.println(e);
        }

    }
}

現在、welcome.jspページは単なる静的テキストです。

私のweb.xmlは...

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>mobile CRM</display-name>
  <servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>crmApp.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
    <servlet>
    <servlet-name>AccountQuery</servlet-name>
    <servlet-class>crmApp.AccountQuery</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>AccountQuery</servlet-name>
    <url-pattern>/AccountQuery</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

私の認証手順は正常に機能します... FF と chrome で問題が発生しているのは、ウェルカム ページの表示だけです。

また、実行後、アドレス バーの URL はログイン サーブレット、つまり/Loginのものになります。

任意の応答をいただければ幸いです。ありがとう

4

3 に答える 3

0

webappの内部であるため、転送を使用してブラウザーごとに異なる動作が見られる理由はわかりませんが、転送の代わりにユーザーをリダイレクトしてみてください。これにより、アドレス バーの URL も変更されます。

この件に関する良い情報があります。

于 2012-05-04T22:13:02.680 に答える
0

申し訳ありません...ここでjQueryとjQuerymobileを使用している私のスタイルシートの1つに問題があったようです...ブラウザの問題です!

于 2012-05-05T08:56:51.967 に答える
0

戻ってくる http ヘッダーを見てください。これらを表示するための優れた ff プラグインがいくつかあります (ライブ http ヘッダーなど)。

ログイン転送リクエストから返されたヘッダーと、ダイレクト ウェルカム ページ リクエストのヘッダーを比較します。

于 2012-05-04T22:25:45.117 に答える