*C/S和B/S的区别
C/S:客户端->服务器端
客户端由程序员手动开发出来
只能在一个小范围内使用,例如局域网
客户端需要下载安装,占用一定的磁盘空间
需要人员维护。客户端在更新时,需要下载一个补丁包到客户端,覆盖原有文件,甚至于要删除原有文件,重新安装
B/S:浏览器->服务器端
基于浏览器,不需要程序员来开发
只要有浏览器和互联网,那么在任何地方都可以随意访问
只需要一个浏览器,所有的内容都是基于线上的
运维方面更加灵活简单。更新时,对于使用者是透明的,友好度高于C/S端的用户。
*当用户在浏览器上的URL地址中,敲了回车以后,做了哪些事情
第一步:先去浏览器的缓存中找对应url地址的真实ip,如果找到则直接访问。
第二步:在系统的缓存中找对应url地址的真实ip,如果找到则直接访问。
第三步:在本地的LDNS中找对应url地址的真实ip,如果找到就会返回并发起访问。
第四步:在地区的运营商处来查找对应url地址的真实ip,如果找到就会返回并发起访问。
第五步:如果还没有找到该ip地址,那么就会继续到根域名服务器下查找。
第六步:在根域名服务器中查找对应url地址的真实ip,如果找到就会返回一个ip和一个TTL的过期时间,返回至本地。 如果未找到,就会返回404。
第七步:如果找到对应的站点信息后,会将当前请求的内容作为一个流进行转发至服务器。
第八步:将请求交给服务器,服务器会根据请求的内容进行转发。
第九步:作为应用服务器,会从其缓存中查找用户请求的数据,如果没有,则会去数据库服务器进行查询。
第十步:将查询的结果返回客户端。如果此时在前端配有CDN加速服务器,就会将内容一起响应回客户端,此时客户端就会按照设置的TTL过期时间等开始缓存数据,为下一次访问做准备。所有缓存的数据,都会有过期时间。
URL路径
整个的URL路径地址组成,包括协议部分、主机名称以及端口号、项目资源地址,目的是确认所请求的路径。
- 协议部分(agreement):http/https/ftp/smtp...
- 主机名称(ip address):代表服务器的ip地址,localhost一般指向127.0.0.1,一般访问本机服务器时使用。
- 端口号(port):确定当前被访问服务器的哪一个应用。
- 项目资源地址(source):确定项目具体的内容在哪里。
Tomcat应用服务器
开源,免费
使用非常简单
*Tomcat目录结构
bin:存放tomcat的可执行脚本文件,eg:开启服务器(startup.bat),关闭服务器(shutdown.bat)
conf:存放对tomcat服务器配置的配置文件 主要有server.xml,tomcat_users.xml,web.xml
-
- server.xml:
- Server:提供对外服务,关闭端口号:8005
- Service:对于具体服务
- 名称为Catalina
- connector:
-
port中指定了服务对外开放的端口号,可以修改
-
protocol代表协议
-
connectionTimeout:代表超时时间
-
redirectPort重定向端口到https的8443端口
- engine:代表引擎,找到对应的host资源,默认是localhost
-
host :代表访问的域名名称
- context:代表能否访问的资源节点
- tomcat-users.xml
- role:代表角色,能够访问的一些内容
- user:代表用户,能够配置用户名,密码,角色类型
- role与user之间时多对多的关系
lib:存放tomcat服务器运行时的依赖包(jar)
logs:存放tomcat服务器的日志文件
temp:存放服务器运行时产生的临时文件
webapps:存放所有发布的项目或war包,在java下完成war包打包过程,工作指令:
work:存放所有jsp文件运行后翻译的.java文件和编译后的.class文件
JavaWeb项目的标准目录结构
Tomcat在idea下的运行原理
在idea中运行Tomcat时,会将源Tomcat中conf,work,logs文件夹复制到idea的工程目录下,当对tomcat进行了重新配置,那么不会影响到原有tomcat的配置。
JSP
Java Server Pages:简称Jsp,在html页面之中可以嵌入Java代码,那么服务器会对JSP进行翻译成.java文件,之后编译成.class文件,最后执行class文件将渲染后的页面返回给客户端。
JSP指令
通过使用<%@ 指令 %>这种形式所表示的一种格式,能够设置当前页面的编程语言,通过import设置所导入的包或类,设置编码格式。
JSP小脚本与表达式
小脚本通过<% 换行 java代码 %>进行标识。表达式通过<%= 内容 %>进行标识
1 <body> 2 <%--小脚本:中间编写的是JAVA语句--%> 3 <% 4 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd") ; 5 String now = sdf.format(new Date()) ; 6 %> 7 现在时间是: 8 <h1><%=now%></h1> 9 <%= 1 + 1%> 10 </body>
注释
html注释:使用这种注释,会在源代码中看到注释内容
JSP注释:JSP编译完成后,渲染的页面的源代码中,看不到注释内容
JSP中整体的结构内容
*JSP执行流程
第一次运行时,会执行以上步骤,如果代码在后续的过程中没有发生改动,那么下一次请求到达服务器时,就会执行上一次编译好的.class文件,(无需再进行翻译和编译步骤)提高访问速度。