Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在页面加载时从JSP文件调用servlet_Java_Jsp_Servlets_Onload - Fatal编程技术网

Java 在页面加载时从JSP文件调用servlet

Java 在页面加载时从JSP文件调用servlet,java,jsp,servlets,onload,Java,Jsp,Servlets,Onload,我可以不使用HTML表单从JSP文件调用servlet吗 例如,要在页面加载期间在HTML表中显示来自数据库的结果,您可以使用servlet的方法对请求进行预处理,并将请求转发给JSP。然后只需在链接和浏览器地址栏中指向servlet URL而不是JSP URL 例如 通过注释或XML正确注册servlet后,现在可以打开它,其中/context是webapp部署的上下文路径,/products是servlet的URL模式。如果您碰巧有任何HTML在它里面,那么只需让它像这样发布到当前URL,并

我可以不使用HTML表单从JSP文件调用servlet吗

例如,要在页面加载期间在HTML表中显示来自数据库的结果,

您可以使用servlet的方法对请求进行预处理,并将请求转发给JSP。然后只需在链接和浏览器地址栏中指向servlet URL而不是JSP URL

例如

通过注释或XML正确注册servlet后,现在可以打开它,其中
/context
是webapp部署的上下文路径,
/products
是servlet的URL模式。如果您碰巧有任何HTML
在它里面,那么只需让它像这样发布到当前URL,并向同一个servlet添加一个来执行后处理工作。继续下面的链接,以获得更多具体的例子

另见

根据您的需求,您需要使用RequestDispatcher的方法forward/include来实现相同的功能

在JSP中,您需要使用以下标记:

:

元素允许您 包括静态的或动态的 JSP文件中的文件。结果 包括静态和动态文件 完全不同。如果文件是 静态,其内容包含在 调用JSP文件。如果文件是 动态的,它根据请求和 发回包含的结果 在JSP页面中。什么时候包括 操作完成后,JSP容器 继续处理剩余的 JSP文件

e、 g


:

元素将 包含客户端的请求对象 从一个JSP文件请求信息 转到另一个文件。目标文件可以 是HTML文件、另一个JSP文件或 一个servlet,只要它在 与应用程序上下文相同 转发JSP文件。电话里的台词 源JSP文件在 元素不是 已处理

e、 g


检查高级JSP示例:JSP Servlet通信:


当然可以,只需将其包含在
表单中的
操作中即可。但是您必须编写正确的
doPost
doGet
来处理请求

如果要调用特定的servlet方法,还可以使用表达式语言。例如,您可以执行以下操作:

Servlet

ForexTest forexObject = new ForexTest();
request.setAttribute("forex", forexObject);
JSP

<body bgcolor="#D2E9FF">
Current date : ${forex.rate}
</body>

当前日期:${forex.rate}

问题是从JSP调用Servlet。您已经回答了从servlet调用JSP…这是OP考虑的功能需求的正常做法。您怎么能如此确定OP的想法?“不使用HTML表单”,所以他希望预处理请求而不是后处理。注意,您的回答有点误导,这意味着
ForexTest
需要是一个servlet,但它根本不需要是一个servlet。通常的方法是它是一个Javabean,那些
get
方法应该只被调用来访问属性,而不是执行业务逻辑。
<jsp:include page="/HandlerServlet" flush="true">  
<jsp:forward page="/servlet/ServletCallingJsp" />
ForexTest forexObject = new ForexTest();
request.setAttribute("forex", forexObject);
<body bgcolor="#D2E9FF">
Current date : ${forex.rate}
</body>