Servent
Servent
关于系统架构
1.系统架构包括什么形式?
C/S 架构
B/S 架构
2.C/S 架构?
Client/Server(客户端/服务器)
C/S 架构的软件或者说系统有哪些呢?
C/S 框架的特点:无需安装特定的客户端软件
C/S 框架的系统优点和缺点分别是什么?
优点:
速度好(软件中的数据大部分都是集成到客户端软件中的,很少量的数据从服务器端传送过来,所以 C/S 结构的系统速度快)
体验好(速度又快,界面又酷炫,当然体验好了)
界面酷炫(专门的语言去实现界面的,更加灵活)
服务器压力小(因为大量的数据都是集成在客户端软件当中,所以服务器只需要传送很少的数据量,当然服务器压力小)
安全(因为大量的数据是集成在客户端软件当中的,并且客户端有很多个,服务器虽然只有一个,就算服务器那边受损了,问题也不大,因为大量的数据在多个客户端上有缓存,有存储,所以从这个方面来说,C/S 结构的系统比较安全)
缺点:
升级维护比较差劲(升级维护比较麻烦,每一个客户端软件都需要升级,有一些软件不是那么容易安装的)
3.B/S 架构
B/S(Browser/Server,浏览器/服务器)
B/S 结构的系统还是一个 c/s,只不过这个 C 比较特殊,这个 Client 是一个固定不变的浏览器软件
优点:
升级维护方便,成本比较低。(只需要升级服务器端即可)
不需要安装特定的客户端软件,用户操作极其方便,只需要打开浏览器,输入网址即可
缺点:
速度慢(不是因为带宽低的问题,是因为所有的数据都是在服务器上,用户发送的每一个请求都是需要服务器全身心地响应数据,所以)
体验差(界面不是那么酷炫,因为浏览器只支持三个语言 HTML css JavaScript 再加上速度慢)
不安全(所有的数据都在服务器上,只要服务器发生销毁,最终数据全部丢失)
4.c/s 和 B/S 结构哪个好,哪个不好?
这个问题在不同的业务场景下有不同的使用场景
娱乐性软件建议使用?
c/s 结构
公司内部使用的一些业务软件建议使用?
公司内部使用的系统,需要维护成本低
公司内部使用的系统,不需要很酷炫
公司内部使用的企业版系统主要是能够进行数据的维护即可
B/S 结构
5.注意了:开发 B/S 结构的系统,其实就是开发网站,其实就是开发一个 WEB 系统
开发一个 web 系统需要哪些技术
web 前端(运行在浏览器上的程序)
html
css
javascript
web 后端(web 服务器端的程序)
Java 可以(java 做 web 开发我们称为 javaweb 开发,javaweb 开发最核心的规范:Servlet[Servent Applet 服务器的 Java 小程序])
c 语言也可以
c++也可以
python 也可以
php 也可以
B/S 结构的系统通信原理(没有涉及到 Java 小程序)
web 系统的访问过程
第一步:打开浏览器
第二步:找到地址栏
第三步:输入一个合法的网址
第四步:回车
第五步:在浏览器上会展示响应的结果
关于域名
www.baidu.com是一个域名
在浏览器地址栏中输入域名,回车之后,域名解析器会将域名解析出来一个具体的 ip 地址和端口号等
解析结果也许是:http://110.242.68.3:80/index.html
ip 地址是啥?
计算机在网络当中的一个身份证号,ip 地址是唯一的
A 计算机要想和 B 计算机通信,首先需要知道 B 计算机的 IP 地址,有了 IP 地址才能建立连接
端口号是啥?
一个端口代表一个软件(一个端口代表一个应用,一个端口仅代表一个服务)
一个计算机当中有很多软件,每一个软件启动之后都有一个端口号
在同一个计算机上,端口号具有唯一性
一格 web 系统的通信原理?通信步骤:
第一步:用户输入网址(url)
第二步:域名解析器进行域名解析:http://110.242.68.3:80/index.html
第三步:浏览器软件在网络中搜索 110.242.68.3 这一台主机,直到找到这台主机
第四步:定位 110.242.68.3 这台主机上的服务器软件,因为是 80 端口,可以很轻松的定位到 80 端口对应的服务器软件
第五步:80 端口对应的服务器软件得知浏览器想要的资源名是:index.html
第六步:服务器软件找到 index.html 文件,并且将 index.html 文件中的内容直接输出响应的浏览器上
第七步:浏览器接收到来自服务器的代码(html css js)
第八步:服务器渲染,执行 html css js 代码,展示效果
什么是 URL?
统一资源定位符(http://www.baidu.com)
关于 web 服务器软件
web 服务器软件都有哪些?
Tomcat(web 服务器)
jetty(web 服务器)
JBOSS(应用服务器)
weblogic(应用服务器)
websphere(应用服务器)
应用服务器和 web 服务器的关系?
应用服务器实现了 Java EE 的所有规范(javaEE 有十三个不同的规范)
web 服务器只实现了 javaEE 中的 Servlet+JSP 两个核心的规范
通过这个讲解说明了:应用服务器是包含 web 服务器的
用过 JBOSS 服务器的同学应该清楚,JBOSS 中内嵌一个 Tomcat 服务器
Tomcat 下载
apache 网址:http://www.apache.org
tomcat 官方网址:http://www.tomcat.apache.org
tomcat 开源免费的轻量级 web 服务器
可以配置主机的名称
默认的主机名为 localhost->127.0.0.1
默认网站应用存放的位置为:webapps
面试题:
请你谈谈网站是如何访问的?
输入一个域名:回车
检查本机的配置文件下有没有这个域名映射
有:直接返回对应的 ip 地址,这个地址中,有我们需要访问的 web 程序,可以直接访问
无:去 DNS 服务器找,找到的话就返回,找不到就返回找不到
发布一个 web 网站
模仿
将自己写的网站,放到服务器(tomcat)中指定的 web 应用文件夹(webapps)下,就可以访问了
网站应有的结构
HTTP 协议:面试
Maven:构建工具
Maven 安装包
Servlet 入门
HelloWorld
Servlet 配置
原理
什么是 http
http(超文本传输协议) 是一个简单的请求-响应协议,它通常运行在 tcp 之上
文本:html,字符串...
超文本:图片,音乐,视频,定位,地图...
80
https:安全的
443
两个时代
http1.0
http/1.0:客户端可以与 web 服务器连接后,只能获得一个 web 资源,断开连接
http2.0
http/1.1:客户端可以与 web 服务器连接后,可以获得多个 web 资源,
http 请求
客户端---发请求(request)---服务器
http 响应
服务器---响应---客户端
请求行
请求行中的请求方式:get
请求方式:Get,post,head,delete,put
get:请求能够携带的参数比较少,大小有限制,会在浏览器的 url 地址栏显示数据内容,不安全,但高效
post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的 url 地址栏显示数据内容,安全,但不高效
消息头
响应状态码
200 :请求响应成功 200
3xx:请求重定向
重定向:你重新到新位置
4xx:找不到资源 404
资源不存在
5xx:服务器代码错误 500 502 网关错误
Maven
我们为什么要学这个技术?
1.在 javaweb 开发中,需要使用大量的 jar 包,我们手动去导入
2.如何能够让一个东西自动帮我们导入和配置这个 jar 包
由此,Maven 诞生了
Maven 项目架构管理工具
我们目前用来就是方便导入 jar 包的
Maven 的核心思想:约束大于配置
有约束,
镜像:方便下载使用
Maven 是国外的,国内有墙,我们访问外网会非常的慢; 翻墙,vpn
配置环境变量
在我们的系统环境变量中
配置如下:
M2_HOME maven 目录下的 bin 目录
MAVEN_HOME maven 的目录
在系统的 path 中配置,%MAVEN_HOME%\bin
检测 Maven 是否安装成功,保证必须配置完毕
阿里云镜像
镜像:mirrors
作用:加速我们的下载
国内推荐使用阿里云的镜像
本地仓库
在本地的 仓库,远程仓库
建立一个本地仓库:localRepository
Servlet
1.Servlet 简介
Servlet 就是 sun 公司开发动态 web 的一门技术
Sun 在这些 API 中提供一个接口叫做:Servlet,如果想开发一个 Servlet 程序
只需完成两个小步骤:
编写一个类,实现 Servlet 接口
把开发好的 Java 类部署到 web 服务器中
把实现了 Servlet 接口的 Java 程序叫做,Servlet
2.HelloServlet
1.构建一个普通的 Maven 项目,删掉里面的 src 目录,以后我们的学习就在这个项目里面建立 Moudel;这个空的项目就是 Maven 主工程
2.关于 Maven 父子工程的理解:
父项目中会有
子项目会有:
父项目中的 Java 子项目可以直接使用
3.Maven 环境优化
修改 web.xml 为最新的
将 maven 的结构搭建完整
4.编写一个 Servlet 程序
编写一个普通类
实现 Servlet 接口,这里我们直接继承 HttpServlet
5.编写 Servlet 的映射
为什么需要映射:我们写的是 Java 程序,但是要通过浏览器访问,而浏览器需要连接 web 服务器,所有我们需要在 web 服务器中注册我们写的 Servlet,还需要给他一个浏览器能够访问的路径;
6.配置 tomcat
略
7.启动测试
Mapping 问题
1.一个 Servlet 可以指定一个映射路径
2.一个 Servlet 可以指定多个映射路径
3.一个 Servlet 可以指定通用映射路径
4.指定一些后缀或者前缀等等......
5.优先级问题
指定了固有的映射录井优先级最高,如果找不到就会走默认的处理请求
ServletContext
web 容器在启动的时候,它会为每个 web 程序都创建一个对应的 ServletContext 对象,它代表了当前的 web 应用;
共享数据
在这个 Servlet 中保存的数据,可以在另一个 Servlet 中拿到;
2.获取初始化参数
3.请求转发
4.读取资源文件
Properties
在 java 目录下新建 properties
在 resources 目录下新建 properties
都被打包到了同一个路径下:classes,我们俗称这个路径为 classpath;
思路:需要一个文件流
访问测试即可 ok;
版权声明: 本文为 InfoQ 作者【喜羊羊】的原创文章。
原文链接:【http://xie.infoq.cn/article/d778893fe4684e92a2d296516】。文章转载请联系作者。
评论