2.1.应用程序结构
2.2.动态网页
2.3.http协议
2.4.认识tomcat
2.5.创建java web项目
Client/Server架构,即客户端/服务器架构。是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。B/S架构:客户端基本上没有专门的应用程序,应用程序基本上都在服务器端。由于 客户端 没有程序,应用程序的升级和维护都可以在服务器端完成,升级维护方便。
比如: QQ, 荣耀,优点:基于TCP/IP协议传输数据,网络稳定,处理能力强。缺点:推广升级困难
browser:浏览器/server:服务器:各种类型的网站,企业内部的应用。
优点:在线升级。缺点:严重依赖服务器,依赖网络
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser英 ['braʊzə]美['braʊzɚ]),如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
例如: 百度网站,淘宝网站,京东网站,当当网站…
B/S结构程序的工作原理
从用户的操作开始,用户在浏览器页面提交表单操作,向服务器发送请求,服务器接
收并处理请求,然后把用户请求的数据(网页文件、图片、声音等等)返回给浏览器,
至此一次请求完成。
无论BS模式还是CS模式都需要使用到服务器。
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。在网络环境下,根据服务器提供的服务类型不同,分为文件服务器,数据库服务器,应用程序服务器,WEB服务器等。
服务器就是 提供服务的设备。是由硬件和软件两部分组成。
硬件服务器:构成包括处理器、硬盘、内存、系统总线等组成的电脑主机
软件服务器:web服务器 Tomcat
数据库服务器 MySQL Oracle
缓存服务器 Redis (NoSql)
反向代理服务器 Nginx 负载均衡
正向代理服务器 Node
文件服务器 ftp服务器
#常用服务器软件
1.IIS
IIS(Internet信息服务)英文InternetInformationServer的缩写。它是微软公
司主推的服务器。IIS的特点具有:安全性,强大,灵活。
2.Tomcat
Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的
一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
3.Zeus
Zeus是一个运行于Unix下的非常优秀的Web服务器,据说性能超过Apache,是效率最
高的Web服务器之一。
4.Nginx
Nginx不仅是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力。
5. Apache
Apache是世界使用排名第一的Web服务器软件。它几乎可以运行在所有的计算机平台
上。由于Apache是开源免费的,因此有很多人参与到新功能的开发设计,不断对其进行完善。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。
6.Lighttpd
Lighttpd是由德国人JanKneschke领导开发的,基于BSD许可的开源WEB服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的webserver环境。具有非常低的内存开销,CPU占用率低,效能好,以及丰富的模块等特点。支持FastCG
I,CGI,Auth,输出压缩(outputcompress),URL重写,Alias等重要功能。
静态网页,无法和用户进行交互。随着html代码的生成,页面的内容和显示效果就基本上不会发生变化了——除非你修改html页面代码。
html+后台语言(vb-asp,java-jsp,php,python)
动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境
或者数据库操作的结果而发生改变的。 值得强调的是,不要将动态网页和页面内容是否有动感混为一谈。这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术生成的网页都可以称为动态网页。总之,动态网页是基本的html语法规范与Java、VB、VC等高级程序设计语言、数据库编程等多种技术的融合,以期实现对网站内容和风格的高效、动态和交互式的管理。因此,从这个意义上来讲,凡是结合了
HTML以外的高级程序设计语言和数据库技术进行的网页编程技术生成的网页都是动态网页。
asp,jsp,php,py:可以和用户进行交互,是原来并不存在,根据请求的不同由动态数据生成的页面
JAVAWEB : 三大核心/组件(Servlet,Filter,Listener)
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务 连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
Servlet 就是小服务程序,可以做动态网页。在java中 对servlet有两种解读:
1.servlet接口
2.所有实现这个接口的类
http:Hyper Text Transfer Protocol (超文本传输协议),将数据从万维网传输到本地浏览器的一种协议方式。
HTTP是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS(安全性高)
SSL(Secure Sockets Layer 安全套接字协议,SSL),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。传输层安全性协议(英语:Transport Layer Security,缩写作TLS)
具体参考: http-all.pdf文档
一次HTTP操作称为一个事务,其工作过程可分为四步:
1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL 网址)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了
特点:
短连接、 无状态(无记忆)
URL,全称是Uniform Resource Locator, 中文叫统一资源定位器,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成:
http://www.aaajy.net:80/news/index.html?keyword=AAAruanjian&e_matchtype=1#xw
http://www.aaajy.net:8080/news/index.html?keyword=AAAruanjian&e_matchtype=1#xw
从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。
在"HTTP"后面的“//”为分隔符
2.域名部分:该URL的域名部分为"www.aaajy.net"。一个URL中,也可以使用IP地址作为域名使用
3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口。默认端口是80
4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录“/news/”
5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.html”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名
6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“xw”。锚部分也不是一个URL必须的部分
7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“keyword=AAAruanjian&e_matchtype=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符
GET 获取资源:*
通过地址栏传输数据,安全性差,对数据有限制,2k;
1、基于form表单发起(action指明请求目标)
2、基于url发起(a.地址栏写请求地址 b.通过超链接href)
POST* 向服务器端发送数据,传输实体主体
封装成数据包,内部发送,安全性高,对数据没有限制。
PUT * 传输文件
HEAD 获取报文首部
DELETE * 删除文件
OPTIONS 询问支持的方法
TRACE 追踪路径
请求行(request line)、请求头部(header)、请求体组成
4XX:客户端错误
400(Bad Request) :请求报文语法错误
401 (unauthorized) :需要认证
403(Forbidden) :服务器拒绝访问对应的资源
404(Not Found) :服务器上无法找到资源
405 get请求 post请求
5XX:服务器错误
500(Internal Server Error)服务器故障
503(Service Unavailable) 服务器处于超负载或正在停机维护
Apache Tomcat®官网https://tomcat.apache.org
在bin目录下找到startup.bat双击启动
tomcat:实现了部分JavaEE的规范、 servlet容器,开源免费的服务器应用,是servlet运
行的环境。服务器软件。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器
server.xml修改端口号
虚拟目录的配置,在server.xml中Host节点内的Valve节点后面配置
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applicatio
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common"
<Valve className="org.apache.catalina.valves.AccessLogValve" directo
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" >
</Valve>
<Context docBase="d:/yzh7/" path="hahaha" reloadable="true"/>
</Host>
端口号被占用:8080
解决方法:
查找占用特定端口的进程信息
netstat -ano|findstr 8080
删除进程
taskkill -pid xxx /f
两种方式:
①:webapps方式
将你的项目拷贝到webapps目录下 然后访问
tomcat默认端口号8080。
ip地址:8080/项目/页面
②:配置文件方式
conf—>server.xml 打开 添加以下代码 --》保存—》重启tomcat
<Context docBase="项目在电脑中的路径" path="/haha 访问路径" reloadable="tru
e"/>
ip地址:端口号/项目名/资源文件
ip地址:端口号/项目名/资源文件
tomcat体系结构:https://blog.csdn.net/qq_23830637/article/details/104497094
普通java项目:src
web项目:我们写的servlet需要部署到tomcat中,但是你不能乱写(我们写好了之后
随便放到一个地方 tomcat肯定不识别),此时tomcat有一个目录要求。其实就是要求
我们 需要创建几个文件夹 每个文件夹中放不同的资源内容。
3.5 创建Java Web工程
1.先创建一个java项目
2.添加web支持
在弹出框中点击【+】依图选择
配置Tomcat
选择【Deployment】
返回【Server】选项卡
运行项目
点击左下侧或上面工具栏中的绿三角箭头即可运行
当出现
Connected to server
[2020-08-08 10:09:34,167] Artifact web01:war exploded: Artifact is being dep
[2020-08-08 10:09:34,631] Artifact web01:war exploded: Artifact is deployed
[2020-08-08 10:09:34,631] Artifact web01:war exploded: Deploy took 464 milli
说明服务器启动成功,此时就能看见项目首页
Servlet(Server Applet)是Java Servlet的简称,是服务器的处理程序,用来处理客户
端发送过来的请求的。本质上就是一个java类,继承自HttpServlet。侧重于:数据的处
理
加载Tomcat中的servlet-api.jar和jsp-api.jar包
连接数据库查询数据并展示到页面上
解决控制台乱码方法:
1、【FIle】-【Setting】依图设置
Servlet的乱码比较顽固,需要在VM参数中添加:-Dfile.encoding=utf-8参数:
【run】-【Edit Configurations】在红框处添加:-Dfile.encoding=utf-8
应用程序结构
动态网页
http协议
认识tomcat
使用idea创建web项目
1、掌握idea创建web项目的流程
2、完成web项目查询数据库数据
// A code block
var foo = 'bar';