首页 > 程序开发 > web前端 > JavaScript >

JAVAWEB基础理论

2017-03-10

JAVAWEB基础理论。

java WEB:服务器端编程

OSI参考模型(7层) -- TCP/IP协议(4层,应用程序层http协议FTP协议,传输协议tcp/udp,网络协议ip,数据链路层)

一、TCP/IP协议: 应用层:应用程序位于应用层,应用程序和TCP/UDP打交道;【FTP、HTTP】 传输层:TCP/UDP协议 /* ACK=0为单方面发起,ACK=1双方建立连接,SYN=1代表已经发起了链接 */ 网络层:IP层, 数据链路层+物理层:以太网,ATM,硬件的接口; -------------------物理传输介质:WIFI、网线;------------------

二、TCP三次握手机制: 第一次请求,客户端主动发送链接|建立socket,发送ACK=0,SYN=1,SEQ:随机码|; 第二次响应:服务器端被动响应,建立sever Socket,回复(ACK=1,SYN=1,客户端随机码+1+服务器产生随机码) 第三次发送消息:将服务器端随机码+1; 【图示】 客户端(client) 服务器端(server被动打开) 1步创建socket()----------------------------->ACK=0,SYN=1,seq=X; 2步:server回应《--------------------------- SYN=1,ACK=1,ack=x+1,seq=y 3步:服务器监听端口-----------------------------》ACK=1,seq=x+1,ack=y+1; 服务器知道当前客户连接有效 ACK:表示响应; SYN:表示建立连接 ack:确认码 seq:顺序码 具体每部建立过程: 第一步:创建socket() connect()连接指定的计算机端口(ip、端口) send() 往socket()写入信息; 关闭socket(); 第二步:server server scoket(); bind(),绑定socket和端口号 listen()监听端口 accept()接受客户端传递过来内容 读取字符 关闭

三、B/S架构下如何实现网络通信: B/S与C/S架构的区别:B/S没有socket,没有底层,只有浏览器;依照http协议提供的服务支持,将需要网址的地址传给http协议,在host里面找,host找不到找DNS找到IP地址,通过IP找到唯一的服务器,再找到服务器的端口,找到请求的地址,并通过http将找到的地址内容在消息体中传输回去;将拿回来消息体放在浏览器的客户端就被解析出来了; HTTP:超文本传输协议(文本以外的音频,视频,图片); 1、是计算机网路通信中的一种规则,属于应用层的协议; 端口号:80; 【补充】:FTP:文件传输协议,端口号:21. 2、是无状态的协议,客户机和服务器之间不需要建立持久的连接,通信完就断开; 3、遵循请求响应模型,所有的通信都构造在请求响应模型中,客户端和服务器交换数据; HTTP版本号:1.1 默认连接是一直保持的(keep-alive),访问一个url,发送多次请求,只依靠一个TCP连接就可以了; HTTP的工作流程: 1、客户端的服务器建立连接:new Socket() 2、客户端发送请求 拦截器(HTTP Analyzer):得到申请信息;所有的设备状态,登录状态; 包含:请求行,请求的方法(HTTP版本) 请求头,包含HTTP头传递的元信息。告诉服务器客户端的一些信息; 空行,发送回车符或者空格,区分请求头和消息体 消息体,存放用户传输的内容(用户名和密码),只针对POST请求; 【细节】:GET请求放在请求行; 3、服务器响应内容 包含:状态行:http版本和状态; 响应头:内容描述,长度,时间戳,服务器的信息 空 行:回车符或者空格; 消息体:响应的内容; 4、服务器关闭连接,客户端解析服务器发送回来的内容;

早期网页使用的服务器端,在服务器存储所有的静态页面,要用什么调什么;更改维护麻烦;

