JavaWeb笔记

JavaWeb

1、基本概念

1.1web开发

  • 静态web

    • html css
    • 提供给所有人看的数据不会发生变化
  • 动态web

    • 淘宝 几乎所有网站
    • 提供给所有人看的数据始终会发生变化
    • 技术栈:Servlet/ISP,ASP,PHP

    在java中,动态web资源开发的技术统称javaweb

1.2web应用程序

web应用程序:可以提供浏览器访问的程序

  • a.html、b.html……多个web资源,这些web资源可以被外界访问,对外界提供服务
  • 能访问到任何一个页面或者资源都存在于计算机上
  • 这些统一的web资源都会被放在同一个文件夹下,web应用程序–>Tomcat:服务器
  • 一个web应用由多部分构成(静态web,动态web)
  • web应用程序编写完成之后,若想提供给外界访问,需要一个服务器来统一管理

1.3静态web

*.html, *.htm,这些都是网页的后缀,如果服务器上一直存在这些东西,我们就可以直接进行读取,通络;

请添加图片描述

静态web缺点

  • web页面无法动态更新,所有用户看到都是同一个页面
    • 轮播图,点击特效:伪动态
    • JavaScript【实际开发中,用的最多】
    • VBScript
  • 它无法和数据库交互(数据无法持久化,用户无法交互)

1.4动态web

页面会动态展示:web的页面展示效果因人而异

请添加图片描述

缺点:

  • 加入服务器的动态web资源出现了错误,我们需要重新编写我们的后台程序,重新发布

优点:

  • web页面可以动态更新,所有用户看到都是同一个页面
    • 轮播图,点击特效:伪动态
    • JavaScript【实际开发中,用的最多】
    • VBScript
  • 它可以和数据库交互(数据持久化:注册,商品信息……)
    请添加图片描述

2、web服务器

2.1技术讲解

ASP:

  • 微软:国内最早流行的就是ASP
  • 在HTML中嵌入了VB的脚本,ASP+COM
  • 在ASP开发中,基本一个页面都有几千行的业务代码,页面极其混乱
  • 维护成本高

PHP:

  • PHP开发速度快,功能强大,跨平台,代码简单
  • 无法承受大访问量的情况(局限性)

JSP/servlet:

B/S:浏览器与服务器

C/S:客户端与服务器

  • 孙公司主推B/S架构
  • 基于java语言
  • 可以承载三高问题带来的影响
  • 语法像ASP,ASP–>ISP,加强市场强度

2.2web服务器

服务器是一种被动的操作,用来处理用户的一些请求和给用户一些响应信息

IIS

微软的;ASP……,Windows中自带的

Tomcat
请添加图片描述

3、Tomcat

官网:http://tomcat.apache.org

请添加图片描述

文件夹信息:
请添加图片描述

bin文件:

  • 启动:startup.bat
  • 关闭:shutdown.bat

请添加图片描述

请添加图片描述

4、Http

4.1Http详解

HTTP(超文本传输协议)是一个简单的请求响应协议,它通常运行在TCP之上

  • 超文本:图片,音乐,视频,定位,地图……
  • 文本:html,字符串……

4.2两个时代

  • http1.0:客户端可以与文本服务器连接后,只能获得一个web资源,断开连接
  • http2.0:客户端可以与文本服务器连接后,可以获得多个web资源

4.3Http请求

请添加图片描述

请添加图片描述

4.4Http响应

请添加图片描述

5、Maven

在web开发中需要使用大量的jar包,所以需要使用Maven

5.1Maven项目架构管理工具

用来导入jar包

核心思想:约定大于配置,有约束,不要去违反。

5.2下载安装Maven

Maven官网:http://maven.apache.org
请添加图片描述

5.3配置环境变量

系统环境变量:

配置如下配置:

  • M2_HOME Maven目录下的bin目录
  • MAVEN_HOME Maven的目录
  • 在系统变量path中配置%MAVEN_HOME%\bin

5.4阿里云镜像

请添加图片描述

5.5本地仓库

在本地的仓库,远程仓库;

建立一个仓库:localRepository

请添加图片描述

5.6在IDEA中使用Maven

IDEA配置Maven环境

  • 选择IDEA中File–>Setting
  • 搜索maven
  • 设置IDEA使用本地安装的Maven,并修改配置文件路径
    请添加图片描述

Maven坐标主要组成

  • groupld:定义当前Maven项目隶属组织名称(通常是域名反写,例如com.***)
  • artifactld:定义当前Maven项目名称(通常是模块名称,例如order-service,goods-service)
  • version:定义当前项目版本号

1.启动IDEA

2.创建一个Maven项目

请添加图片描述

在IDEA中配置Tomcat

6、Servlet

6.1Servlet简介

  • Servlet就是sun公司开发动态web的一门技术
  • sun在这些API中提供一个接口叫做:Servlet,如果想开发一个Servlet程序,只需要完成两个小步骤
    • 编写一个类,实现Servlet接口
    • 把开发好的JAVA类部署到web服务器中

把实现了Servlet接口的JAVA程序叫做:Servlet

6.2HelloServlet

  • 构建一个maven项目 删掉里面的src目录,在这个项目里建立Moudel;这个空的工程就是Maven主工程

  • 关于Maven父子工程理解:

    • 父工程中有:

      <modules>
          <module>servlet-01</module>
          </modules>
      

      子项目会有:

请添加图片描述

6.3Servlet运行原理

