目录
1丶B/S与C/S架构
1.1B/S架构:
1.2C/S架构:
1.3两者区别
2丶配置Tomcat
2.1安装Tomcat
2.2Tomcat启动和配置
3丶发布一个web网页
4丶Http
4.1丶什么是HTTP
4.2丶两个时代
4.3丶Http请求
4.4丶Http响应
5丶JSP
5.1什么是JSP
5.2JSP的页面元素
5.3JSP的工作原理
本章总结
(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
C/S结构(Client/Server,客户端/服务器模式)服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。客户端进行用户界面/事物处理,服务器进行数据处理。
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 |
---|---|---|
安全性 | 安全性较差 | 固定区域相对安全 |
环境 | 通过浏览器使用,无需安装 | 客户端需要安装 |
更新 | 无需用户操作 | 用户手动更新 |
网络 | 易用性差,依赖网络 | 无网络部分功能可使用 |
可以配置启动的端口号
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">
不会就先模仿
将自己写的网站,放到服务器(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配置
原理
HTTP(超文本传输协议)是一个简单的请求~响应协议,它通常运行在TCP之上。
文本:html,字符串,~....
超文本:图片,音乐,视频,定位,地图......
默认端口:80
Https:安全的
默认端口:443
http1.0
HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。
http2.0
HTTP/1.1:客户端可以与web服务器连接后,可以获得一个web资源。
客户端---发请求(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:主机..../.
服务器---响应-----客户端
百度:
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:网关错误
JSP: 全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP的本质是servlet, 通过response的printWriter返回,response的getOutputStream只能调用一次,返回流就不能返回页面刷新。
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中注释掉了
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最后进行销毁