————————————————————–前提知识——————————————–
web中/如果被浏览器解析,得到的地址是http://ip:port/
如果被服务器解析,得到的地址是:http://ip:port/工程路径
1.<url-pattern>/servlet1</url-pattern>
2.<servletContext.getRealPath(""/);
3.request.getRequestDispatcher("/");
但是存在特殊情况,就是服务器把斜杠转发给浏览器解析了
response.sendRedirect("/"); //把斜杠发送给浏览器解析,得到http://ip:port/
下面是以服务器为例子
—————————————————————正文——————————————————-
刚开始学javaweb的时候对于目录结构懵懵懂懂,今天重新复习,终于搞懂了,现在记录一下,感觉大家学的时候还是会迷糊
/这个符号指的是项目工程地址,即:http://ip:port/工程名/
通过context.getRealPath(“/”)方法(context是ServletContext对象)映射到的是硬盘中工程实际的地址
打开实际地址就会知道,如下,是一个目录,也就是说/代表的就是下面这个目录,而这个目录和项目中什么结构是一样的呢

没错就是web目录

所以说:叙述如下———————————————————————————–
web项目的工程路径指的就是web这个文件夹路径
也就是说web文件夹里面的WEB-INF和其他资源都是在 项目工程根路径/ 下
src并不在根路径下
而src目录下的所有代码都会被编译成字节码放在硬盘上的WEB-INF的classes文件夹中

但是在idea项目结构中看不出来而已,classes其实是在WEB-INF下,被展示在项目结构另一个目录中,即out下面的目录
classes是和web.xml同级,存在于WEB-INF目录中。
总结———————————————-
我们项目的/根路径,指的就是web目录下的路径
根路径下有熟悉的WEB-INF和index.jsp
src不在根路径下,src编译后的classes也不在根路径/下
/在写代码的过程中代表的就是web目录,获取web目录下的各种资源文件
但是为什么进行servlet访问的时候,servlet代码也不在web目录下啊,为什么 http://ip:port/工程名/servlet名 就能成功访问呢,这是因为web.xml中又配置了一个映射,映射到servlet了,所以访问成功了
