第一章 Web应用程序----概述
在这一章里面,我们要学习以下几点:
1:Web应用程序与桌面应用程序的区别
2:Web服务器与客户端
3:Http协议
4:Web应用程序体系结构
5:Web应用程序的目录结构
6:Get与Post提交方式
7:用Jbulider开发第一个Web程序
8:Web应用程序开发过程
9:如何在TomCat5.0中配置Servlet
Web应用程序与桌面应用程序的区别
桌面应用程序:
在台式电脑上运行的应用程序称为桌面应用程序。比如:记事本,Word,Excel。
这种应用程序的特点是
1)缺少共享 2)直接双击就可以运行,不需要IE 3)一般以window的窗口形式存在
Web应用程序:
1)需要IE来执行 2)一般以网页的形式的存在 3)可以有很多的客户端来共享。
比如:
www.sina.com
Web应用程序的优点:
1)能够实现最大的资源共享,
比如:开发一个网站,放在Internet上,就可以让全世界的人都来共享
2)维护与部署起来成本低
Web应用程序只需要在服务器上安装一次,就可以通过网络给所有客户端共享,以后要修改
Web应用程序,只需要修改服务器上Web应用程序,则所有的客户端自动进行更新。而桌面
应用程序必须在每台计算机上都安装一次,以后要修改时,每台计算机都要修改
Web应用程序的缺点:
响应速度比桌面应用程序要低很多,因为要通过Internet去访问远程网页.
Web服务器与客户端
Web服务器:
存放网页(*.jsp)的那一端被称为Web服务器
Web客户端:
浏览网页的那一端被称为客户端
工作原理:
客户端利用IE,通过Internet向Web服务器发出请求(Request),Web服务器在接到请求之后,进行处理
然后再把处理之后的结果通过Internet传给客户端,客户端再通过IE显示出来。我们把服务器接受
客户端的请求并进行处理的这个过程称为响应(Response)。
注意:请求是发给服务器的,而响应是发给客户端的
Http协议
Http协议:
HyperText Transport Protocol 超文本传输协议。是客户端与服务器进行交互所共同遵守的一个规则。
可以把购房者看成是客户端把房产开发商看成是服务器端,购房者要能从开发商那里顺利的买到房子,
同时开发商要能够顺利地把房子卖给购房者,购房者与开发商必须要遵守购房合同。这个合同就是所
谓的协议。
Http协议端口:
客户端要把请求发给服务器,服务器要把处理数据发给客户端,Http协议本身是办不到的。Http协议只是
规定了客户端与服务器发送数据的规则,格式。为了能够实现数据的发送与接受,就要在客户端与服务器 之间建立一个通道,让客户端与服务器通过这个通道来传输数据。这个通道在Web应用程序中被称为端口号
Web应用程序的端口号默认为80。当客户端通过IE去游览网页时,要按照以下格式输入:
http://网站名:端口号--------->比如:
http://www.sina.com:80
。只不过由于80端口号是默认的所
以可以省略这个端口号
Http协议是无状态的:
客户端使用Http协议通过端口号80向Web服务器发出请求,Web服务器接受请求,并与客户端创建一个连接
Web服务器进行数据处理,并把处理的结果传给客户端。一旦应答了客户的请求,服务器则关闭,这样以前 与客户端的连接的信息就全部都丢失了。所以Htpp被称为没有状态。相当于你到菜场去买菜,你是客户端 菜贩是服务器,一旦你与菜贩完成一次买菜交易,菜贩是不会把你买菜的过程记录下来的。这样即使你事 发现找钱错了,也无法证明
Http协议的状态码:
200:代表处理成功
404:指定客户输入的网页不存在
Web应用程序体系结构
表示层:用户界面
业务层:包含系统业务的功能,就是用一些类去封装
数据层: 具体与数据进行交互的类
表示层不能直接向数据层发请求,表示层应把处理请求发给数据层,数据层再把请求发给数据层
数据层进行处理之后,把结果传给业务层,业务层把数据再传给表示层。此种模式也被称为MVC模式
优点:
各层之间相互独立,一个层出现错误不会影响其它层
Web应用程序的目录结构
用Java技术去开发Web应用程序只有两种类型应用程序。一个是servlet一个是Jsp。最早期都是
servlet, Jsp是在servlet的基础上发展起来的。servlet就是一个java类,它接受客户的请求并进行 处理,然后把处理的结果返回给客户端,这个类与普通的java类的区别是,普通的java类可以运行在单机 上而servlet只能够运行在Internet上。
一个Web应用程序的目录结构:
顶层目录:假设为 Book
/*.html
/*.jsp
/images/*.jpg
/WEB-INF/WEB.XML
/WEB-INF/classes/*.class
Get与Post提交方式
客户端向服务器发出请求(Request)有两种方式。一种是Get方式与post方式。它们的区别是
Get提交:
A:把要传递的数据,放在查询字符串(URL)的后面,传递的数据是可见的。
比如:网页名?变量名=值1&变量名=值2
B:传递的数据大小有限制
C:由于数据是可见的,所以安全性比较低
D:Get提交方式仅适合于传递数据量少,且数据安全性要求不高的数据
Post提交:
A:把要传递的数据放在表单的元素中,通过表单传给服务器,传递的数据是不可见的
B:对传递的数据大小没有限制
C:适合于传递安全性比较高的数据。比如:传递密码
如何设置一个页面的传递方式:
A:设置为post方式:
<form action="目的页面" method="post">
B:设置为Get方式: 通常用超链接
<a herf="目的页面?变量名=值">
用Jbulider开发第一个Web程序
步骤:
1)先创建一个工程
2)再创建一个Web模块
3)创建一个标准的Servlet
9)运行
Web应用程序开发过程
1)设计目录结构:
2)编写Web应用程序。包括Servlet类、Jsp页面、Html页面
3)编写部署描述文件:Web.xml
4)打包Web应用程序。将所有与Web应用程序相关的文件打包为一个*.war文件
5)部署Web应用程序。将步骤4中打包的*.war文件安装到目的计算机中
如何在TomCat5.0中配置Servlet
1)什么是TomCat
TomCat就是一个Web应用程序的容器。Web应用程序必须要在Web应用程序的容器的支持下才能够正确运行。目录有很多的Web容器。Tomat,Welogic,resin,websphere等。最流行是
容是TomCat
2)在安装了Jublider 之后,系统在Borland\JBuilder2006\thirdparty下面会有两种版本的 TomCat。Tomcat 4.0 与Tomcat 5.0。
3)在安装Tomcat的目录下面D:\Borland\JBuilder2006\thirdparty\jakarta-tomcat-5.5.9\bin找到"startup.bat"启动文件
加上下面代码
rem ---------------------------------------------------------------------------
set JAVA_HOME=D:\Borland\JBuilder2006\jdk1.5 ***********
rem Guess CATALINA_HOME if not defined
4)用Jbudlider创建一个标准的Servlet,假设为"MyServlet",模块文件为"WebMod"
4)找到在创建Servlet时指定的Web模块文件夹"C:\Demo\WebModel\WEB-INF\classes"
5)在TomCat的\conf\Catalina\localhost文件夹下面创建一个与Web模块名相同的
Xml文件,在这里面应该是WebModel.xml。在这个文件里面添加如下内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/WebModel" docBase="C:\Demo\WebModel" debug="0"
虚拟目录 实际的物理路径
reloadable="true" privileged="true" />
6)在WEB-INF下面创建一个web.xml(部署描述文件),输入以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="
http://java.sun.com/xml/ns/j2ee
" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
" xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
" version="2.4">
<display-name>WebModel</display-name>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>demo.MyServlet</servlet-class>
其中demo是创建MyServlet时指定的包名,如果没有包名
则直接写上"MyServlet"
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
</web-app>
不过这个文件Jbulider已经绑我们做好了,我们不需要修改
7)启动TomCat, 在IE中输入:
http://localhost:8080/WebModel/MyServlet
来访问
8)上面的配置只适合于开发阶段调试时使用,一旦Web应用程序开发完毕之后,要进行移植时,
就要把Web应用程序打包成War文件(Web 归档文件)。
具体步骤:
A)进入开发Web应用程序的模块文件下面。比如为:WebModel下面
B)执行jar cvf WebModel.war *.* (注意要先设置Jdk环境变量,jar是jdk的一个工具)
C)在模块文件下面就会产生一个WebModel.war文件
D)把WebModel.war文件复制到Tomcat的webapps下面。
E)启动Tomcat,TomCat会自动把WebModel.war解压成为一个WebModel文件夹,
*****注意要删除在TomCat的\conf\Catalina\localhost文件夹下面创建一个与Web模块名相同的Xml文件,否则不会解压
F)在IE里面执行:
http://localhost:8080/WebMod
[模块名]/MyServlet[Servlet类名]
注意Servlet会区分大小写
http://localhost:8080/webmod
[模块名]/myservlet[Servlet类名] 会出现错误