项目名称(存放于:Tomcat软件安装目录中,webapps目录下的子文件夹)结合下边就是moubao
|-----静态资源 HTML,CSS,JS
|-----WEB-INF (客户不能直接通过浏览器进行访问)
|----web.xml 当前WEB项目的核心配置,Servlet2.5必须有,3.0以后可省略
|----lib 当前WEB项目所需要的第三方的jar的存放位置。
|----classes Java源码编译后生成class文件存放的位置。
这个博客
一般例如jsp,css,js之类的文件以及项目自带的图片资源什么的都是放在项目名(moubao)/WebContent目录下(也可能是项目名(moubao)/Webapp),以下事实基于这个环境下,并假设我有一个项目叫MouBao,下面是目录
java web中访问资源的几种方法:
//重定向
response.sendRedirect("/moubao/index.jsp");
//转发
request.getRequestDispatcher("/index.jsp").forward(request, response);
//超链接
//表单提交
...以上4中方式,除了转发是由服务器发起的路径,其他都是浏览器发起的(大家明白这句话我想表达的意思就可以了)
路径开头直接“/”表示当前路径
结论:
1、浏览器发起的请求中的“/”表示“Tomcat/webapps”目录下,比如你在浏览器中输入“localhost:8080/TaoBao”中的“/”就是表示Tomcat/webapps,调用资源的时候需要写/TaoBao/index.jsp
2、而服务器发起的请求中“/”表示“Tomcat/webapps/TaoBao”的目录,调用的时候写/index.jsp
注意到区别了吗
根据以上结论,比方说,我在cart.jsp中需要访问另一个jsp页面或者images中的图片
浏览器访问
<a href="/TaoBao/details.jsp>
<img src="/TaoBao/images/001.jpg>
或者也可以这样,利用”…“切换到目录/TaoBao之下
<a href="…/details.jsp>
<img src="…/images/001.jpg>
项目如果要重命名什么的,你也可以选择String path = request.getContextPath();来获取当前项目,System.out.print(path)在我当前项目下的输出结果就是 /TaoBao,(ps:在.jsp中可以直接这样调用方法;在.java中如果想使用这个方法需要注意的是request是HttpServletRequest类的实例,如果你的方法中request是ServletRequest的实例,那需要转换一下)
有的项目http://localhost:8080/代表的是部署后的项目名目录下