学习笔记 - JavaWeb知识点总结

文章目录

1. Web概述和Tomcat服务器

1.1 使用tomcat前的准备

  • 安装并配置jdk
  • 下载并解压Tomcat
  • 配置环境变量
    变量名:CATALINA_HOME
    变量值:刚刚安装的路径

1.2 tomcat的目录结构

目录名 作用
bin 专门用来存放Tomcat服务器的可执行程序
conf 存放Tomcat的配置文件
lib 存放Tomcat的jar包
logs 存放Tomcat服务器运行时输出的日志
temp 存放Tomcat运行时产生的临时数据
webapps 存放部署的Web工程
work Tomcat的工作时目录

1.3 启动和关闭Tomcat服务器

启动Tomcat服务器

  • 找到Tomcat目录下的bin中的startup.dat, 双击启动。

  • 打开命令行, cd到bin下, catalina run指令

关闭Tomcat服务器

  • 关闭命令窗口

  • 找到bin下的shutdown.bat执行

  • 将Tomcat服务窗口置于当前页面, ctrl+c

测试Tomcat

  • http://locathost:8080

  • http://127.0.0.1:8080

  • http://真实IP:8080

1.4 Tomcat的其他设置

  • 修改端口号

    找到Tomcat目录下的conf目录, 找到Server.xml修改端口号
    在这里插入图片描述

  • 配置主机名

    在这里插入图片描述

  • 部署web工程

    把Web工程目录拷贝到Tomcat目录下的webapps中
    
  • 用手托的方式和在http:ip 端口号/工程名访问的区别

    用手托使用的是file://协议
    在浏览器中输入http://使用的是http协议

    当我们在浏览器地址栏中输入访问地址, 没有工程名时, 默认访问的是root工程
    当我们在浏览器地址栏中输入访问地址, 没有资源名时, 默认访问index文件

网站访问的原理
1. 输入域名,回车
2. 在本地的c:/windows/System32/drivers/Etc/Hosts配置文件下有没有这个域名映射
有 返回对应的ip地址
没有 去dns服务器中寻找 找到放回

1.5 Web概述

  • JavaWeb是什么?

        JavaWeb是动态Web资源开发技术, 所有通过Java语言编写可以通过浏览器访问的程序总称, 叫做JavaWeb
        JavaWeb是基于请求和响应来开发的
    
  • 什么是请求?

        请求(Request)是指客户端给服务器发送数据。
    
  • 什么是响应?

        响应(Response)是指服务器给客户端回传数据。
    
  • 两者之间的联系?

        有请求就有响应!
    
  • Web资源的分类

    Web资源按实现的技术和呈现的效果不同, 又分为静态资源和动态资源两种
    静态资源: html css js txt MP4 jpg
    动态资源: jsp页面 Servlet程序…

  • 常用的Web服务器

     Tomcat  jboss  GlassFish  Resin  WebLogic.....
    

1.6 动态Web工程目录

在这里插入图片描述

2. Servlet程序

2.1 Servlet介绍

  • Servlet是JavaEE的规范之一,规范就是接口。
  • Servlet是JavaWeb三大组件之一, 三大组件分别是:Servlet程序, listener监听器, filter过滤器。
  • Servlet是运行在服务器端的一个java小程序, 它可以接收客户端的请求, 并响应数据。

2.2 实现Servlet的方式

  • 方式1: 实现Servlet接口

     1. 编写类实现Servlet接口
     2. 实现Service方法, 处理请求并响应数据
     3. 在Web.xml中配置Servlet程序的访问地址
    
  • 方式2: 继承HttpServlet

      1. 编写类继承httpServlet 
      2. 重写doGet  doPost方法(Service方法做了分发处理)
              note: 如果重写了init方法需要在第一行加上super.init(config);
      3. 到web.xml中配置Servlet的访问地址
    

Web.xml的执行过程 在这里插入图片描述
配置Web.xml

在这里插入图片描述

Mapping的配置

  • mapping可以指定多个资源路径(多指定几个Servlet-mapping)

  • mapping可以指定通用路径(*)

  • mapping可以自定义后缀
    *.xxx

2.3 Servlet的继承体系

在这里插入图片描述

2.4 Servlet生命周期

1. 类加载,然后执行Servlet构造方法
2. web容器执行init()初始化方法初始化Servlet容器
           前两步, 是在第一次创建Servlet程序时会调用
3. 执行service方法
      每次执行都会调用
4. 执行destroy销毁方法
      工程停止时会调用

2.5 Servlet实现原理

  1.浏览器向服务器发出GET请求(请求服务器ServletA)

  2.服务器上的容器逻辑接收到该url,根据该url判断为Servlet请求,此时容器逻辑将产生两个对象:请求对象(HttpServletRequest)和响应对象(HttpServletResponce)

  3.容器逻辑根据url找到目标Servlet(本示例目标Servlet为ServletA),且创建一个线程A

  4.容器逻辑将刚才创建的请求对象和响应对象传递给线程A

  5.容器逻辑调用Servlet的service()方法

  6.service()方法根据请求类型(本示例为GET请求)调用doGet()(本示例调用doGet())或doPost()方法

  7.doGet()执行完后,将结果返回给容器逻辑

  8.线程A被销毁或被放在线程池中

注意:

  • 在容器中的每个Servlet原则上只有一个实例
  • 每个请求对应一个线程
  • 多个线程可作用于同一个Servlet(这是造成Servlet线程不安全的根本原因)
  • 每个线程一旦执行完任务,就被销毁或放在线程池中等待回收

2.6 Servlet常用类

2.6.1 ServletConfig

 ServletConfig在访问Servlet程序时由Tomcat创建, 是Servlet的配置文件

ServletConfig的作用

  • 获取别名
    this.getServletConfig().getServletName();
  • 获取初始化参数init-param(需要在servlet下配置)
    this.getServletConfig().getInitParameter(“root”);
  • 获取ServletContext上下文对象
    this.getServletConfig().getServletContext();

2.6.2 ServletContext

  • ServletContext介绍

    1. ServletContext是一个接口, 它表示Servlet的上下文对象
    2. 一个Web工程只有一个ServletContext对象实例(全局唯一性)
    3. ServletContext是一个域(存取数据的操作范围)对象    类似map对象
          存操作         setAttribute() 
          取操作         getAttribute()
          删除操作     removeAttribute()
    4. ServletContext在web工程部署时启动, 在停止工程时销毁
    
  • ServletContext的作用

    1. 共享数据(域对象) 、请求转发、获取上下文参数context-param
      getServletConfig().getServletContext().getInitParameter(“String s”)
    2. 获取当前的工程路径, 格式:/工程路径
      getContextPath()
      获取工程部署后在服务器硬盘上的绝对路径
      getRealPath("/")
      注: /被服务器解析地址为: http://ip:port/工程名/ 映射到IDEA代码web目录上
    3. 像map一样存取数据
      setA
  • 6
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值