当前位置:编程学习 > JAVA >>

如何访问jar包中的jsp页面

jsp页面已经打包成jar了,包括js,css样式,全都打包了。

请问,如何访问。

在线急求啊。。

感谢。。 --------------------编程问答-------------------- 这个真没遇到过。你就当成2个项目。写个webservice 试试吧、看看可以不。。。关注中 --------------------编程问答-------------------- 把jar包放在新工程的lib下,然后根据目录访问就行了。jar包所在目录为新工程的根目录。 --------------------编程问答--------------------
引用 2 楼 dryzeng 的回复:
把jar包放在新工程的lib下,然后根据目录访问就行了。jar包所在目录为新工程的根目录。


不行啊,我试过了。

不知道 你试过没。。 --------------------编程问答-------------------- 不好意思,我错了。WEB-INF里面的内容不能直接访问的,要通过程序才能访问。
比如a.jar里有个cn.xxx.A的类,你把a.jar放入lib下面,你在程序里就可以引用它。cn.xxx.A a = new cn.xxx.A(); --------------------编程问答-------------------- 4楼不是坑爹吗,我说的是jar包里面的JavaScript文件,css样式文件,如何访问
jsp页面中如何引用。 --------------------编程问答-------------------- 楼主有什么理由把jsp打成jar包呢? --------------------编程问答-------------------- 胡扯。
    头一回听说jsp  css 打成包还可以 new的。 --------------------编程问答-------------------- 写个servlet,通过url来访问,
用过dwr没,dwr就是把核心js文件打在jar包中,然后你页面引用(实际上是通过url访问到了servlet)就OK了!
其实任何文件都可以打成jar包,任然都是可用的,看代码:

// 访问js文件的操作
private void jsAction(String url, HttpServletRequest request, HttpServletResponse response) throws Exception {
String fileUri = url.substring(0, url.lastIndexOf("."));
        InputStream input = this.getClass().getResourceAsStream(fileUri);
        if (null == input) {
         throw new FrameworkException("找不到[" + fileUri + "]这个js文件");
        }
        BufferedReader reader = new BufferedReader(new InputStreamReader(input));  
        PrintWriter out = response.getWriter(); 
        response.setContentType("text/javascript;charset=UTF-8"); 
        String line = null; 
        while ((line = reader.readLine()) != null) { 
         if (line.indexOf("getV(\"hdfPath\")") != -1) {
         line = line.replace("getV(\"hdfPath\")", "\"" + request.getContextPath() + "\"");
         }
         if (line.indexOf("getV('hdfPath')") != -1) {
         line = line.replace("getV('hdfPath')", "'" + request.getContextPath() + "'");
         }
         if (line.indexOf("${suffix}") != -1) {
         line = line.replace("${suffix}", url.substring(url.lastIndexOf(".") + 1, url.length()));
         }
         out.println(line); 
        } 
        reader.close(); 
        out.close();
        out.flush();
        input.close();
}

// 访问图片或flash的操作
private void imgAction(String url, HttpServletResponse response) throws Exception {
InputStream input =null;
OutputStream output = null;
try {
String fileUri = url.substring(0, url.lastIndexOf("."));
input = this.getClass().getResourceAsStream(fileUri);
if (null == input) {
         throw new FrameworkException("找不到[" + fileUri + "]这个图片或flash");
        }
        output = response.getOutputStream();
        byte[] buffer = new byte[1024];
int i = 0;
while ((i = input.read(buffer)) != -1) {
output.write(buffer, 0, i);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(null !=output) {
//output.flush();
output.close();
}
if(null !=input) {
input.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}


楼主有这个想法,将来说不准也能写个框架玩玩呢,加油!我挺你! --------------------编程问答-------------------- 页面调用:
<script type="text/javascript" src="<z:contextPath/>/zl/framework/res/js/public.js.php"></script>

这里就是引用了jar的js文件,.php只是访问servlet的一个后缀,
public.js才是jar中真正的js文件,
这种方式在我们公司已经广泛使用,因为打成jar包的文件是不容更改的!

<img src="<z:contextPath/>/zl/framework/res/images/tree/info.gif.php"/>
这样写了,页面就能显示jar包中的图片,

举一反三,任何文件都是这个道理! --------------------编程问答--------------------
引用 9 楼  的回复:
页面调用:
<script type="text/javascript" src="<z:contextPath/>/zl/framework/res/js/public.js.php"></script>

这里就是引用了jar的js文件,.php只是访问servlet的一个后缀,
public.js才是jar中真正的js文件,
这种方式在我们公司已经广泛使用,因为打成jar包的文件……

“打成jar包的文件是不容更改的”这个说法有待考证,jar也是使用zip格式打包
使用servlet访问jar中的css、js资源是否真的必要?首先在server端的文件访问缓存就需要自己实现了,代价太高
相应的,似乎也不过提高一点点静态资源被篡改的门槛, --------------------编程问答-------------------- 我说的不容更改是相对的,不是绝对的,如果你强行把jar解压开来,改了再打包,那还能说啥!
比如说,你可以把spring的jar解压开,把里面的class都copy到 WEB-INF\classes\ 目录下,项目照样能跑,但一般没人这么做!
在多人开发同一项目时,会出现有人误删误改公共文件的现象,打成jar正好可以防止这个现象的发生!

至于必要性,就得看情况了,公说公有理,婆说婆有理!

代价太高,未必吧!你想一想,所有文件都是部署在服务器的,都是服务器资源,只要用户访问,就必须有一个下载的过程,不管是jar,还是静态资源。浏览器中的【删除临时文件】的按钮可不是用来看看的! --------------------编程问答--------------------
引用 11 楼  的回复:
我说的不容更改是相对的,不是绝对的,如果你强行把jar解压开来,改了再打包,那还能说啥!
比如说,你可以把spring的jar解压开,把里面的class都copy到 WEB-INF\classes\ 目录下,项目照样能跑,但一般没人这么做!
在多人开发同一项目时,会出现有人误删误改公共文件的现象,打成jar正好可以防止这个现象的发生!

至于必要性,就得看情况了,公说公有理,婆说婆有理!
……

那你们项目管理也太烂了
公共资源都是会放在指定的目录下的
使用和调用都是使用公共的模板路径的
公共资源不会被随意删除和新增,甚至修改,除非PM批准
你放到jar里也一样
还不如放到svn中去....


在项目中访问css和图片等资源的时候
我个人觉得没必要进行打包
可以部署一个资源服务器,然后所有的资源文件都按照指定的格式和路径进行访问
--------------------编程问答--------------------
引用 12 楼  的回复:
那你们项目管理也太烂了……


好吧,我们管理烂,你们都是好的

烂不烂且不管,只要给工资才是硬道理

你觉得没必要,人家觉得有必要,难道你要把你的看法强加给别人!

我认为楼主的这个想法不错,所以支持他 



--------------------编程问答--------------------
引用 13 楼 s478853630 的回复:
引用 12 楼  的回复:那你们项目管理也太烂了……

好吧,我们管理烂,你们都是好的

烂不烂且不管,只要给工资才是硬道理

你觉得没必要,人家觉得有必要,难道你要把你的看法强加给别人!

我认为楼主的这个想法不错,所以支持他

哥们我默默的挺你,技术再好,管理再强,思想层次上不去,这种人多着呢。 --------------------编程问答-------------------- 同问,同问!!!
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,