• web工程目录结构的解析


    --------------------------------------------------------------前提知识--------------------------------------------

    web中/如果被浏览器解析,得到的地址是http://ip:port/              

    <a href="/">test</a>

    如果被服务器解析,得到的地址是: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了,所以访问成功了

  • 相关阅读:
    Spring-MVC
    Spring与MyBatis整合(哇,快来看,他写的真好,简单易懂哎)
    Spring事务终极版...
    JdbcTemplate(增删改查以及以注释实现增删改查)
    AOP进阶
    MyBatis增删改查
    JSP的数据交互
    JSP数据交互
    JSP中9大内置对象
    动态网页开发基础
  • 原文地址:https://www.cnblogs.com/skyvalley/p/14055258.html
Copyright © 2020-2023  润新知