这个问题在这里已经有了答案:Howtorunabackgroundtaskinaservletbasedwebapplication?(5个回答)关闭4年前。我使用servlet和JSP开发了一个Web应用程序。我本身没有使用任何框架,而是使用我自己的自制MVC框架。我使用MySQL作为后端。我想做以下事情:每小时从数据库中清理一些数据每15分钟生成一次数据统计信息并将其存储在某个XML文件中问题是:目前我的所有代码都是根据从客户端收到的请求运行的。如何在服务器端运行定期任务?我现在的一个解决方案是在Controller的init函数中创建一个线程。还有其他选择吗?
我有一个对文件执行一些操作的java类。由于java代码很大,我不想在jsp中编写这段代码。我想在需要时调用jsp中的方法。请告诉我需要保存此文件的路径。还有一些示例代码如何使用它会有所帮助。 最佳答案 在servlet(在JSP之前运行)中:Personp=newPerson();//instantiatebusinessobjectp.init(...);//inititorsomethingrequest.setAttribute("person",p);//makeitavailabletothetemplateas'per
你好,我正在尝试将javascript变量的值分配给java变量。但我不知道如何做到这一点?比如说我有这个:functionreturnvariable(){vara="hello";returna;} 最佳答案 Java脚本在Java代码是服务器端的浏览器上播放,所以你不能简单地这样做。您可以通过表单提交,或使用URL参数或使用AJAX调用将计算出的变量从javascript提交到服务器,然后您可以在服务器上使用它HTML确保此字段位于下Javascriptdocument.getElementById("hiddenField"
是否可以在JSP页面上使用request.setAttribute然后在HTMLSubmit上在Servlet中获取相同的请求属性? 最佳答案 没有。不幸的是,Request对象仅在页面完成加载之前可用-一旦完成,您将丢失其中的所有值,除非它们已存储在某个地方。如果您想通过请求保留属性,您需要:在表单中有隐藏输入,例如"/>.这将在servlet中作为请求参数提供。将它放在session中(参见request.getSession()-在JSP中,它可以简单地使用session)我建议使用Session,因为它更易于管理。
我正在尝试检索由JSP页面中的servlet设置的属性值,但我只能通过${param}获得参数。我不确定我能做些什么不同的事情。也许它很简单,但我还无法管理它。publicvoidexecute(HttpServletRequestrequest,HttpServletResponseresponse){//there'sno"setParameter"methodforthe"request"objectrequest.setAttribute("attrib","attribValue");RequestDispatcherrd=request.getRequestDispatch
这个问题在这里已经有了答案:Howtorunabackgroundtaskinaservletbasedwebapplication?(5个回答)关闭7年前。我想每6小时后从订阅中检索和存储订阅源到数据库。我想在后台有一个计时器线程来完成这项任务。最好的方法是什么?一个普通的定时器线程还是QuartzAPI? 最佳答案 首先,我不会为此使用JSP。它不适合。当您使用JavaEE5时,请为此使用容器提供的作业调度API。更多细节取决于您使用的容器。例如,JBossAS5附带了Quartz。或者,当您在JSP/Servlet之上使用提供
我开始将一个大的JSP文件分解成一些较小的JSP页面,这样我就可以在网站的其他区域重用它。我可以采取留下一个大的单体JSP文件的方法,该文件接受参数并相应地调整它的行为。我可以采取的另一种方法是将其拆分,以便通过jsp:include调用它。在创建从服务器内分派(dispatch)的额外请求调用时,性能问题是什么?将其保留为一个jsp页面是否会提高性能? 最佳答案 jsp:include与不同的是运行时指令指令恰好是编译时指令(实际上是翻译时间)。编译时包含指令相对无害,因为JSP通常是为生产而预编译的,或者在最坏的情况下为应用程序
我在web.xml中设置了这样的错误页面:java.lang.Exception/errors/error.jsp现在我想在JSP上打印错误堆栈跟踪(当然仅在开发模式下)。如何在我的JSP页面上打印错误堆栈跟踪?我没有为此应用程序使用任何框架,因此我的程序只能使用默认的servletAPI。 最佳答案 从内部设置的request中获取参数,用于打印和处理cause、message等其他信息并打印堆栈跟踪exception.printStackTrace(newjava.io.PrintWriter(out));另见JSPIntro4
我正在使用sitemesh来装饰页面。我为此使用了一个JSP页面。在我使用之前,该页面运行良好条件标签。我在WEB-INF/lib文件夹中有jSTL-impl-1.2.jar和sitemesh-3.0-alpha-1.jar文件。我在jsp页面中有以下标记库声明:我在java6中使用tomcat7.0。当我在eclipse中创建新的动态web项目时,我将动态web模块版本设置为2.4。该页面有标签,它们工作正常,但是当我使用if条件标签时,我收到以下错误:javax.servlet.ServletException:java.lang.NoClassDefFoundError:java
我在welcome.jsp上有这个这在head.jsp中:SiteName-${pgTitle}但是变量是空白的,输出只是SiteName-我已经阅读了很多文章,但我无法弄清楚问题所在。如果我在同一个welcome.jsp中的其他地方回显${pgTitle},那么它输出正常。我在两个页面上都包含了核心标签库。 最佳答案 这是因为pgTitle变量在页面范围内设置。检查它here(抱歉,我无法获得官方文档)。如果你想让这个工作,你必须至少在请求范围内设置变量。要在请求范围内设置变量,请使用scope上的属性:根据您的评论,在Web开发