2

私のJSPページで、リンクを別のJSPページに転送したいと思います。ユーザーがhome.jspにいるとき、login.jspなどにアクセスしてもらいたい。私が抱えている問題は、プロジェクトフォルダー(WEB-INFの上)にページを配置する場合を除いて、JSPが見つからないことです。フォルダ)。

これらのコード行を試しましたが、どれも機能しませんでした。

<a href="/enq/WEB-INF/pages/login.jsp">
<a href="/WEB-INF/pages/login.jsp">
<a href="/pages/login.jsp">

プロジェクトフォルダ内のJSPページでのみ機能し、次の行を使用します。

<a href="login.jsp">

しかし、JSPページを次の場所に配置したい:WEB-INF / pages /

4

3 に答える 3

4

私はそれを解決しました。JSPページごとに4つのサーブレットを作成しました。すべてのサーブレットは、次のようにメッセージを対応するJSPに転送します。

request.getRequestDispatcher("/WEB-INF/pages/enquette.jsp").forward(request, response);

そして、ahrefの間のJSPページで:

<a href="/enq/enquette">

Web XML:

<servlet-mapping>
<servlet-name>Enquette</servlet-name>
<url-pattern>/enquette</url-pattern>
于 2013-05-21T17:45:35.023 に答える
2
<a href="/pages/login.jsp">

正しく動作する必要があります。この場合、どのHTTPステータスを取得しますか?

于 2013-01-12T20:37:55.783 に答える
1

ユーザーが次のファイルにアクセスできるようにする場合:/WEB-INF/pages/login.jsp

サーブレットを作成し、htmlまたはjspファイルのリンクを変更する必要があります。

<a href="/pages/login.jsp"> login page </a>

サーブレットを作成します。次の行をweb.xmlファイルに追加します。

<servlet-mapping>
<servlet-name>accessFiles</servlet-name>
<url-pattern>/pages/*</url-pattern>  
</servlet-mapping>


<servlet>
<servlet-name>accessFiles</servlet-name>
<servlet-class>yourclass</servlet-class>
</servlet>

次に、サーブレットを拡張するyourclass.javaを作成します。

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class yourclass extends javax.servlet.http.HttpServlet {

 private String message;

  public void init() throws ServletException
  {

  }

  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      String pathInfo = request.getPathInfo();
      request.getRequestDispatcher("/WEB-INF/pages/" + pathInfo).forward(request, response);

  }

  public void destroy()
  {
      // do nothing.
  }

}

getPathInfo()は、サーブレットパターン(/ pages /)の後にURLの一部を返します。これは機能するはずです。

/ WEB-INF / pages /ディレクトリの下にさらにjspファイルを追加して、このサーブレットを介してユーザーを希望のページに転送することもできます。

于 2015-08-28T17:14:21.247 に答える