目录
1丶B/S与C/S架构
1.1B/S架构:
(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
1.2C/S架构:
C/S结构(Client/Server,客户端/服务器模式)服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。客户端进行用户界面/事物处理,服务器进行数据处理。
1.3两者区别
1.硬件环境不同
C/S一般建立在抓用的网络上,小范围里的网络环境,局域网之间在通过专门服务器提供链接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,比如:电话上网,租用设备,信息自己管理有比C/S更强的适应范围,一般只要有操作系统和浏览器就行
2.对安全要求不同
C/S一般面向相对固定并且相同区域,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布可公开信息
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户
3.处理问题不同
C/S程序可以处理用户固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。
C/S的客户端由于是本地程序,因此和本地硬件,程序的交互性很强,比如可以控制本机的其他程序,可以读写本地磁盘文件,可以与硬件交互。
B/S建立在广域网上,面向不同的用户群,分在地域,这是C/S无法做到的,与操作系统平台关系最小,正因为如此B/S很难和本地硬件,程序,文件进行交互。比如:很难控制本机的其他程序,很多那都写本地磁盘文件,很难与硬件交互,当然可以用ActiveX技术解决,比如网银,这样做的问题就是可能会被客户拒绝,而且只能Windows操作系统。
项目 | B/S | C/S |
---|---|---|
安全性 | 安全性较差 | 固定区域相对安全 |
环境 | 通过浏览器使用,无需安装 | 客户端需要安装 |
更新 | 无需用户操作 | 用户手动更新 |
网络 | 易用性差,依赖网络 | 无网络部分功能可使用 |
2丶配置Tomcat
2.1安装Tomcat
2.2Tomcat启动和配置
可以配置启动的端口号
-
tomcat的默认端口号为:8080
-
mysql:3306
-
http:80
-
https:443
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主机的名称
-
默认的主机名为:localhost->127.0.0.1
-
默认网站应用存放的位置为:webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
3丶发布一个web网页
不会就先模仿
-
将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了
网站应该有的结构
--webapps:Tomcat服务器的web目录
-ROOT
-Kuangstudy:网站的目录名
- WEB-INF
-classes:java程序
-lib:web应用所依赖的jar包
-web.xml:网站配置文件
- index.html:默认的首页
- static
-css
-style.css
-js
-img
-.....
HTTP协议:面试
Maven:构建工具
-
Maven安装包
Servlet入门
-
HelloWorld!
-
Servlet配置
-
原理
4丶Http
4.1丶什么是HTTP
HTTP(超文本传输协议)是一个简单的请求~响应协议,它通常运行在TCP之上。
-
文本:html,字符串,~....
-
超文本:图片,音乐,视频,定位,地图......
-
默认端口:80
Https:安全的
-
默认端口:443
4.2丶两个时代
-
http1.0
-
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
-
-
http2.0
-
HTTP/1.1:客户端可以与web服务器连接后,可以获得一个web资源。
-
4.3丶Http请求
-
客户端---发请求(Request)---服务器
百度:
Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip,deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:Keep-alive
1丶请求行
-
请求行中的请求方式:GET
-
请求方式:Get,Ppost,HEAD,DELETE,PUT,TRACT...
-
get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址显示数据内容,不安全,但高效
-
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址显示数据内容,安全,但不高效
-
2丶消息头
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
4.4丶Http响应
-
服务器---响应-----客户端
百度:
Cache-Control:private 缓存控制
Connection:keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
1.响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refrush:告诉客户端,多久刷新一次
Location:让网页重新定位;
2丶响应状态码(重点)
200:请求响应成功 200
3xx:请求重定向
-
重定向:你重新到我给你的新位置;
4xx:找不到资源 404
-
资源不存在;
5xx:服务器代码错误 500 502:网关错误
5丶JSP
5.1什么是JSP
JSP: 全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP的本质是servlet, 通过response的printWriter返回,response的getOutputStream只能调用一次,返回流就不能返回页面刷新。
5.2JSP的页面元素
1. 静态内容
就是html,css,javascript等内容
2. 指令
以<%@开始 %> 结尾,比如<%@page import="java.util.*"%>
3. 表达式 <%=%>
用于输出一段html
4. Scriptlet(小脚本)
在<%%> 之间,可以写任何java 代码
5. 声明
在<%!%> 之间可以声明字段或者方法。但是不建议这么做。
6. 动作
<jsp:include page="Filename" > 在jsp页面中包含另一个页面。在包含的章节有详细的讲解
7. 注释 <%-- -- %>
不同于 html的注释 <!-- --> 通过jsp的注释,浏览器也看不到相应的代码,相当于在servlet中注释掉了
5.3JSP的工作原理
1.当一个JSP文件第一次被请求的时候,JSP引擎(本身也是一个Servlet)首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。
2.其次创建一个该Servlet的实例,并执行该实例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次)。
3.然后创建并启动一个新的线程,新线程调用实例的jspService()方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程)。
4.浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService()方法中。
5.jspService()方法执行后会将HTML内容返回给客户端。
6.如果JSP文件被修改了,服务器将根据设置决定是否对该文件进行重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。 如果在任何时候由于系统资源不足,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用, 然后Servlet实例便被标记加入“垃圾收集”处理。
执行流程:
1.客户端发出请求,请求为JSP,web容器就会找出相应的servlet进行处理
2.将servlet转成字节码文件
3.将字节码文件加载到web容器里
4.这时会在web容器里建立实例
5.进行初始化
6.通过service接受请求
7.然后web容器会自动产生两个对象servlet和service最后进行销毁
本章总结
- B/S架构是对C/S架构的一种变化或改进的结构。在这种结构下,程序完全放在应用服务器上,通过应用服务器同数据库服务器进行通信。
- URL为统一资源定位符,是Internet中标准的资源地址。URL主要由协议丶主机名(有时包含端口号)及路径三部分组成。
- GET方法和POST方法是HTTP最常使用的两个方法。GET方法多用于从指定资源获取数据,POST方法多用于向指定资源提交需要处理的数据。
- Java Web应用的核心文件是web.xml文件,位于WEB-INF文件目录下,该文件目录不允许外部用户访问。通过修改web.xml文件可以实现对Web应用的配置,如设置欢迎页。
-
手动部署Web应用的步骤如下。
- 遵循Web应用目录的结构,创建Web应用的目录。
- 编写Web应用的代码。
- 复制Web应用目录到Tomcat目录的webapps子目录下。
- 启动Tomcat服务,在浏览器中进行访问。
- 动态网页是在服务器端运行的程序,它会随着不同的用户丶不同条件,返回不同的内容。
- JSP技术在HTML中嵌入Java脚本语言,然后由应用服务器中的JSP容器翻译丶编译和执行,之后将生成的结果返回给客户端。
- JSP由静态内容丶指令丶表达式丶小脚本丶声明丶注释等元素构成。
-
Web容器处理JSP文件请求需要经过三个阶段。
- 翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码。
- 编译阶段:Java源码会被编译成可执行的字节码文件。
- 执行阶段:容器在接受了客户端的请求后,执行编译好的字节码文件。在处理完请求后,容器把生成的页面反馈给客户端进行显示。