JAVAEE - JavaWeb学习笔记

一、C/S与B/S架构

  • C/S 客户端/服务器端
    • 用户本地有客户端,远程有服务器端
    • 优点:用户体验好
    • 缺点:开发部署 安装维护麻烦
  • B/S 浏览器端/服务器端
    • 通过浏览器浏览不同的网址(URL),访问不同的服务器端程序
    • 优点:开发 安装 部署 维护简单
    • 缺点:若应用过大,用户体验可能会受到影响
      • 对硬件要求过高

二、HTML标签

  • 表单 form
    • 属性:
      • action:指定提交数据URL
      • method:指定提交方式
        • get:
          请求参数在地址栏中显示,参数大小有限制,不太安全
        • post:
          请求参数不在地址栏中显示,参数大小没限制,比较安全
          表单中数据想要被提交,必须指定name属性
    • 表单项标签
      • input:通过type属性,改变样式
        • text: placeholder默认提示信息,输入内容后会清空
        • password:密码框
        • radio:单选框
          • 多个单选框name属性值需统一
          • 给每个单选框提供value属性
          • checked为默认选择
        • checkbox:复选框
        • file:
        • hidden:隐藏域,用于提交一些信息
        • 按钮:
          • botton:普通按钮
          • submit:提交按钮
          • image:图片按钮
        • label:指定输入项的文字描述信息
          • labelfor属性一般会和inputid属性值相对应应,点击label区域,会让input输入框获取焦点
      • select:下拉列表
        • option
      • textarea:文本域
        • cows 指定列数
        • rows 指定行数

三、CSS

  1. CSS语法
    • 格式
      选择器{ 属性名:属性值; 属性名:属性值;}
  2. 选择器(基础)
    • ID选择器 #ID属性值{}
    • 类选择器 .class属性值{}
    • 元素选择器 标签名称{}
  3. 选择器(扩展)
    • 所有元素 *{}
    • 并集选择 选择器1,选择器2{}
    • 子选择器 选择器1 选择器2{}
    • 父选择器 筛选子选择器2的父选择器1选择器1>选择器2{}
    • 属性选择器 元素名称[属性名 = “属性值”]{}
    • 伪类选择器 元素:状态{}
      • <a> 状态
      • link 初始化状态
      • hover 鼠标悬停
      • visited 已访问
      • active 正在访问

七、Tomcat web服务器软件

  1. 下载 安装
    • 打开终端,输入以下命令 Library/Tomcat/bin/startup.sh,
    • 浏览器中输入localhost:8080,查看效果
    • 关闭 shutdown.sh 或 Ctrl+C
  2. 部署项目
    • 直接将项目放入 webapps目录下,或打包成war包
    • 在conf\Catalina\localhost创建任意名称的xml文件,内容为:<Context docBase = "项目存放路径” />;xml文件名称为虚拟目录

八、Servlet

  1. 概念:运行在服务器端的小程序
    • 是一个接口,定义了java类被浏览器访问到的规则
    • 使用时自定义一个类,实现servlet接口,复写方法
  2. 执行原理
    • 客户端发送请求后,解析请求URL路径,获取servlet资源路径
    • 查找web.xml文件,查找<url-pattern>标签体内容
    • 查找对应<servlet-class>全类名
    • tomcat将字节码文件加载进内存,并创建其对象
    • 调用方法
  3. 生命周期
    • init方法:被创建,只执行一次
      • <servlet>标签下可配置创建时机
        • 第一次被访问时
          • <load-on-startup>的值为负数
        • 在服务器启动时创建
          • <load-on-startup>为0或正整数
  4. Servlet体系结构
    • Servlet – 接口
    • GenericServlet – 抽象类
      • 将Servlet接口中Service()方法作为抽象,其他方法默认空实现。
    • HttpServlet – 抽象类
      • 对HTTP协议的一种封装,简化操作。复写doGet、doPost方法
  5. Servlet相关配置
    • urlpartten:Servlet访问路径,可定义多个访问路径@WebServlet({"/demo1","/demo2","/demo3"})
      • /xxx:路径匹配
      • /xxx/xxx:多层路径目录结构
      • *.xxx 扩展名匹配

九、HTTP

  1. 概念:超文本传输协议
    • 传输协议:定义了客户端和服务器端通信时,发送数据的格式
    • 基于TCP/IP传输协议,默认端口号为80,基于请求/响应模型(一次请求对应一次响应),无状态的(每次请求相互独立,不能交互数据)
    • 历史版本:
      • 1.0:每一次请求响应都会建立新的连接
      • 1.1:复用连接
  2. 请求消息数据格式
    • 请求行
      • 请求方式 请求url 请求协议/版本
        GET /login.html HTTP/1.1
    • 请求头
    • 请求空行
    • 请求体
      • 封装POST请求消息的请求参数

十、Request

  1. request对象和response对象的原理
    1. request和response对象是由服务器创建的
    2. request对象用于获取请求消息,response对象用于设置响应消息
  2. request对象继承体系结构:
    ServletRequest – 接口
    | 继承
    HttpServletRequest – 接口
    | 实现
    org.apache.catalina.connector.RequestFacade 类(tomcat编写)
  3. request功能:
    1. 获取请求消息数据

      1. 获取请求行数据
        • GET /day08/demo1?name=zhangsan HTTP/1.1
        • 方法:
          1. 获取请求方式 :GET
            • String getMethod()
          2. 获取虚拟目录:/day08
            • String getContextPath()
          3. 获取Servlet路径: /demo1
            • String getServletPath()
          4. 获取get方式请求参数:name=zhangsan
            • String getQueryString()
          5. 获取请求URI:/day08/demo1
          6. 获取协议及版本:HTTP/1.1
            • String getProtocol()
          7. 获取客户机的IP地址:
            • String getRemoteAddr()
    2. 获取请求头数据

      • 方法:
        • (*)String getHeader(String name):通过请求头的名称获取请求头的值
        • Enumeration getHeaderNames():获取所有的请求头名称
    3. 获取请求体数据:

      • 请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
      • 步骤:
        1. 获取流对象

          • BufferedReader getReader():获取字符输入流,只能操作字符数据
          • ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据
          • 在文件上传知识点后讲解
        2. 再从流对象中拿数据

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值