Web基础知识和Servlet

239 阅读3分钟

一. Web基础知识

1. 软件架构

  1. C/S:客户端/服务器端
  2. B/S:浏览器/服务器端

2. Web资源分类

  1. 静态资源:每个用户请求后响应的资源都相同,可以直接被浏览器解析,如HTML,CSS,JavaScrip
  2. 动态资源:不同用户请求后响应的资源可能不同,需要先转换为静态资源再返回给浏览器,如Servlet/Jsp

3. 网络通信三要素

  1. IP:计算机在互联网中的唯一标识
  2. 端口:应用程序在互联网中的唯一标识,取值范围为0~65536
  3. 传输协议:不同计算机传输数据时必须遵循的规则
    1. TCP协议:安全协议,三次握手,速度较慢
    2. UDP协议:不安全协议,速度较快

4. Web服务器软件

  • 服务器软件:可以接收请求,处理请求,并产生响应的软件
  • Web服务器软件:可以接收请求,处理请求,并产生响应的软件;还可以部署Web项目,使用户可以通过浏览器访问所部署的项目,如Tomcat
  • 服务器:安装了服务器软件的计算机

二. Servlet

1. 概念

  • Server applet,运行在服务器端的小程序,用户可以通过浏览器访问

2. 执行原理

  1. 当服务器接收到客户端浏览器的请求后,会解析请求的URL路径,获取访问的servlet的资源路径
  2. Tomcat查找web.xml文件,是否有对应的url-pattern标签体内容
  3. 如果有,根据servlet-name查找对应的servlet-class全类名
  4. 将对应的类的字节码文件加载进内存
  5. 创建其对象,并执行相应的方法

3. Servlet中的生命周期方法

  1. void init(ServletConfig var1):servlet第一次被访问时执行此方法创建其对象,只执行一次,说明一个servlet在内存中只存在一个对象。loadOnStartup的值默认为-1,表示servlet第一次被访问时创建其对象;若将其值改为0或正整数,那么在服务器启动时就会执行此方法创建其对象。
  2. void service(ServletRequest var1, ServletResponse var2):提供服务的方法,每次访问servlet时都会被执行。
  3. void destroy():服务器正常关闭时,servlet被销毁之前,执行此方法释放资源,只执行一次。

4.Servlet的体系结构

  1. Servlet(接口)
    1. void init(ServletConfig var1)
    2. void service(ServletRequest var1, ServletResponse var2)
    3. void destroy()
  2. GenericServlet(抽象类):将Servlet接口中的service方法作为抽象方法,其他方法做了空实现
  3. HttpServlet(抽象类:限制实例化):对Http协议进行了封装,自己定义的Servlet继承HttpServlet即可

5. IDEA中Java项目的目录结构

  • 项目的根目录
    • src目录:存放自己所编写的代码源文件
    • web目录 :部署的Web应用的所在目录
      • WEB-INF目录
        • classes目录:放置字节码文件
        • lib目录:放置依赖的jar包
        • web.xml:Web项目的核心配置文件
  • 工作空间项目:D:\学习资料\各科资料\JAVA\IdeaProjects\test2
  • Tomcat部署的web项目:D:\学习资料\各科资料\JAVA\IdeaProjects\test2\out\artifacts\test2_war_exploded,对应着工作空间项目下的web目录下的所有资源 示例
  • IDEA项目中的src目录下的Java文件被编译后存放在Tomcat部署的web项目的\WEB-INF\classes目录下
  • WEB-INF目录下的资源不能被浏览器直接访问