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】。文章转载请联系作者。










 
    
评论