j2ee全名java Enterprise Edition 。就是java的企业应用版本,能够快速的开发基于网络的企业应用系统。
在学习j2ee之前,有必要了解一下如何进行网络应用程序(web application)的开发。它基本的结构应该分为两部分:服务器端(应用服务器程序apache等和应用服务器上运行的程序)和客户端(通常是浏览器,或者是applet等),客户端发送请求给服务器端,服务器端进行响应返回给客户端进行显示。要达到这个目的就需要解决两个问题:客户端和服务器之间怎么样交谈,客户端如何展示发送过来的信息。还好通过统一的规范和协议我们已经不必担心这个问题,现在的做法是:
- 客户端和服务器使用HTTP协议进行通讯。
- 客户端通过HTTP把HTML发送给客户端。
- 客户端根据HTML进行内容展示。
HTML
扩展标记语言。使用标签和属性的方式描述了页面应该怎样显示传输过来的内容。
HTTP
超文本传输协议。运行于TCP/IP协议之上,-。-!又得了解下TCP/IP协议了。
TCP负责把数据拆分成包,然后再目的地正确的还原。
IP是底层协议,负责把包正确的运往目的地。
HTTP就是基于TCP/IP协议的,就是能够把request正确的发送到服务器,然后把response正确的返回到客户端的协议。
又有新概念了,没办法,基础的东西必须知道啊
request
在客户端和服务器通讯的时候会产生两个对象,request和response。其中request负责承载请求,其主要元素为三个,方法method。url要访问的地址和交单的数据data。
request的快照:
Method root/test.jsp?color=dark HTTP/1.1 Method包括了get,post,hidden等多个方法,一般get和post就够用了
Host:www.prince.com -|
...... | request head
Accept-Charset:gbk -|
color=dark 如果是post方法则还会包含体的部分,用来存放表单中的数据
request通常用于获取数据内容,包括pdf,图片等等。
可以在url中使用&传输一些简单的数据,但是数据的长度是有限制的。
字符集是受限制的,因此会有乱码的问题。
response
response快照:
|-HTTP /1.1 200 OK 版本和状态 200是正常,400是页面未找到
response header | Set-Cookie:JSESSIONID=1123123123123;Path=/testEL Cookie
| Content-Type:text/html MIME type。告诉浏览器数据的类型和怎样展示数据
body html文本 html文本在这里,是在浏览器中进行显示的
url
request还包括了url用来指定要访问的资源。
url的格式为:http://www.prince.com:80/site/index.html
- http:// 知道那个了所使用的协议
- www.prince.com是域名,可以通过域名解析服务解析成网络上唯一的ip地址。
- 80为端口,一台计算机上默认0-1023都是预留或者已经使用的,我们自定义的时候只能使用其他的端口,比如80是HTTP,21是ftp的
到现在为止,我们已经可以比较清楚的描述完成一个网络应用程序所必须的技术了。
在浏览器中输入url,然后通过HTTP发送request给服务器端,服务器端再把HTML保存在response中进行相应。而我们程序中所需要开发的内容就是部署在服务器上的程序,完成接收request并进行相应的功能。通常我们把层序放在服务器程序如(apache)指定的目录中就能够自动识别为一个网站了。
但是,但是啊,仅仅是静态页面是不能够满足要求的,这就需要在web server之外添加另外的支持,解决这个问题早期的实现方式是CGI程序。
CGI
通用网关接口,通常使用Prel或者是C写成,可以在web server接收请求后通过CGI进行处理,然后生成对应的页面,返回给浏览器。
不过他是进程的,比较费资源。
后来我们有了servlet
servlet
跟cgi的功能差不多,除了web server需要运行在额外的j2ee server之上,不过其能够充分使用java语言的优点,具有跨平台的特性,另外与cgi相比,其是线程的,每个请求一个线程,比cgi更加的轻量级。