0

I have a jsp with a text field. I want to print out the text I inserted into text field, but have no idea how to do it. JSP page:

<%@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>

And this is the class(Main.java) that is handling the 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);
    }
}

What I want is to take the info from the jsp through my class then print it out back on a the jsp. How can this be done? I tried to use <%@ import ... > and coudn't make it work. :(
Thank you.

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>

在上面的表单动作属性值“NewServlet”将映射到web.xml中的“”。要将信息写回 JSP,您可以在您的 servlet 中使用 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">

action属性中,您需要指定一个 URL,例如form.doetc... 然后将 Servlet 映射到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从您的 Servlet 类中分派,即Main.java到一个单独的 JSP 设置request属性。

于 2013-07-24T11:23:14.910 回答