这类似于jsp:include中的java参数处的问题 svn-doesnt-import
我希望从JSP文件(response.jsp)执行Java文件(run.java),并将其输出返回到JSP文件。
我在用
Mac OSX 10.6.8,Apache Tomcat 6.0.16,Java1.6.0_29,Eclipse IDE Indigo,
我在Tomcat中部署了一个JSP Web应用程序,该应用程序搜索XML内容存储库并将结果返回给用户。
我被要求包括一个Java API,该API使用相同的查询来搜寻预定义的网站。这必须与Web App分开
我需要将用户查询发送到Java API,然后将内容返回到JSP WebAp。谁能给我一些有关将查询发布到外部Java API的命中方法?
JSP文件已经调用了同一WebAp中的其他.jsp文件,例如
<%@ include file="siteheader.jsp" %> <jsp:include page="<%= session.getAttribute(\"device\") + \"header.jsp\"%>"> <jsp:param name="title" value="Response" /> </jsp:include>
我尝试了以下方法,然后尝试了其他一些变体,以使其至少可以连接到外部Java文件,但无法破解它。
<%@ include file="/Users/me/Documents/workspace/Slicer/src/slicer/Run.java" %>
我不断收到tomcat错误,找不到文件“ Macintosh HD / Users / me / Documents / workspace / Slicer / src / slicer / Run.java”
任何建议或帮助深表感谢
乙
请在 如何以编程方式编译和实例化Java类上查看BalusC的解决方案?为了进行测试,请复制并粘贴以下JSP。我希望BalusC不介意我更改了他的代码。
<%@ page import="java.util.*,java.io.*,javax.tools.*,java.net.*" %><% System.setOut(new PrintStream(response.getOutputStream())); // Prepare source somehow. String source = "package test; public class Test { static { System.out.println(\"hello\"); } public Test() { System.out.println(\"rickz\"); } }"; // Save source in .java file. File root = new File("/testJava"); // On Windows running on C:\, this is C:\testJava. File sourceFile = new File(root, "test/Test.java"); sourceFile.getParentFile().mkdirs(); new FileWriter(sourceFile).append(source).close(); // Compile source file. JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); compiler.run(null, null, null, sourceFile.getPath()); // Load and instantiate compiled class. URLClassLoader classLoader = URLClassLoader.newInstance(new URL[] { root.toURI().toURL() }); Class<?> cls = Class.forName("test.Test", true, classLoader); // Should print "hello". Object instance = cls.newInstance(); // Should print "world". System.out.println(instance); // Should print "test.Test@hashcode". if(out != null) return; %>