7

以下のサーブレットがあります。jspページの読み込み時にサーブレットを呼び出したいと思います。どうやってやるの?

サーブレット: SomeServlet.java

<servlet>
  <servlet-name>Hello</servlet-name>
  <servlet-class>SomeServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>Hello</servlet-name>
 <url-pattern>/HelloWorld</url-pattern>
 </servlet-mapping>

jspページのロード時にサーブレットを呼び出すために、対応するjspを作成するにはどうすればよいですか。また、サーブレットから結果を取得し、同じ jsp に表示する必要があります。結果を に送り返すことはできますjspか?

ありがとう!

4

4 に答える 4

9

逆にやるべきです。URL でサーブレットを呼び出し、JSP を表示させます。これも通常の MVC アプローチです (サーブレットがコントローラーで、JSP がビューです)。

最初に JSP ファイルを/WEB-INFフォルダーに入れ、エンドユーザーがサーブレットを呼び出さずにブラウザーのアドレス バーに URL を直接入力して「誤って」開くことがないようにします。doGet()次に、要求を JSP に転送するようにサーブレットを変更します。

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

    request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
}

で開きます

http://localhost:8080/コンテキスト名/HelloServlet

/helloもちろん、より代表的な URL を使用できるように、サーブレット マッピングの URL パターンを次のように変更できることに注意してください。

http://localhost:8080/contextname/hello

以下も参照してください。

于 2012-05-02T13:20:41.953 に答える
2
<jsp:include page="/HelloWorld"/>
于 2012-05-02T12:49:58.003 に答える
0

代わりにサーブレットを呼び出してリクエスト属性で結果を取得し、リクエストをjspに転送します

または、ロード時にサーブレットへの ajax 呼び出しを行い、javascript を使用して応答をレンダリングします。

于 2012-05-02T12:49:36.887 に答える
0

JSPページでは、リクエストをサーブレットに転送できます

response.sendRedirect(request.getContextPath()+"/SomeServlet");
于 2012-05-02T12:50:56.413 に答える