我想在点击它时添加一个按钮,应该显示日期,但按钮不起作用。
我的servlet:
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>
请知道 干杯
答案 0 :(得分:2)
这当然是错的:
out.println("<% public void executeTest() {" +
您无法在servlet中生成scriptlet代码。 Scriptlet代码属于JSP。从JSP返回的任何文本(发送到out
)都直接发送到客户端。因此,传递给浏览器的HTML将包含scriptlet代码 - 应该在服务器端进行评估!
Scriptlet只能出现在JSP中。
为了让它更有趣,你试图将Java executeTest()
方法作为JavaScript onclick
处理程序附加 - 永远不会起作用:
out.println("<input type='submit' value='Execute Test'onclick='executeTest()'>")
事实上,你的代码被破坏的方式很多,需要完全重新思考/重写。从了解servlet,JSP和JavaScript的工作方式,时间和位置开始。
我有点理解并猜测是什么,它既不需要JSP也不需要servlet。只需在JavaScript中编写onlick
处理程序,然后以某种方式修改DOM以打印当前日期。