站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于在jar包中的js文件

关于在jar包中的js文件

摘要: 关于在jar包中的js文件


我把一些class文件打成jar包
包层次为:
package aw.org.struts.taglib.html;
所有的class文件都在html包下,现在我想在html包里放一个js文件
那么在画面怎么能够访问到这个js文件?
这样
<script Language="JavaScript" src="./aw/org/struts/taglib/html/xxx.js"></script>
写根本就找不到,该如何是好哈?


做一个servlet,拦截所有的.js请求,把js读出来,当成文件返回给response


同意楼上


1楼厉害,这都想的出来


这样的性能呢?


难道你这个包里还有html文件?如果有的话,就跟使用那些html文件一样去使用js文件吧。


js是展现层的东西,总归放在webmodel下的某个目录比较好,有什么理由要把他放在java类的包里面,愿闻其详



做一个servlet,拦截所有的.js请求,把js读出来,当成文件返回给response

???

servlet 能拦截所有的js请求吗? 难道所有的js请求都是ajax吗?

servlet能拦截到 document.write吗?




所有的class文件都在html包下,现在我想在html包里放一个js文件???
这个不知道lz怎么想
你把js放在web的目录下面,然后用你的web引用不行么


<script Language="JavaScript" src="./aw/org/struts/taglib/html/xxx.js"></script>
==>
<script Language="JavaScript" src="/aw/org/struts/taglib/html/xxx.js"></script>



up


为什么JS也打进包里,怕别人窃取你的JS里的代码吗?


参考一下DWR的源代码吧
DWR中,engine.js util.js也打在jar中


不知道LZ出于什么目的。。。关注


html文件放在一个文件夹下,然后在此文件夹下建立一个js文件夹,把js文件放进去就ok了。不过这样的话可能要修改html文件


是这样的,我的目的是把一些组件封装到一个jar包中
例如:只能输入日期的文本框 等
这样在每个项目中只需要引用这个jar包,其他的什么都不用管了
不必再写那些js了。
TO hbwhwang(catmiw的ID已经停用,现在用这个)
这个方法我也想过,但是正如nationally(自由鸟) 所说的
怕影响性能,如果画面组件很多的话那么在打开的时候会出现很多问题
所以想来想去还是感觉只有把js也放到jar包中是最可取的
再次感谢大家的关心


楼主你没明白我的意思吧。
我再说一次,然后把代码给你写出来:
1、做一个servlet,可以处理所有以 .js结尾的请求。在web.xml中我们这样定义它:

javascriptservlet
com.unnamed.training.spring.util.JavaScriptServlet


javascriptservlet
*.js

比如你向服务器请求:"http://www.xxx.com/aw/org/struts/taglib/html/xxx.js",服务器不是真的到root/aw目录中去找这个js文件了,而是把这个请求交给这个servlet处理了。

2、这个servlet可以这样写:
package com.unnamed.training.spring.util;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class JavaScriptServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String fileUri = request.getRequestURI();
String contextPath = request.getContextPath();
if (!contextPath.endsWith("/")) {
contextPath = contextPath + "/";
}
fileUri = fileUri.substring(contextPath.length(), fileUri.length());

//注意:此处未考虑并发访问异常
BufferedReader in = new BufferedReader(new InputStreamReader(getClass().
getClassLoader().getResourceAsStream(fileUri)));
PrintWriter out = response.getWriter();

response.setContentType("text/javascript; charset=GBK");
String line = null;
while ((line = in.readLine()) != null) {
out.println(line);
}

in.close();
out.close();
}
}
它的功能就是到jar包中去找 *.js文件,把它以文件的形式发回给客户端浏览器。

3、在页面,我们可以这样调用:
<script language="javascript" src="aw/org/struts/taglib/html/xxx.js">
</script>
注意:地址是包名。


To:hbwhwang(catmiw的ID已经停用,现在用这个)

我试过了,但还是不行啊,找不到js文件哈

另外这个JavaScriptServlet 类放到什么位置?
他不放到jar包里吧?
有点晕了




JavaScriptServlet 放到classes或者一起打包jar放到lib都可以啊


To:hbwhwang(catmiw的ID已经停用,现在用这个)
但是从哪里调用这个servlet呢?



<script language="javascript" src="aw/org/struts/taglib/html/xxx.js">
</script>

src="aw/org/struts/taglib/html/xxx.js"
这句等于向服务器发了一个请求,这个请求就交给这个servlet了啊。不是你人工调用的,呵呵


To:hbwhwang(catmiw的ID已经停用,现在用这个)

但是我在web.xml中加上

javascriptservlet
com.unnamed.training.spring.util.JavaScriptServlet


javascriptservlet
*.js


这段的时候启动tomcat 就会出错哈
在web.xml文件中已经存在了一个

action
org.apache.struts.action.ActionServlet

config
/WEB-INF/struts-config.xml


debug
2


detail
2

2



action
*.do

这个,我把你给我的那段放到它下面这样是不是不可以哈?
该怎么配置这个servlet?



js应该放到web目录去,不要和class文件混在一起


To:hbwhwang(catmiw的ID已经停用,现在用这个)
我用javascriptservlet继承ActionServlet 就可以了吧?
== 我试一下哈



xinshou1979330(Success.java):
你好像不懂servlet?


To:hbwhwang(catmiw的ID已经停用,现在用这个)
恩,做的web项目太少了,不是很了解
刚才说的那个依然不好用哈



干脆把你QQ留下,我打个例子包给你看哈


我的msn:jzlpy@hotmail.com

上不了qq哈
谢谢了



good servlet! good job!



学习


不用那么麻烦,用war文件来部署WEB应用


自定義標簽庫到是干過,但是如此有創意還真沒試過....
學習了~~


To:hbwhwang(catmiw的ID已经停用,现在用这个)
要不把你的例子粘贴到这里吧,如果有时间的话
谢谢先了。



兄弟啊,我前面已经把例子贴在这里了。我想看这个帖子的大部分兄弟都理解了我的例子和做法。
你不能理解的原因并不是我的问题,而是你不懂SERVLET,不知道SERVLET的运行原理。这样我没办法帮你啊,你得自己去学SERVLET




但我现在是这么做的哈
不知道为什么没有调用那个servlet



晕得很!
自己也要差不多,别人才能帮你么!
现在都敢新潮,却不知道把基础的东西掌握,无奈哦!



同意hbwhwang(catmiw的ID已经停用,现在用这个) ( ) 的想法
其实就是自定义标签而以。


serlvet不会用?晕死,难道都是一开始学什么struts,hibernate的??
从这个意义上还真是框架害人啊,汗
JSP,servlet,jdbc,jndi,jta,这些基础J2EE技术都应该深入了解才对


恩,感谢大家了哈
我在朝这个方向努力一下
呵呵


把javascript语句和html一起在标签里输出
学习!


↑返回目录
前一篇: 如何用Class.forName方法动态加载构造方法带参数的类?
后一篇: 事件监听.疑问100分