javaWeb项目结构

问题

  • javaWeb项目结构是怎么样的?
  • javaWeb项目结构为什么是这样的?
  • javaWeb项目为什么需要运行在tomcat或者jetty中才能跑起来?

javaWeb项目结构是怎么样的?

  • 项目结构
    | -  MyWebApp
          | -  WEB-INF/web.xml        -- 配置文件,用来配置Servlet等
          | -  WEB-INF/lib/           -- 存放Web应用所需各种JAR包
          | -  WEB-INF/classes/       -- 存放你的应用类,比如Servlet类
          | -  META-INF/              -- 目录存放工程的一些信息
    
  • 示例:
    • 代码——javaweb项目最简单的结构示例
    • 项目结构图
      javaweb简单的项目结构图
    • 怎么跑起来?
      • 我们把目录中的gitee中“MyWebApp”目录拷贝到tomcat下的webapps下(其实只有简单的三个文件,但是目录结构要对)
      • 启动tomcat
      • 访问http://localhost:8080/MyWebApp/myservlet
    • 我们可以看到返回了“My Servlet!”
    • 代码解析
      • web.xml文件
      • java类
  • 是不是没有想象中那么复杂,需要什么maven、spring、springmvc等等

javaWeb项目为什么需要运行在tomcat或者jetty中才能跑起来?

  • 答案:因为像tomcat或者jetty,都是接受一个请求并封装请求的数据,但是具体怎么处理请求等等他们不知道,他们只能说提供一个规范,而他们把前面相同的逻辑封装好,形成一个叫servlet的容器。
  • 其实如果不使用tomcat或者jetty,我们同样是可以接受请求,处理请求的数据,只是我们要获取请求数据,进行业务处理,然后再返回对应的返回值
  • 但是,前面的那些步骤是不是一样的,是不是可以封装起来,但是我要怎么把数据给到你去操作业务逻辑呢?
  • 所以,servlet规范出来了,只要你按servlet去实现对应的类、把映射关系写好,然后把项目丢到servlet容器中,就能启动一个项目

备注

  • 其实MyServlet.java文件不是必须的,有类文件就好了
  • 因为我的java类编译的时候是直接用javac编译的,而且需要servlet-api.jar,所以编译命令是这样的
    javac -cp tomcat地址/jar/servlet-api.jar MyServlet.java
    

参考资料

极客时间——深入拆解Tomcat & Jetty

原文地址:https://www.cnblogs.com/cgengwei/p/14054774.html