第一章 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类名] 会出现错误