CGI程序:--实现动态网页 早期的的动态网页:将网页架构放在服务器,将内容放在数据库,动态将数据库的内容进行更新; 在申请网页中将url改为申请动态网页,将网页发给一个小程序CGI程序,小程序将网站需要的动态数据从数据库提取出来,然后把这些数据传给登录html,实现网页的动态更改; 优点:各种语言都可以使用; 缺点:对服务器的内存消耗很大,每次访问都会创造一个进程(多进程程序);限制了一个服务器可以支持的并发CGI用户数量; 【解决方案】:1、启动服务器进程一次,处理所有的应用请求(WEB容器-Servlet)解决用户访问的并发量问题; 2、分布式服务器,成都2-3个服务器,广州用一些服务器,所有服务器相互联网;3个备用服务器,上百个服务器同时工作,需要维护的时候,关掉单个服务器;

Servlet:--实现高效率高并发的动态网页,创建健壮的环境;

javax.servlet.http.*;包 特点: 1、servlet是常规的java代码,代码中用了一些新的API,不涉及新的语法 2、servlet代码中有我们不熟悉的重要语句;servlet不属于J2SE,有单独的规范; 3、servlet对标准类(Httpservlet)进行了扩展 4、servlet没有main 方法;是一个多线程程序; ---web容器负责运行管理servlet;并提供以下支持和功能: 通信支持、生命周期支持、多线程支持、JSP(实现动态网页技术)支持、处理安全性; servlet主要任务:【处理动态网页内容】 读取客户端发送的显示和隐式数据 生成结果功能 完成网页生成 向客户端发送显示数据(文档),隐式数据(HTTP响应数据); servlet总结: 1、运行web服务器或者应用服务器上面的一个java程序,主要用于生成动态内容 2、servlet是与平台无关的java程序 WEB容器总结: 1、servlet受控于另外一个java应用程序,称为web容器; 2、WEB容器给servlet、JSP提供运行环境,使得他们直接跟容器中的环境变量交互,就把注意力放在Servlet实现业务逻辑,不必关注其他系统问题; 3、web容器主要是web服务器实现的;【针对http为web服务器,针对Servlet为web容器】 4、web容器/web服务器分类:tomcat-WEB容器/IIS微软的、apache、jboss-Ejb容器、weblogic-分布式功能、; tomcat: 1、源于apahce基金会里面的一个项目,他是一个优秀的web容器;又是一个http服务器 2、开源并且稳定,高效,免费;

开发环境工具:Myeclipse 2014 + tomcat7+JDK1.7

tomcat目录介绍: bin目录:开启tomcat(startup)关闭tomcat()的脚本文件; conf目录:tomcat的各种配置文件;xml文件做的配置; lib:服务器支持的架包; logs:日志,方便报错排查; temp:存放临时文件(临时产生的数据); webapps:存放web的应用程序,外界都能访问的web应用程序; work:存放工作文件。主要是jsp生成的代码;

Myeclipse目录: SRC:存放代码; WebRoot文件夹内容是要放在服务器上的 html CSS image文件夹 WEB-INF,这个下面是不能被访问客户访问的; classes,放代码的编译文件; lib包存放我们创建的工程; web.xml是整个工程的配置文件; 将工程上传服务器

方法一:工程打包 export为WAR.file文件,将打包文件复制到tomcat、webapps中,启动加载startup.bat 【程序自动解压出来,解压的项目结构和webroot子目录一样;】 访问文件:http://localhost:8080/JAVAWeb02/html/test01 服务器是否能正常解析; 方法二:导入tomcat; window--Preferences--Tomcat7.x/8.x tomcat输入配置环境的路径; --JDK--add目录;输入JDK环境路径 Manage Deployments 中添加Tomcat7.x ADD; 将工程放在服务器中解析,ADD(添加)、redeploy(重载) 然后在浏览器输入网址,查看效果;【细节:端口号变更、样式的链接///在html包外直接包名样式的程序名;html类../回到父文件夹///】 编码集。

相关文章
最新文章
热点推荐