单独的js文件,怎样才能使用Java代码?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单独的js文件,怎样才能使用Java代码?相关的知识,希望对你有一定的参考价值。

用DWR
它包含两个主要的部分:允许javascript从WEB服务器上一个遵循了AJAX原则的Servlet中获取数据.另外一方面一个JavaScript库可以帮助网站开发人员轻松地利用获取的数据来动态改变网页的内容.   
DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.   
这个从JAVA到JavaScript的远程功能方法给DWR的用户带来非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有运行在WEB上但是不需要浏览器插件的好处.   
DWR不认为浏览器/WEB服务器协议是重要的,而更乐于保证编程界面的简单自然.对此最大的挑战就是把AJAX的异步特性和正常JAVA方法调用的同步特性相结合.在异步模式下,结果数据在开始调用之后的一段时间之后才可以被异步访问获取到.DWR允许WEB开发人员传递一个回调函数,来异步处理Java函数调用过程.   
另处 .dwr还是文件的一种格式: 比如以Dreamweaver软件里有查找和替换,经常用的查找和替换内容可以保存,保存的文件就是以 .dwr结尾的文件。这种文件用记事本打开后可以看到它的内容。

参考资料:http://baike.baidu.com/view/73492.htm

参考技术A 不能在里面写java代码,不过你可以把相应的数据做成js函数的参数
在jsp页面调用时,根据java代码,传递相应的参数过去追问

一个jsp引用一个外部的js,jsp里的Java变量怎么才能当作参数传递过去呢

追答

比如js文件里有个函数:
function aaa(a)
alert(a);


jsp页面调用:

aaa("");

追问

如果aaa这个方法在js加载完之后就立即执行,而不是在jsp页面调用执行,参数怎么传

追答

要传递Java变量给js文件里的函数,必须在jsp页面调用执行

本回答被提问者采纳
参考技术B <head>
<script type="text/javascript" src="js/check.js"></script>
</head>

我怎样才能访问放在 WEB-INF 文件夹中的文件

【中文标题】我怎样才能访问放在 WEB-INF 文件夹中的文件【英文标题】:how can i have access to my files that placed in WEB-INF folder 【发布时间】:2012-05-13 07:59:49 【问题描述】:

我是 java 新手,遇到了一个奇怪的问题。 我在 WEB-INF 文件夹中创建了一些文件夹(主题、js、css)并将我的文件放到这个文件夹中。 在 index.jsp 中,我通过以下方式使用 css 文件:

<style type="text/css"> 
        <%@include file="WEB-INF/css/style.css" %>
 </style>

效果很好。 但在 style.css 文件中,我有一个 div 标签,通过以下方式为标题标签设置背景:

#header
background: url(../theme/violet/header.jpg) repeat-x;

哦。我的问题就在这里。它不起作用。因为其他 css 命令工作得很好。 我知道无法访问 WEB-INF 详细信息,但可能有一种方式类似于我在 index.jsp 页面中用于链接 style.css 的方式。

有什么解决办法吗? 谢谢。

【问题讨论】:

只需在 WEB-INF css 文件夹中添加,就像你做的那样,在这个文件夹中添加 images 文件夹并将 header.jpg 放在那里。您的图像将可用于 style.css - 背景路径: url(images/header.jpg) repeat-x;顺便说一句,此图像将可供外部所有人使用(如果您在 url 中精确路径),但整个文件夹图像或 css 不会,因为它受服务器或应用程序容器(如 tomcat)保护 - 您可以在配置文件中更改它(/conf /web.xml)。 context.xml 中的 Tomcat 也监控了有价值的资源 【参考方案1】:

这是不可能的。如果您希望从浏览器直接访问内容,则它不能驻留在 WEB-INF 中。

【讨论】:

你的答案是什么意思。你会说我最常把我的资源文件放在WEB-INF之外?因此我的jsp文件如何访问css文件,但css文件不能访问图像文件?你的回答是通过网络浏览器处理css文件吗? 如果您希望资源(例如 header.jpg)可以被浏览器等客户端访问,则它不能位于 WEB-INF 中【参考方案2】:

为什么在WEB-INF 文件夹中创建theme, js, cssWEB-INF 目录包含有关应用程序的元数据。正常操作时,WEB-INF目录下不需要修改。

您可以直接在warWebContent目录下创建theme, js, css文件夹,方便在您的jsp页面中使用。

this 链接会帮助你。

【讨论】:

在我读到的一本书中,他为网站提供了一个结构。作者说你把你的css、主题、js和tld放在WEB-INF中很好。当然,他说用户无法访问 WEB-INF 中的所有数据,但网络服务器允许您的类使用它(可能他会说我们的类可以使用它,并非所有此类 jsp 文件的来源,我不知道)。【参考方案3】:

从您包含 style.css 的方式来看,我猜您的 index.jsp 位于 WEB-INF 文件夹之外,客户端浏览器可以直接访问该文件夹。包含的 style.css 工作正常的原因是因为它包含在服务器端。但是在 style.css 中,为了获取背景图片,浏览器将启动一个新的连接到恰好位于 WEB-INF 文件夹内的图片,并且服务器拒绝将其发回,你注定要失败。

如果你有一个集中的控制器servlet,你可以把你的jsps放在WEB-INF文件夹中,防止直接访问。您的 servlet 将根据请求参数将所有请求重定向到适当的 jsp。

据我所知,没有绝对的理由将图像、JavaScript 等放在这个文件夹中,当浏览器需要访问这个文件夹来检索数据时,你肯定会遇到问题。

【讨论】:

以上是关于单独的js文件,怎样才能使用Java代码?的主要内容,如果未能解决你的问题,请参考以下文章

用myeclipse,在jsp中写java代码,需要导包时不提示,必须手动导包,怎样才能让它提示并且自动导包

从 java GWT 代码调用 .js 文件的 Javascript 函数

java解析xml文件,会把节点属性中的换行转换成空格,怎样才能避免此类转换,即保留换行

我怎样才能使它如此这个java程序将读取二进制文件的其余部分,而不是添加额外的空格?

我现在在学校刚开始学java,每次老师讲完后都懂,可是一到编写的时候要看老师编的代码才会写,怎样才能学

在jsp中使用js怎样才能获取session的值