1

我想添加一个按钮,当我单击它时应该显示日期,但按钮不起作用。

我的小服务程序:

package test.servlets; 

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


      public class FunctionalTestServlet extends HttpServlet
        {

public void doGet(HttpServletRequest request,HttpServletResponse response)throws    

        ServletException, IOException {



     response.setContentType("text/html");
      PrintWriter out = response.getWriter();  
      String text = request.getParameter("montext");
      String fileName = request.getParameter("testclass");

      out.println("<b><font color='blue'>The text is :</font></b>" 
      + "<b>"+ text +"</b>" + "<br>");

      out.println("<b><font color='blue'>The File name is :</font></b>" 
              + "<b>"+ fileName+"</b>" + "<br>");


      out.println("<% public void executeTest() {" +

 " java.util.Date d = new java.util.Date();out.println(d.toString()); } %>");
 **out.println("<input type='submit' value='Execute Test'onclick='executeTest()'>");**

    }


}

jsp页面:

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   

"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
   </head>
      <body>

    <html:file properties="tonFichier" name="tonForm"/>

    <form action="FunctionalTestServlet" enctype="multipart/form-data" method="get">
    <p>
  Type some text (if you like):<br>
  <input type="text" name="montext" size="30">
   </p>
    <p>
    Please specify a Test , or a set of tests:<br>
   <input type="file" name="testclass" size="40" >
    </p>
   <div>
  <input type="submit" value="Execute Test">

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

任何想法请干杯

4

1 回答 1

2

这肯定是错误的:

out.println("<% public void executeTest() {" +

您不能在 servlet 中生成 scriptlet 代码。Scriptlet 代码属于 JSP。从 JSP 返回的任何文本(发送到out)都直接发送到客户端。因此,传递给浏览器的 HTML 将包含 scriptlet 代码——应该在服务器端进行评估!

Scriptlet 只能出现在 JSP 中。

为了让它更有趣,您尝试将 JavaexecuteTest()方法附加为 JavaScriptonclick处理程序 - 永远不会工作:

out.println("<input type='submit' value='Execute Test'onclick='executeTest()'>")

事实上,你的代码被破坏的方式太多了,需要完全重新思考/重写。从了解 servlet、JSP 和 JavaScript 的工作方式、时间和地点开始。

我有点明白你的想法,你猜怎么着,它既不需要 JSP 也不需要 servlet。只需onlick在 JavaScript 中编写处理程序并以某种方式修改 DOM 以打印当前日期。

于 2012-07-08T14:40:38.257 回答