1、第一讲 Web开发简介和Tomcat服务器的安装与配置,课程目标,学完本门课程后,你能够 熟练掌握B/S编程技能(HTML,JavaScript,JSP) 熟练使用OO思想编写后台业务代码 具备基本的调试B/S系统的能力 熟练掌握JDBC和集合编写数据库访问程序 掌握Servlet和会话(Session)技术 掌握基于组件的分层开发技术 掌握JSTL、EL和JavaBean 掌握JDBC的高级技术、自定义异常、JNDI查找数据源 掌握过滤器的配置,了解Web的发展历程及常见开发手段 掌握JavaEE核心框架及主要服务 掌握JavaEE核心设计模式 了解Tomcat服务器的主要作用 掌握Tomc
2、at服务器的安装及配置 掌握Tomcat安装目录下的主要目录的作用 理解JSP页面的执行流程 编写第一个交互式程序,本章目标,Web的发展历程,在最早,人们为了方便开展科学研究,设计出了Internet用于连接美国的少数几个顶尖研究机构,之后随着进一步的发展,人们开始应用HTTP(Hypertext Transfer Protocol,超文本传输协议)进行超文本(Hypertext)和超媒体(Hypermedia)数据的传输,从而将一个个的网页展示在每个用户的浏览器上。今天的Web已经从最早的静态Web发展到了动态Web阶段。随之而来的,像网上银行、网络购物等站点的兴起,更是将Web带进人们的
3、生活和工作之中。,静态Web,客户端,Web浏览器,服务器端,Web服务器,网络,文件系统,HTTP回应 (HttpResponse),HTTP请求 (HttpRequest),静态网站有哪些局限性?,要完成这一切,我们需要使用动态网页,1、无法实现搜索、登录、购买等交互功能,2、无法对静态页面的内容在线更新,用户要什么给什么,太枯燥,静态WebApplet,客户端,Web浏览器 (植入JVM),服务器端,Web服务器,网络,文件系统,HTTP回应 (HttpResponse),HTTP请求 (HttpRequest),Applet实际上是最早的客户端实现的Web技术手段,不能访问资源。 客户
4、端植入了JVM,动态效果在客户端完成,服务器端没有任何变化。,什么是动态网页,生活中的动态网页,可以根据不同的输入(或操作),返回不同的网页,这就是动态网页,怎样实现动态网页,要掌握这一切,我们首先需要了解B/S技术,为什么学习B/S技术,C/S的局限性,中心局域网 特定用户群中资源共享,B/S带给我们的全新体验,数据库服务器,学生机1,学生机2,学生机n,需要安装客户端软件,Google服务器,Internet 全球用户群中资源共享,美国用户,中国用户,数据库 服务器,无需安装客户端软件,什么是B/S技术,B/S结构(浏览器/服务器):程序完全部署在服务器上,用户通过浏览器访问应用程序,它是
5、基于Internet的产物。,应用 服务器,数据库 服务器,IE,Netscape,IE,Internet,在应用服务器中部署、运行程序,B/S技术特点,B/S结构中浏览器端与服务器端采用请求/响应模式进行交互。,应用 服务器,数据库 服务器,IE,IE,解释执行 HTML文件,从服务器端检索到的信息,返回响应,客户端的请求信息,发送请求,运行JSP等服务器端程序,1,用户输入,2,3,4,动态Web,客户端,Web浏览器,服务器端,Web服务插件,网络,文件系统,HTTP回应 (HttpResponse),HTTP请求 (HttpRequest),Web服务器,Web容器,动态请求,静态请求
6、,动态 响应,静态Web和动态Web的区别,动态Web可以进行数据库连接;而静态Web无法连接数据库 静态Web基本上都是靠普通的HTML(网页)实现的,即使有了Applet也只是在HTML中加入了若干代码而已,本身没有太大的改变。,动态Web的实现方式,CGI(Connection Gateway Interface,公共网关接口) PHP(Hypertext Preprocessor,超文本预处理) ASP(Active Server Pages,动态服务页) ASP.NET JSP(Java Server Page,Java服务页)/Servlet(服务端小程序),CGI,是一个公共的操
7、作接口,使用各种语言实现 CGI是一种多进程语言,是一种标准,进程比线程慢,故性能很低,PHP,本身是在Linux下发展起来的,由于PHP本身没有各个大公司的支持,发展形势只能作为个人开发或小型项目开发 采用Apache+MySQL的架构形式,导致PHP的存活问题,ASP和ASP.NET,ASP这门技术比较成熟,也比较流行,目前用的越来越少,多数用于小站点开发 ASP本身性能较差 ASP.NET作为一种新的开发平台,性能较高 .NET和J2EE互相学习,.NET模仿了大量的Java应用 .NET受平台限制,JSP/Servlet,不受平台限制 使用标准的操作系统、开发工具、数据库、开发平台 最
8、主要的是Java本身是多线程支持的,故性能很高,企业开发架构,开发平台,中间件,数据库,操作系统,例如:JavaEE,例如:Tomcat、JBoss、WebLogic,例如:DB2、Oracle、MySQL,例如:Unix、Linux、Windows,JavaEE架构,Java分支:JavaSE、 JavaEE、 JavaME JavaEE(Java Enterprise Edition,在2005之前称为J2EE) 是在JavaSE基础上建立起来的一种标准开发架构,主要用于企业级应用程序的开发,在JavaEE的开发中是以B/S作为主要开发模式,在JavaEE中提供了多种组件及各种服务。,Ja
9、vaEE核心组成,四个容器、四种组件 容器:Applet Container,Application Container, Web Container,EJB Container 组件:Applet,Application,JSP/Servlet,EJB 服务:HTTP,JDBC,JNDI,JSTL等,生活案例,顾客点菜,顾客点菜,厨师,菜肴,服务员,加工菜肴,服务员,把菜单给厨师,服务员上菜,把菜单给服务员,把菜给服务员,以各自的功 能进行分工,Web程序的功能分工,如果把Web容器处理请求的过程按功能划分,你如何进行划分?,JavaEE核心设计思路MVC,设计模式的定义,什么是设计模式 是
10、一套被反复使用、多数人知晓的、代码设计经验的总结 模式必须是典型问题(不是个别问题)的解决方案 设计模式的作用 解决一类问题的成功经验 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性,MVC设计模式,MVC设计模式 模型 - Model 视图 - View 控制器 - Controller,MVC 模式,控制器,模型,视图,JavaBean,JSP,Servlet,MVC设计模式,模型:代表应用程序状态和业务逻辑,控制器:根据客户的请求来操纵模型,并把结果经由视图展现给客户,视图:提供可交互的客户界面,向客户显示模型数据,MVC设计模式的模块组成,MVC交互过程,浏览器客户端,控制器
11、(C) Servlet,视图(V) JSP,模型(M) JavaBean,数据库文件,请求,响应,MVC的优点,MVC设计模式的优点,各司其职、互不干涉,代码的重用性,有利于开发的分工,MVC 的优点,Web容器,Web容器在动态Web中才存在 Web容器本身是专门用来处理拼凑代码功能的 Web容器可以连接数据库,如何获得Web容器,从整个Java行业来讲,Web容器时很多的,Java是属于多个开发商支持的一种语言,所以只要符合了语言的标准就可以是以Java的任何代码运行。许多的Web容器(包括EJB容器)依然存在收费和免费。,收费的Web容器:WebLogic、WebSphere 免费的We
12、b容器:Tomcat,Tomcat简介,Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目 Tomcat技术先进、性能稳定、免费 是一个符合JavaEE标准的最小的Web容器 直接从Apache下载:http:/tomcat.apache.org,Tomcat的安装配置过程,安装JDK: http:/ Tomcat的安装 下载:http:/tomcat.apache.org/download-60.cgi 解压版、安装版,Tomcat的配置:配置系统环境变量 java_home:jdk的安装目录 catalina_home:tomcat的解压目录 catalina_bas
13、e:tomcat的解压目录 tomcat_home:tomcat的解压目录 path:JDK的安装路径bin classes:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar;%CATALINA_HOME%libservlet-api.jar;,Tomcat主目录,bin 所有的可执行命令,启动和关闭服务器的命令也在这个文件夹中 conf 服务器的配置文件夹,里面保存了各种配置信息 lib Tomcat服务器所需要的各种库文件 logs 保存服务器的系统日志 webapps Web应用程序存放的目录,Web项目保存到此目录中即可发布热部署 work
14、临时文件夹,生成所有的临时文件(*.java,*.class),服务器的配置,修改conf/server.xml文件 在项目开发时,只要与配置有关的XML文件一经被修改,服务器必须重新启动,才可以读出新的配置信息(一定要注意) 举例:修改服务端口号:808080,设置欢迎页面,默认的首页:index.html、index.htm、index.jsp conf/web.xml最好不要改公共配置文件,而去修改每个独立项目下的配置,修改后重新启动服务器: 自己文件夹/WEB-INF/web.xml,index.htmlindex.htmindex.jsp,服务器用户名和密码设置,conf/tomca
15、t-users.xml,编写第一个JSP文件,在HTML文件中添加脚本代码 演示:输出“Hello World!”,JSP执行流程,用户,Web服务器,Hello.jsp,Hello.java,Hello.class,1、Get/hello.jsp,2、读取,3、生成,4、编译,5、执行,6、HTTP协议 htmlHello world!,交互性,动态Web的最大特点就是交互性 依靠表单接受请求的方法: request.getParameter(“参数名称”),返回的是String类型的数据,什么是URL,URL:Uniform Resource Locator 即统一资源定位系统,就是我们通
16、常所说的网址 URL是惟一能够识别Internet上具体的计算机、目录或文件位置的命名约定 URL的组成:,http:/localhost:8080/news/index.html,协议,主机IP地址 和端口号,主机资源的具体地址,存放HTML文件的实际物理目录,在运行环境中,该路径对应WebRoot文件夹,Web程序的调试与排错,在运行Web程序时,我们常犯的一些错误有: 未启动Tomcat服务,或者没有在预期的端口中启动Tomcat服务 未部署Web应用,就试图运行Web程序 运行时,URL输入错误 存放文件的目录无法对外引用,如:文件放入了WEB-INF、META-INF等文件夹,错误1
17、:未启动Tomcat,排除错误: 启动Tomcat服务 如果在控制台上显示Tomcat服务已启动,观察端口号是否与预期端口号一致,按照实际端口号重新运行,错误现象,排错方法: 检查Tomcat服务能否正确运行,1,2,3,错误2:未部署Web应用,排除错误: 部署Web应用 启动Tomcat服务,排错方法:检查Web应用是否正确部署,尚未部署,错误现象,1,2,3,错误3:URL输入错误,排除错误:使用正确的URL,错误现象,排错方法: 检查URL,http:/localhost:8080/news/index.html,文件名称与路径要写对,查看菜单:项目属性MyEclipseWebWeb Context-root,协议,主机IP地址,1,2,3,错误4:目录不能被引用,排除错误:把index.html文件拖至WebRoot文件夹下,错误现象,排错方法: 检查文件的存放位置,META-INF,WEB-INF文件夹下的内容无法对外发布,1,2,3,