繁体   English   中英

在不使用javascript的情况下单击html按钮时调用Java方法

[英]call a java method when Click on a html button without using javascript

我在JSP工作,并且想在不使用<script></script>情况下单击html按钮时调用java方法(函数)。如何? 我尝试编写这段代码:

<button onclick="<%po.killThread();%>">
    <font size="4">Kill</font>
</button>

但这不起作用...所以请帮助我。

谢谢

您误解了服务器端编程的工作原理。 当您加载该页面时,Web服务器将进入<button onclick="<%po.killThread();%>"> ,并立即解析并执行JSP代码段(在您的情况下为po.killThread() ,以及将<%%>之间的所有内容替换为该方法的返回值(如果有)。 所有这些都发生在服务器端,即客户端收到任何东西之前。 (请注意,只有在服务器尚未将该页面加载并编译到Servlet中时,才会发生这种情况。)

因此,客户端接收到的HTML将类似于<button onclick="some return value or nothing"> ,这意味着当您按下按钮时什么也不会发生。 如果要在按钮上执行更多的JSP命令,则需要向服务器发出新请求-例如,通过重定向页面。

打开网站时,它将调用函数killThread。

尝试重定向到另一个调用该函数的jsp。

这根本不会运行,因为在编译jsp页面之后,它将返回po.killThread()值,但不会调用此方法

您可以通过查看页面源代码来查看

JSP是服务器端技术。 我是说服务器端的吗?

为了理解JSP的工作原理并消除任何误解,《 JavaRanch Journal》(第4卷,第2期)《 JavaServer Pages的秘密生活》是一本很好的书。

摘录自同一

  • JSP是一种模板技术,最适合以与空格无关的格式交付动态文本文档。
  • 包含所有空白和行终止符的JSP页面(不是任何动态元素)中的模板文本将成为最终文档的一部分。
  • JSP中的所有动态元素都在服务器上进行解释,并且一旦将文档发送到客户端,就不可能进行进一步的动态交互(缺少请求相同或另一个文档的要求)。

如果使用的是JSP,则必须执行一个方法调用,然后编写一个servlet,然后在servlet的doPostdoGet方法中调用该方法。

另一方面,如果您想简化事情,请使用JSF框架,因为JSF支持事件处理,因此它将帮助您实现目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM