public class Test extends HttpServlet {
private static final long serialVersionUID = 1L;
public Test() {
super();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<HTML><HEAD><TITLE>MovieDB</TITLE></HEAD>");
out.println("<BODY><H1>MovieDB</H1>");
out.println("<a href = '#' onclick = 'on_Click();'> Call Function </a>");
}
public void on_Click()
{
System.out.println("HELLO");
}
}
我只想在我的页面上使用HTML链接来调用我的java函数on_Click(),有什么好办法呢?
答案 0 :(得分:0)
onclick
不是Java。这是JavaScript。它是一种与Java完全不同的语言。他们唯一共同的东西是语言名称的前4个字符,一些关键字和一些语法。但就是这样。
只需让链接指向与servlet映射的URL模式匹配的URL即可。想象一下,您已经在/foo/*
的URL模式上映射了您的servlet,然后只使用
<a href="foo">Call function</a>
这将只调用servlet的doGet()
方法。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Hello");
}
如果要为多个操作重用相同的servlet,只需将一些操作标识符作为请求参数传递
<a href="foo?action=bar">Call function</a>
with doGet()
servlet
String action = request.getParameter("action"); // "bar"
或作为路径信息
<a href="foo/bar">Call function</a>
with doGet()
servlet
String action = request.getPathInfo().substring(1); // "bar"
不需要奇怪的JavaScript方法/解决方法。
无关具体问题,HTML属于JSP,而不属于Servlet。
答案 1 :(得分:0)
servlet在您的服务器上运行,而HTML在用户的计算机上运行,因此您需要使用javascript / ajax向服务器发送请求以执行on_Click功能。