zoukankan      html  css  js  c++  java
  • Servlet 1—— 概述

    1、什么是API?包括什么?

    • API:应用程序编程接口(这里所描述的接口,不是interface)
    • API包括:源码、字节码、帮助文档【在使用的时候注意版本号一致】

    接口的作用

    • 项目有了接口之后就有了分层,多个层之间可以同时开发,这样项目的开发效率可以提高。(调用者不用关心实现者,实现者不需要关心调用者)
    • 接口使程序分为调用方和实现方,调用方和实现方是解耦合的,面向接口编程使项目变得具有可接插性,具有可插拔特性,具有很强的扩展能力。

    2、什么是JAVASE?

    Java 标准版本

    • SUN公司为java程序员提供的一套基础类库。
    • 这套基础类库包括:基础语法、面向对象、异常、IO、集合、反射、线程
    • JavaSE版本:目前javase由oracle维护,最高版本JavaSE15

    3、JavasE的源码、字节码、帮助文档在哪里?

    • 源码:JAVA_HOMEsrc.zip
    • 字节码:JRE_HOMElib t.jar
    • 帮助文档(未知)

    4、什么是JAVAEE?

    java企业版

    • SUN公司为java程序员准备另一套庞大的类库,帮助程序员完成企业级项目开发。

    5、JAVAEE的版本号?

    目前我们所学习的JAVAEE版本号是JAVAEE5。

    JAVAEE规范是一个比较大的规范,JAVAEE规范中包括13个子规范(每一个子规范下其实还有其它的子规范)

    • JAVAEE5规范下的子规范:servlet2.5
    • JAVAEE6规范下的子规范:servlet3.0

    Tomcat服务器,其中Tomcat6实现了servlet2.5规范,Tomcat7实现了servlet3.0规范。

    6、JAVAEE的源码、字节码、帮助文档在哪里?

     ....

    C/S架构

    • C/S,Client/Server,客户端/服务器。客户端需要安装专用的客户端软件。客户端是针对于某一个具体行业开发的软件,是需要专门安装的软件。
    • 由于客户端是专用的软件,所以客户端程序一般也具有对具体业务进行处理的能力。从而减轻了服务端的处理压力,是的服务端的运算速度更快,对客户端的响应更快。
    • 也正是由于客户端是需要专门安装的专用软件,所以导致C/S架构的系统也出现了致命的问题:
      • 版本升级成本异常的高。无论是又有客户端软件本身功能的升级,或是由于服务端的升级导致客户端也必须要进行升级,无论什么原因导致客户端需要升级,每一个客户端机器上都必须要获取到新版本软件,再将老版本进行卸载替换。C/S架构系统的每一次客户端升级,都需要企业为之付出人力、物力和财力上的成本代价。
    • 典型的C/S架构系统有:安装版的QQ、飞信等。

    B/S架构

    • B/S,Browser/Server,浏览器/服务器。B/S架构,其实也是一种特殊的C/S架构,只不过,这个Client特指的就是浏览器。
    • 优点:对于B/S架构的系统,只要客户端安装的有浏览器,那么客户端就可以访问到服务端。而整个系统的升级,只需要升级服务器程序即可。所以,B/S架构的系统最大的优点就是不存在客户端升级问题。
    • 缺点
      • 由于客户端不是专门针对某个具体业务而设计的,是一个通用的客户端,所以客户端几乎没有任何对具体业务进行处理运算的能力。而对于具体业务的处理压力,全部加在了服务端,从而导致服务端程序运算速度降低,对客户端的响应速度降低,影响了客户体验。
      • 另外,B/S架构系统还存在一个问题:浏览器兼容问题。虽然客户端只需要一个浏览器即可访问服务端,但由于现在浏览器品牌、版本很多,而其实现技术千差万别,所以导致服务端需要想办法兼容各种浏览器版本。这无形中又增加了服务端的压力。
    • 典型的B/S架构有:网页版的QQ、飞信等。

     BS架构原理图

    一、 以上图形很形象的描述了B/S架构程序的访问流程。请从上面图形中分别找出BrowserWebServerDBServer(我们称作3tier)。

    二、 分析小张和小王的访问有什么区别?

      小张:它在浏览器地址栏上输入的请求路径是http://202.108.251.34:8080/egov/login.html访问原理是:浏览器在广域网中搜索ip地址是202.108.251.34这个计算机,找到这台计算机之后,再去这台计算机上搜索8080相关的服务,就找到了Tomcat服务器(Web ServerWeb ContainerWeb容器),Tomcat服务器正在处于接收用户请求的状态,接收到请求之后解析请求路径,知道小张访问的资源是egov应用(web app)中的login.html资源(纯静态页面),Tomcat服务器负责在Web容器搜索到该资源,并且Tomcat服务器负责将该资源以响应的方式发送给浏览器客户端(小张)。在整个过程中不需要执行egov应用(web app)中的任何java程序,web app的开发者(java程序员)也不需要编写任何java程序,只要编写一个login.html页面放在egov应用中即可。

      小王:它在浏览器地址栏上输入的请求路径是http://202.108.251.34:8080/oa/delete?empno=7369访问原理是:浏览器在广域网中搜索ip地址是202.108.251.34这个计算机(硬件服务器),找到这台计算机之后,再去这台计算机上搜索8080相关的服务,就找到了Tomcat服务器(Web ServerWeb ContainerWeb容器),Tomcat服务器正在处于接收用户请求的状态,接收到请求之后解析请求路径,知道小张访问的资源是oa应用(web app)中的delete资源,这个delete资源不是一个静态的HTML页面,而需要执行一段小java程序去处理用户这次的请求,注意:用户的请求路径/deletejava程序一定是互相绑定的。这段小java程序再去连接数据库(JDBC),数据库负责删除该empno=7369的数据,并且将删除结果返回给小java程序,小java程序在负责将删除结果响应给浏览器客户端(小王)。

      小张和小王的区别:

    • 小张访问的资源是WEB服务器中的一个静态资源,以.html结尾。不需要web app中执行一段java程序。
    • 小王访问的资源是WEB服务器中的一个动态资源,不是以.html结尾的,这个时候就需要Tomcat服务器为我们执行一段对应的小java程序。所以web app中必须有一段小java程序。

    以上所描述的小java程序指的就是ServletServletServer let) 表示WEB服务器端小java程序。

    三、 请分析B/S架构中涉及到的产品、角色、协议以及协议的制定者?

    a) B/S架构中涉及到的所有产品、角色:

    1. 浏览器IEFireFoxChromeOpera等)
    2. WEB服务器WEB ServerWEB Container。(TomcatJBOSSGlassFish等)
    3. DB 服务器OracleMysqlSqlServer等)
    4. Web App的开发者Servlet程序员、我们)

    b) B/S架构中涉及到的所有的协议、标准、规范:

    1. 浏览器和WEB服务器之间遵循HTTP协议,这个协议的制定者是W3C,这个协议是通信协议。HTTP协议包括请求协议和响应协议两个,这两个协议只是方向不同,从浏览器向服务器发送数据叫做请求协议,从服务器向浏览器发送数据我们叫做响应协议,这里的HTTP协议我们用的是HTTP1.1版本(以后详细介绍HTTP协议。)
    2. WEB服务器和web app的开发者(我们)之间有一些规范,例如:ServletJSP规范,这些规范的制定者是 SUN
    3. Web app开发者(我们)和数据库服务器之间有一个规范,叫做JDBC规范,这个规范的制定者是SUN

    注意:我们程序依赖于规范的制定,J2EE规范很多,包括:JDBCServletJSPEJB等。

    javaweb程序员怎么开发webapp

    • 1、不需要再编写main方法,main方法在Tomcat服务器中
      • Tomcat服务器启动就是main方法执行
    • 2、编写一个Servlet类实现Servlet接口,实现service方法
    • 3、将Servlet类和请求路径绑定在一起,编写web.xml文件

    web访问中的角色和协议 

    所谓协议,就是规范、规则,是通信双方事先的约定。

    • HTTP协议要求,通信双方,即浏览器与服务器双方,都需要按照指定的格式发出请求与响应。对方按照协议,即事先的约定,对对方发来的信息进行解析。
    • Servlet协议要求,若程序员要开发完成某一具体业务的服务端程序,则必须实现Servlet接口,使用ServletAPI进行数据传递。Servlet,两个英语单词的合并,Serv表示服务器端,let表示小程序
    • JDBC协议要求,服务器程序若要连接并操作数据库,则需要按照JDBC协议汇总规定的方式(接口方法)获取DB连接,进行SQL的的执行、进行结果的获取。而JDBC协议(接口)的实现,均由数据库厂商完成,放于数据库厂商提供的数据库驱动jar包中。

    javaEE协议

    Servlet协议是javaEE协议的一部分。javaEE协议即进行javaWeb开发的一套API,除了包含Servlet协议外,还包含JSP协议、JSTL协议、JPA协议等。目前使用版本较多的是javaEE5.0。其包含的是Servlet2.5协议。而javaEE6.0包含的是servlet3.0,它支持对servlet、filter、Listener类的注解式开发。

    JavaEE规范要求JavaWeb项目的程序结构是:

    1. 在当前应用所在目录下可以直接存放资源文件,如.html、.jpg 等,也可以将其放入到子目录中访问。
    2. 若web项目中包含Servlet代码,则servlet的字节码文件必须存放在当前应用所在子目录/WEB-INF/classes下。
    3. 在/WEB-INF/下可以包含web.xml配置文件,定义请求URI与所要访问的Servlet间的映射关系、指定欢迎页面等。
    4. 在/WEB-INF下可以包含子目录lib,用于存放当前web应用所使用的外部Jar包。
    5. /WEB-INF/目录中的资源不能被浏览器直接访问。

    JCP

    Java Community Process,Java审核社区,是一个开放的国际组织,主要负责规范、监督Java的发展。其他个人、企业、机构等制定的Java规范,必须通过JCP审核后,才可被认定为Java规范。JCP的创始者为SUN公司。

    Tomcat服务器

    实际应用中实现了JavaEE规范的Web服务器很多,如Oracle的WebLogic(需购买)、IBM的WebSphere(需购买)、RedHat公司的JBoss(不支持Servlet/JSP规范,开源免费)等。这些都被称为重量级服务区。

    Apache的Tomcat,只是JavaEE规范中Servlet/Jsp规范的实现者,所以其是一个轻量级服务器,它是开源免费的。我们现在的学习过程,使用的是Tomcat服务器。Tomcat也被称为Web容器,或Servlet容器,但不能称为JavaEE容器。

    1. CATALINA_HOME指的是Tomcat服务器安装的根目录,例如:C:apache-tomcat-6.0.32
    2. CATALINA_HOME/bin :存放了一些Tomat服务器相关的命令,例如启动Tomcat服务器需要使用startup.bat,关闭Tomcat服务器需要shutdown.bat.bat后缀的文件我们称作批处理文件,批处理文件中有大量的命令。执行批处理文件就是批量执行一些相关的命令。在该目录下以.sh结尾的文件是在unixLinux操作系统中使用的。例如在Unix操作系统中执行startup.sh,关闭服务器的时候使用shutdown.sh。这些文件叫做shell文件,在这些shell文件中有批量的shell命令。
    3. CATALINA_HOME/conf :存放了一些Tomcat服务器相关的配置文件。有.properties结尾的属性配置文件,有.xml结尾的配置文件,例如:catalina.properties文件、server.xml文件(该文件是一个Tomcat服务器级别的配置文件,配置了相关的服务器端口号等信息)、web.xml(该文件是一个“web应用”相关的模板配置文件)文件、tomcat-users.xml(配置Tomcat服务器用户相关的用户名和密码等信息)文件。
    4. CATALINA_HOME/lib :存放了tomcat服务器的核心程序,所有文件都是以.jar结尾的,这种文件我们称作jar包,在jar包中存放了大量的.class文件。Tomcat服务器的运行主要依赖了这些class文件。其中servlet-api.jarjsp-api.jar都是SUN制定的servletjsp相关的规范,这里的规范就是接口、标准。而其它的jar包中的class都实现了这些接口或者面向了这些接口进行了调用。
    5. CATALINA_HOME/logs :该目录下存储了Tomcat服务器相关的日志信息,由于在DOS窗口中显示文本有限,程序发生异常之后我们无法详细查看所有的信息,这个时候我们可以打开相关的日志文件进行查看。
    6. CATALINA_HOME/temp :临时活页夹,Tomcat服务器运行时用来存储临时文件的。
    7. CATALINA_HOME/webapps :这是一个非常重要的目录,Tomcat服务器规定,所有程序员开发的WEB应用、WEB站点必须存放在该目录下,不然Tomcat服务器无法找到并提供web服务。在webapps目录下存放的一个文件夹代表一个web appweb application
    8. CATALINA_HOME/work :该目录下存放了Tomcat服务器运行JSP的时候生成的 .java文件以及对应的.class文件。(该目录可以暂时放过,等JSP之后再看)

    最后附上Tomcat的安装和配置方法

    Tomcat服务器的安装

    1. 首先确保自己开发的计算机上已经安装了JRE,这里统一安装JRE1.7。因为Tomcat服务器是java语言开发的,服务器要想运行必须有java的运行环境。
    2. tools/tomcat7/apache-tomcat-7.0.57.zip压缩包直接解压缩到C:目录下。这里我们使用的是免安装绿色版tomat服务器。
    3. 解压之后apache-tomcat-7.0.57修改为tomcat7

    Tomcat服务器的配置

      1、由于Tomcat服务器底层是java语言实现的,所以需要java的运行环境,也就是需要JVM,我们在这里只需要配置一个环境变量即可,这个环境变量供Tomcat服务器找到java的运行环境,如下所示:

    JAVA_HOME=C:javajdk6  这个环境变量是必须要配置的

      2、打开CATALINA_HOMEC: omcat7)下的bin文件夹,找到startup.bat批处理文件双击启动Tomcat服务器。如果出现下图则表示服务器启动成功。下面窗口开启表示tomat服务器启动,JVM处于运行状态,可以理解为main方法在运行。点击该窗口右上角的关闭按钮退出JVMJVM退出之后tomat服务器也就退出了,因为tomcat服务器是java实现的。(尽量不要采用这种方式关闭服务器,有的时候会出问题。)

      3、打开CATALINA_HOMEC: omcat7)下的bin文件夹,找到shutdown.bat批处理文件双击关闭Tomcat服务器。(这是一种正规的关闭方式,不会出现服务器没有关闭的现象。)

      4、为了方便我们启动和关闭服务器推荐把启动和关闭服务器的命令配置到环境变量PATH中。这样我们就可以随时随地使用命令开启和关闭服务器了。如下所示:

    PATH= C: omcat7in   (在原先的PATH后面添加即可,不是必须配置的)

    CATALINA_HOME= C: omcat7  (不是必须的)

      5、由于在执行关闭Tomcat服务器命令的时候shutdown.batwindows操作系统关闭计算机的命令冲突了,推荐将tomcat服务器的shutdown.bat修改名为stop.bat

    转载请注明出处:https://www.cnblogs.com/stu-jyj3621
  • 相关阅读:
    《Python核心编程》第二版第308页第十一章练习 续一 Python核心编程答案自己做的
    《Python核心编程》第二版第308页第十一章练习 续二 Python核心编程答案自己做的
    《Python核心编程》第二版第308页第十一章练习 续四 Python核心编程答案自己做的
    《Python核心编程》第二版第209页第八章练习 续三 Python核心编程答案自己做的
    三处设置,使Python的Eclipse开发环境(使用PyDev)支持中文
    瑞士:不喂孩子吃饭 源于儿童教育网
    摘要:了解 ASP.NET 2.0 中的用于生成自定义数据绑定控件的工具是如何演变的
    ASP.NET的Postback
    Delphi调用C#类库.doc
    System.Web.UI.WebControls RenderContents
  • 原文地址:https://www.cnblogs.com/stu-jyj3621/p/14346956.html
Copyright © 2011-2022 走看看