2015-01-04 19 views
0

嗨我写我的JavaScript代码在我的jsp页面,我打电话给我的jsp通过java连接url,它正在正确执行,但跳过我已经调用页面加载时的JavaScript函数。 我无法理解它为什么不执行我的JavaScript。如何通过java连接url执行jsp的javascript?

try { 
    URL myURL = new URL("http:localhost:8080/Approval.jsp?empCode=123&compCode=A"); 
    URLConnection myURLConnection = myURL.openConnection(); 
    myURLConnection.connect(); 
} 
catch (IOException e) { 

} 

是否有任何通过连接url直接调用JavaScript?请建议?

+0

'URLConnection'不是浏览器,它只是下载给定的URL。它不执行任何操作。 – Todd 2015-01-04 14:48:48

+0

您的Jsp中存在一些问题。您可以解释您在JSP中执行的操作。 – Prashant 2015-01-04 14:49:59

+0

@Todd我从URL传递值,并在我的javascript函数中使用这些值。是否有任何其他方式可以做到这一点? – user1976940 2015-01-04 14:54:01

回答

0

在网络环境中,JavaScript通常作为HTML网页的一部分包含在内,并且仅在该上下文中执行。网络浏览器通常会这样做;他们内置了解析源代码的HTML和JavaScript(以及CSS等)解析器,以及在网页上下文中执行JavaScript的内置JavaScript引擎。

Java URLConnection抽象不是Web浏览器,对HTML和JavaScript一无所知;它仅支持向URL发送请求并从URL接收响应。而且,它本身并没有这样做,因为它的方法是抽象的;它依赖于一个(更多)具体的子类来知道如何使用特定的协议来完成这些工作。在你的情况下,这将是HttpURLConnection,因为你的URL使用HTTP协议。

HttpURLConnection增加了某些HTTP功能的特定知识,例如HTTP状态代码,但它仍然对HTML和JavaScript一无所知。因此,最终的结果是,虽然您的代码将在构建网页时正确接收由JSP生成的所有HTML和JavaScript,但它将无法解析或执行它;它基本上是纯文本,就HttpURLConnection而言。

您正在寻找的是Java的无头(无GUI)浏览器库。我会推荐HtmlUnit(http://htmlunit.sourceforge.net/),这是非常广泛使用和稳定,可以做很多事情,包括执行JavaScript。