0

私はJavaの世界では初めてです。ユーザー名とパスワードを検証するためのデータベースとして単純な CSV ファイルを使用して ACME Demo を開発しようとしています。index.jsp ページにいくつかのハイパーリンクを作成して、同じ Web サイトの他の jsp ページをクリックすると移動できるようにすることは可能でしょうか。私が知る限り、ハイパーリンクはサーブル内の doGet メソッドを呼び出します。私の場合、資格情報がもちろん有効であれば、それらの安全な jsp にリダイレクトされます。ハイパーリンクが 1 つしかないので、リンクの数に関係なく、より動的にしたいと思いますか??!!

jsp

 <a href ="<%=request.getContextPath()%>/LoginNow.do"> Content1</a>
  <!-- Here I would like to add more links -->

サーブレット

    @Override
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException
  {
    processRequest(request, response);

    //response.sendRedirect("login.jsp");

     HttpSession session= request.getSession(true);

    if ((session.getAttribute("userSession") != null) && (session.getAttribute("userSession").equals(session.getId())))
    {
      response.sendRedirect("content1.jsp");
      // How can my doGet method manage multiple links here?

    }
    else
    {
      response.sendRedirect("login.jsp");
    }
  }
4

1 に答える 1

0

サーブレット フィルターを使用する必要があります。

フィルタは、特定の URL マッピングへのすべてのリクエスト、および/または特定のサーブレットへのすべてのリクエストに対して呼び出されるコンポーネントです。

フィルターは、ユーザーがログインしているかどうかを確認できます。ユーザーがログインしている場合は、コンテナーに続行するように要求します。つまり、フィルターがないかのようにターゲット サーブレットを呼び出します。彼がログインしていない場合、フィルターはエラーを返すか、ログイン ページにリダイレクトするか、必要なことを何でも行うことができます。

サーブレット フィルタの概要と例については、http://www.oracle.com/technetwork/java/filters-137243.htmlを参照してください。

于 2013-08-16T12:55:59.127 に答える