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 web容器外部的JSP_Java_Jsp_Tomcat_Scriptlet - Fatal编程技术网

Java web容器外部的JSP

Java web容器外部的JSP,java,jsp,tomcat,scriptlet,Java,Jsp,Tomcat,Scriptlet,我正在启动一个项目,该项目将有许多“文件”(如webservers.html或jsp文件)。例如,这些文件中的每个文件都将嵌入“JSP” 你好 然后,我希望通过“JSP编译器”以编程方式发送此文件,然后获取输出文件 我已经看过了Tomcats JSPServlet,但它走到了死胡同,因为似乎不可能从代码中访问Servlet对象。我还下载了Tomcat中的ApacheJasper代码,以了解JSPServlet在做什么,但这似乎是一个漫长的过程 有人有什么建议或想法吗 我知道JSP是面向web的,

我正在启动一个项目,该项目将有许多“文件”(如webservers.html或jsp文件)。例如,这些文件中的每个文件都将嵌入“JSP”

你好

然后,我希望通过“JSP编译器”以编程方式发送此文件,然后获取输出文件

我已经看过了Tomcats JSPServlet,但它走到了死胡同,因为似乎不可能从代码中访问Servlet对象。我还下载了Tomcat中的ApacheJasper代码,以了解JSPServlet在做什么,但这似乎是一个漫长的过程

有人有什么建议或想法吗


我知道JSP是面向web的,但这对我来说是可行的。

这是一条漫长的道路。您是否正在寻找使用模板生成文件的方法?在这种情况下,Velocity或Freemarker可能是更好的路线。尤其是如果您不想生成html。

您只想得到它的输出?最简单的方法是安装一个servletcontainer,部署webapp并使用它获取
InputStream

InputStream response = new URL("http://localhost/context/page.jsp").openStream();

Tomcat将编译web应用程序的JSP文件,并将其放在每个web应用程序的特殊文件夹中

您可以编写一个脚本,定期转储用户在Tomcat webapps目录下的Whatever.war目录中发送的jsp文件

这样,Tomcat将自动编译JSP并为您提供输出的HttpServlet代码

然后,您可以检查Tomcat日志中每个JSP文件的编译异常


请查看这篇关于使用Jasper编译器进行此操作的文章,并回答我自己的问题:)


我创建了实现tomcat连接器接口的类,它允许我使用tomcat提供的所有东西,但我有自己的入口点。我确实需要一个模板,但同时我需要嵌入要执行的实际java代码。。。就像JSP脚本一样。你也可以这么做。只是补充一下。。。例如,我想添加“features”,调用带有参数“abc.txt?name=John”的页面。所以基本上jsp是完美的。只是我不能让它独立运行。我甚至可以选择在web容器中运行,但我不确定这是否有帮助。我已经考虑过了。老实说,我不喜欢这种方法,因为我认为可能会有一个性能打击。我也不明白为什么我不能“绕过”网络/环回和tcp堆栈等。如果Web服务器安装在同一台机器上,这不会影响性能。无法绕过,因为服务器仅侦听TCP/IP套接字。