0

jspテキストフィールドがあります。テキストフィールドに挿入したテキストを印刷したいのですが、方法がわかりません。JSP ページ:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Return the name</title>
    </head>
    <body>
        <h1>Welcome</h1>
        Insert your text here:<br>
        <form name="txtForm" action="Main.java" method="post">
            <input type="text" name="txt">
            <input type="submit" value="Send">
        </form>
    </body>
</html>

そして、これはclass(Main.java)JSP を処理しているものです。

public class Main extends HttpServlet {

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

        String text = request.getParameter("txt");
        Date d = new Date();
        System.out.println("The name you enter is:" + text + "at the time : " + d);
    }
}

私が欲しいのは、クラスを介してjspから情報を取得し、それをjspに出力することです。これはどのように行うことができますか?使用しようとしましたが<%@ import ... >、機能しませんでした。:(
ありがとうございます。

4

2 に答える 2

1

記述したフォームの Action 属性値が間違っています。アクションの値は、Web.xml の URL パターンと一致する必要があります。たとえば、 JSP では次のようになります。

<form name="txtForm" action="NewServlet" method="post">

Web.xml で:

<servlet-mapping>
    <servlet-name>SimpleServlet</servlet-name>
    <url-pattern>/NewServlet</url-pattern>
</servlet-mapping> 
<servlet>
    <servlet-name>SimpleServlet</servlet-name>
    <servlet-class>complete Path of Servlet </servlet-class>
</servlet>

上記のフォームの action 属性値「NewServlet」は、web.xml の「」にマップされます。情報を JSP に書き戻すには、サーブレットで PrintWriter オブジェクトを使用できます。

String text = request.getParameter("txt");
Date d = new Date();
PrintWriter out = response.getWriter();
out.println("The name you enter is:" + text + "at the time : " + d);
于 2013-07-24T14:16:35.427 に答える
0

まず、このform定義は機能しない可能性があります。

<form name="txtForm" action="Main.java" method="post">

属性では、 etc などactionの URL を指定する必要がありますform.do。次に、サーブレットをweb.xmlMain.java内のこの特定の URL にマップします。

PrintStreamを使用して、応答に出力してみてください。

response.getWriter.println("The name you enter is:" + text + "at the time : " + d);

これを行うと、応答がブラウザに返されます。

理想的には、ビューにはJSPを使用する必要があります。

リクエストをJSPに送信し、EL を使用してリクエスト パラメータを出力できます${param.parameterName}

私が欲しいのは、クラスを介してjspから情報を取得し、それをjspに出力することです

ただし、これは少し長い演習になります。requestサーブレット クラスから、つまり属性Main.javaを設定する別の JSPにディスパッチする必要があります。request

于 2013-07-24T11:23:14.910 に答える