1. .jsp 文件放到 webroot 目录 还是 webroot 下的 WEB-INF 目录下。
webroot 下的jsp 页面可以直接访问, 通过设置过滤器,放在webroot下面的文件也可以实现不能直接访问。
web-inf 下的jsp 不能直接访问。
TomCat 服务器下的WEB-INF文件夹是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问
我们一般把jsp页面写在WebRoot\WEB-INF\目录下,这样使得jsp页面一定需要struts的控制转发才可访问,提高页面安全性。
但是今天在jsp页面中应用WebRoot目录中的css,js文件发现十分困难
使用了 JAVA 代码 获取了 站点根目录:
<%String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<title>Hello World</title>
<link rel="stylesheet" href="<%=basePath%>extjs/resources/css/ext-all.css" type="text/css"></link>
<script type="text/javascript" src="<%=basePath%>extjs/ext.js"></script>
<script type="text/javascript" src="<%=basePath%>extjs/ext-all.js"></script>
web-inf 下的jsp 引用 webroot 根目录下的js 及 css 需要在 web.xml 中添加:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
2. Extjs4.2.1 出现 Ext not defined
缺少js引用: 需要包含 源文件包中的 : ext.js ext-all.js 文件。 没有 ext-base.js 这个文件。
<link rel="stylesheet" href="<%=basePath%>extjs/resources/css/ext-all.css" type="text/css"></link>
<script type="text/javascript" src="<%=basePath%>extjs/ext.js"></script>
<script type="text/javascript" src="<%=basePath%>extjs/ext-all.js"></script>
网上还有 说是引入文件的顺序问题:
其实,问题还就是出在引用上。因为下面这两句是有默认的契约的:
<script type="text/JavaScript" src="Ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="Ext/ext-all.js"></script>
究竟是啥默认约定那?那就是这两句话的引用是绝对不能颠倒的!
3.将extjs4 引入 项目中的话,只选用引入源文件中的如下三个文件:
1.ext-all.js
2.ext-lang-zh_CN.js
3.ext-all.css 在 /resources/css 目录