Study《JavaScript中访问jar包中的js》
来源:互联网 发布:淘宝买家累计信用提升 编辑:程序博客网 时间:2024/04/30 03:40
在用DWR时常看到/dwr/engine.js,而在工程中找不到此文件,后来发现:
原来js文件在dwr.jar包中就有,而且dwr的部署在web.xml中的设置就是为了,让在网页上的引用能够找到该js文件,如下
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWR Servlet</display-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
之后想想原理也简单,说白了就是:
通过定义servlet把js当成文件发给浏览器。
下面我们模拟一个例子
一、配置web.xml文件
<servlet>
<servlet-name> javascriptservlet </servlet-name>
<servlet-class> JavaScriptServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> javascriptservlet </servlet-name>
<url-pattern> *.js </url-pattern>
</servlet-mapping>
这样请求js文件时,就不是找工程下的js,而是请求交给servlet。
二、实现servlet
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文件,把它以文件的形式发回给客户端浏览器。
三、在页面中调用
<script language= "javascript " src="xxx.js ">
</script>
注:思想来源于网络(部分代码也来源于网络)
- Study《JavaScript中访问jar包中的js》
- jar包中访问图片
- 如何访问Jar包中的资源文件
- 访问jar文件包中的资源
- jar包中访问文件资源
- 配置jar包中的框架配置文件,访问jar包中的文件
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- Eclipse中查看jar包中的源码
- android的版本控制
- hdu 2033 人见人爱A+B
- 3.编程式调度器, 每年的第15天执行作业
- 如何证明素数有无穷多个
- [热身题][hdoj_1005]Number Sequence
- Study《JavaScript中访问jar包中的js》
- ClassLoader.getResourceAsStream(name);获取配置文件的方法
- CVS和CSV概念区分
- 又被你说中了!
- [hdoj_1005]Number Sequence
- js上传图片预览 .
- 安装软件失败,或者跟新失败导致死锁的解决方法
- hive之datanucleus常见问题及解决办法
- Unicode字符编码规范