Web程序是一种可以通过浏览器访问的应用程序。web应用是用户只需要有浏览器就可以访问的应用程序,无需安装其他软件。
B/S模型
B/S模型也称为浏览器-服务器模型。
优点:具有分布式的特点,可以随时进行查询、浏览等业务处理。
业务扩展简单方便,通过增加网页即可增加服务功能。
维护简单方便,只需要改变网页。
开发简单,共享性强。
C/S模型
C/S模型是客户端-服务器模型(数据库也是C/S模型)。
比较 | C/S | B/S |
---|---|---|
简介 | 服务器通常采用高性能的服务器PC,并采用大型数据库,客户端需要专用的客户端软件 | 访问端只需要安装一个浏览器,浏览器通过web Server与数据库进行交互 |
硬件环境 | 建立在专用的网络上,小范围里的网络环境,局域网之间通过专门的服务器提供连接和数据交换 | 建立在广域网上,不必是专门的网络硬件环境,具有更强的适应范围 |
对安全要求 | 面向相对固定的用户群,对信息安全的控制能力强 | 可发布公开信息,安全控制能力相对弱 |
对程序架构 | 更注重流程,对系统要求低 | 对安全及速度有多重考虑,需要建立在更优化的基础上 |
用户接口 | 建立在window平台上,表现方法有限,对程序员要求高 | 建立在浏览器上,有更丰富和生动的表现方式与用户交流 |
动态技术
CGI (Common Gateway Interface): 公共网关接口
PHP (HyperText Preprocessor): 超文本处理器
ASP (Active Server Page) : 活动服务器页面
JSP (Java Server Pages) : Java服务器页面,其是简化的Servlet设计
Http协议
HTTP: HyperText Transfer Protocol 超文本传输协议,是web应用程序的基础,是基于TCP/IP协议的应用层协议。
Http协议的应用端口号默认是80,HTTP协议的特定是:无状态、无连接(HTTP/1.1版本已经支持长连接)
Web服务器是“通过HTTP协议处理请求的计算机系统 ”,擅长提供静态的Web页面,而不做动态内容和不在服务器 上保持数据,而此时如果我们需要一个动态的页面就需要一些辅助程序来完成。
http协议内容
http协议包含的内容:
HTTP 常见的请求头
Accept: text/html,image/* --浏览器接受的数据类型
Accept-Charset: ISO-8859-1 --浏览器接受数据编码格式
Accept-Encoding: gzip,compress --浏览器接受的数据压缩格式
Accept-Language: en-us,zh- ---浏览器接受的语言
Host: www.it315.org:80 --请求发出的主机和端口(必须)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --浏览器缓存的最后修改时间
Referer: http://www.it315.org/index.jsp -- 当前请求来自于哪里 (防止非法链接)
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器的类型
Cookie:name=eric ---浏览器保存的cookie数据(会话管理)
Connection: close/Keep-Alive ---浏览器和服务器的连接状态。close:关闭。keep-alive:保持连接
Date: Tue, 11 Jul 2000 18:23:51 GMT --请求发出的时间
响应头
Location: http://www.it315.org/index.jsp --重定向的地址。结合302状态使用完成重定向的效果
Server:apache tomcat --服务器的类型
Content-Encoding: gzip --服务器发送给浏览器的数据压缩格式
Content-Length: 80 --服务器发送给浏览器的数据长度
Content-Language: zh-cn --服务器支持语言
Content-Type: text/html; charset=GB2312 --服务器发送给浏览器的数据类型和数据编码格式
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --服务器资源的最后修改时间
Refresh: 1;url=http://www.it315.org ---定时刷新或每隔n秒跳转资源
Content-Disposition: attachment; filename=aaa.zip -- 以下载方式打开资源
Transfer-Encoding: chunked
Set-Cookie:SS=Q0=5Lb_nQ; path=/search -- 服务器发送给浏览器的cookie数据
Expires: -1 --通知浏览器不使用缓存
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive 连接状态
Date: Tue, 11 Jul 2000 18:23:51 GMT 响应发出的时间
一个请求=请求行+请求头
请求行:
提交方式 uri http协议版本
提交方式:GET/POST
uri:/项目名称
http协议版本:Http/1.1:可以反复请求
Http/1.0:只能请求一次
URL:http://localhost:8080/hello(同一资源定位符)
url是uri的子集
请求头:Referer/User-Agent/Cookie/Connection
Referer:非法链接:代表请求地址从哪里来(应用场景:下载资源时),非法链接的情况:
- 直接访问下载时referer:null
referer请求头中不包含广告页面(!referer.contains(“adv.html”))
User-Agent:当前浏览器类型
响应头:Location/Refreah/Content-Disposition
- Refreah:定时刷新,每隔n秒资源跳转
- Content-Disposition:以什么方式打开资源
浏览器向服务器端发出请求(HttpServletRequset对象),服务器获取到请求的参数信息,进行响应后,tomcat等服务器就会做出一些逻辑发出响应(HttpServletResponse对象),浏览器获取到响应头信息以及响应的状态,给用户展示数据。服务器响应的时候如携带(cookie:饼干 小甜点) 将cookie携带给浏览器
不论是请求还是响应都要遵循一定的格式规则,http就是一个规则,定义请求信息和响应信息的解析规则
java 企业级应用开发
基于Java的Web程序的三层模型:展现层–>业务层–>持久层
展现层发送一个基于HTTP协议的请求(HttpRequest)到业务层,业务层转发这个请求到持久层,持久层访问数据库,数据库接收到请求后,对持久层进行回应,持久层再向上交付请求到的数据业务层,业务层通过HttpResponse协议,将数据传到展现层。
整个三层协议中,上层依赖于下层,而下层不依赖上层。
展现层(View)中用到的技术有:JSP(JSTL)、Velocity、React、H5.
业务层(Model)中用到的技术是Spring
持久层中用到的技术是:Hibernate/MyBatils
一般在展现层和业务层之间还会有一层控制层(Control),控制层能够对展现层中的数据进行控制判断,否则直接对业务层产生影响,会有一定的耦合性,会改变业务的逻辑控制。
控制层中用到的技术有:MVC/Struts/Servlet
整个的web应用程序的资源配置都会基于web.xml配置文件,整个应用程序最终会打包为一个war包,利用容器技术(tomcat)运行
webApp创建步骤:
- 1.新建mave工程
- 2.在src/main文件夹中新建webapp目录,补全目录结构如下
- 3.点到工程文件,F4进行设置–》+webapp–>移除本来的文件,指定到webapp\web.xml下(上下两个地方)
- 4.写Servlet
- 5.配置tomcat–>Edit Configration–>fix–>选择到当前项目–》ok–>deployment–>ok