Servlet是由web服务器调用,web服务器在收到浏览器请求之后:

请添加图片描述

6.4Mapping问题

1.一个请Servlet可以指定一个映射路径

请添加图片描述

2.一个请Servlet可以指定多个映射路径

请添加图片描述

3.一个请Servlet可以指定通用映射路径

请添加图片描述

4.指定一些后缀或前缀等等

请添加图片描述

6.5Servletcontext

web容器在启动的时候,它会为每个web程序都创建一个对应的Servletcontext对象,它代表了当前的web应用;

  • 共享数据

    在这个Servlet中保存的数据,可以在另外一个Servlet中拿到;
    请添加图片描述

  • 获取初始化数据

请添加图片描述

6.6HttpServletResponse

web服务器接受客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应一个HttpServletResponse;

  • 如果要获取客户端请求过来的参数:找HttpServletRequest
  • 如果要给客户端响应一些信息:找HttpServletResponse

1.简单分类

负责向浏览器发送数据的方法

请添加图片描述

负责向浏览器发送响应头的方法

请添加图片描述

2.常见应用

1.向浏览器输出消息

2.下载文件

  • 要获取下载文件的路径
  • 下载文件名是啥
  • 设置想办法让浏览器能够支持下载需要的东西
  • 获取下载文件的输入流
  • 创建缓冲区
  • 获取OutputStream对象
  • 将FileOutputStream流写入到buffer缓冲区
  • 使用OutputStream将缓冲区中的数据输出到客户端!

3.验证码功能

请添加图片描述

用户登录

请添加图片描述

用户注册

请添加图片描述

7、Cookie

7.1Cookie基本使用

  • 客户端会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问

  • 基本使用

    • 创建Cookie对象,设置数据

      Cookie cookie=new Cookie(“key","value");

    • 发送Cookie到客户端,使用response对象 response.addCookie(cookie);

    • 获取客户端携带的所有Cookie,使用request对象

      Cookie[] cookie=request.getCookies();

    • 遍历数组,获取每一个Cookie对象:for

    • 使用Cookie对象方法获取数据

      cookie.getName();

      cookie.getValue();

7.2Cookie的原理

Cookie的实现是基于HTTP协议的

  • 响应头:set-cookie
  • 请求头:cookie

请添加图片描述

7.3Cookie使用细节

  • Cookie存活时间

默认情况下,Cookie存储在浏览器内存中,当浏览器关闭,内存释放,则Cookie被销毁

setMaxAge(int seconds):设置Cookie存活时间

  • 正数:将Cookie写入浏览器所在电脑的硬盘,持久化存储。到时间自动删除

  • 负数:默认值,Cookie在当前浏览器内存中,当浏览器关闭,则Cookie被销毁

  • 零:删除对应Cookie

  • Cookie存储中文

    • Cookie不能直接存储中文
    • 如需要存储,则需要进行编码:URL编码

8、Session

8.1Session基本使用

  • 服务端会话跟踪技术:将数据保存在服务端

  • JavaEE提供HttpSession接口,来实现一次会话的多次请求间数据共享功能

  • 使用:

    1.获取Session对象

    HttpSession session=request.getSession();

    2.Session对象功能:

    • void setAttribute(String name,Object o):存储数据到session域中
    • Object getAttribute(String name):根据key.获取值
    • void removeAttribute(String name):根据key,删除该键值对

8.2Session原理

  • Session是基于Cookie实现的

请添加图片描述

8.3Session使用细节

  • Session钝化、活化:

    • 钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘的文件中
    • 活化:再次启动服务器后,从文件中加载数据到Session中
  • Session销毁:

    • 默认情况下,无操作,30分钟自动销毁
    <session-config>
        <<session-timeout>30</session-timeout>
    </session-config>
    
    • 调用Session对象的invalidate()方法

9、Filter

9.1Filter概念

Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一

  • 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能

  • 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等……

请添加图片描述

9.2Filter快速入门

请添加图片描述

9.3Filter执行流程

请添加图片描述

9.4Filter使用细节

  • Filter可以根据需求,配置不同的拦截资源路径
    -请添加图片描述

  • 过滤器链

请添加图片描述

注解配置的Filter,优先级按照过滤器类名(字符串)的自然排序

10、JSP

Java Server Pages:java 服务器端页面,也和Servlet一样,用于动态Web技术

JSP=HTML+Java

10.1JSP入门

  • 请添加图片描述

10.2JSP原理

JAVA Server Pages

请添加图片描述

10.3JSP脚本

请添加图片描述

11、AJAX

11.1AJAX概念

请添加图片描述

同步与异步

请添加图片描述

11.2AJAX快速入门

请添加图片描述

12、MyBatis

12.1MyBatis简介

请添加图片描述

请添加图片描述

12.2快速入门

请添加图片描述

请添加图片描述

12.3核心配置文件

请添加图片描述

13、JSON

13.1JSON概念

概念:JavaScript Object Notation

请添加图片描述

13.2JSON基础语法

请添加图片描述

13.3JSON数据和JAVA对象转换

  • 请求数据:JSON字符串转为JAVA对象
  • 响应数据:JAVA对象转为JSON字符串

请添加图片描述

14、Vue

14.1Vue概念

请添加图片描述

14.2Vue快速入门

请添加图片描述

14.3Vue常用指令

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

14.4Vue生命周期

请添加图片描述

15、Element

15.1Element概念

请添加图片描述

15.2Element快速入门

请添加图片描述

15.3Element布局

请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值