2017-09-11 19 views
0

私の情報をサーブレットからJSPページに表示したい。サーブレットからJSPへのデータ表示

多くの可能性を試しましたが、nullになる予定です。

私は、表示するパラメータが1つしかなく、nullであるプログラムを作成しました。

JSPページ:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="ci1" method="get"> 
      User Name : <% String name1 = request.getParameter("name"); 
      out.print(name1); %> 

     </form> 
</body> 
</html> 

のWeb.xml: -

​​

サーブレット: - あなたのサーブレットコードで

public class control_it { 
    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
        throws IOException, ServletException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 

     String name = "Display the name"; 
     request.setAttribute("name", name); 
     request.getRequestDispatcher("try_it.jsp").forward(request, response); 
    } 
} 
+0

サーブレットがHttpSevlet' 'のサブクラスでなければなりません。あなたのクラスと他のメンバーに名前を付けるために、適切な命名規則を使用してください。 – adatapost

+0

RequestDispatcherを作成するrd = request.getRequestDispatcher( "ur html"); –

答えて

0

あなたがattribute設定されますが、JSPページであなたはparameterを取得しようとしています。 パラメータはクライアント側からサーバーに送信されますが、属性は完全にサーバー側のものです。 User Name : <%=request.getAttribute("name")%>

更新: サーブレットdoGetメソッド:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { 
    String name = "essy"; 
    request.setAttribute("name", name); 
    request.getRequestDispatcher("index.jsp").forward(request, response); 
} 

のweb.xml:

<servlet> 
    <servlet-name>testservlet</servlet-name> 
    <servlet-class>TestServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
    <servlet-name>testservlet</servlet-name> 
    <url-pattern>/testservlet</url-pattern> 
</servlet-mapping> 

JSPページ:

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<html> 
<body> 
<h1>test</h1> 
<h2><%=request.getAttribute("name")%></h2> 
</body> 
</html> 
これと User Name : <% String name1 = request.getParameter("name");out.print(name1); %> を変更しよう210

このコードと設定は魅力的です。 試してみてください。 希望します。

+0

同じansはありません:NULL –

+0

更新を確認してください – ali4j

0

あなたのロジックは後方です。最初にサーブレットを使用して、その値をJSPに渡す必要があります。あなたのコードを見ると、あなたはそれが他の方法で動作すると思うような印象を受けます。サーブレットからGETメソッドを実行しないと、 "name"属性にアクセスすることができなくなります。また、 "スクリプトレット"(これらのもの:<%%は>)

以来に対して落胆されていますが、代わりにこのコードを試してみてください。

あなたのサーブレット(control_it):

public class control_it extends HttpServlet{ 
private static final long serialVersionUID = 1L; 

public control_it() { 
    super(); 
} 

    protected void doGet(HttpServletRequest request, 
      HttpServletResponse response) 
        throws IOException, ServletException { 

     String name = "Display the name"; 
     request.setAttribute("name",name); 

     RequestDispatcher rd=request.getRequestDispatcher("try_it.jsp"); 
     rd.forward(request,response);  
    } 
} 

あなたのJSP(try_it):

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <form action="ci1" method="get"> 
      User Name : ${name} 
<input type="submit" value="GetFromServlet"/> 
     </form> 
</body> 
</html> 

これで2つの価値を得ることができます。

  • あなたのJSPにフォーム内のボタン "GetFromServlet" をクリックします。

  • または、ブラウザの検索でURL/ci1を入力してください。(最初のコースのご
    LOCALDOMAINのものと)[注:のdoGetでのみ動作]

関連する問題