文章目录
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字符串