1、Web应用程序基础,预备知识,一、Java Web开发概述,Sun公司根据应用领域的不同划分了三个版本的Java平台。 适用于桌面系统的Java SE标准版 适用于创建服务器应用程序和服务的Java EE企业版。 适用于小型设备和智能卡的Java ME的Micro版。,1) Java SE、Java EE和Java ME,Java SE(Java Platform,Standard Edition) 它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。 Java EE(Java Platform,Enterprise Edition) 企业版本帮助开发和部署可移植
2、、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。 Java ME(Java Platform,Micro Edition) Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。,2) Java EE相关技术,JSP、Servlet和JavaBean Struts 2 Hibernat
3、e Spring,JSP、Servlet和JavaBean,JSP是最早的Java EE规范之一。JSP简单、易用,充当着Java EE应用中的表现层角色。 Servlet和JSP其实是完全统一的,二者在底层的运行原理完全一样,实际上,JSP必须被Web服务器翻译成Servlet,真正在Web服务器内运行的是Servlet。因此广义的Servlet包含了JSP和Servlet。 Java EE应用选择使用JavaBean来传输数据,在严格的Java EE应用中,中间层的组件会将底层的状态信息封装成JavaBean集,这些JavaBean也被称为DTO(Data Transfer Object,
4、数据传输对象),并将这些DTO集传到JSP页面,从而让JSP可以显示应用的底层状态。,二、WEB服务器,Java领域常见的Web服务器都是开源的,而且具有很好的稳定性,主流的有: Tomcat:Tomcat和Java结合的最好,是Sun官方推荐的JSP服务器。 Jetty:一个优秀的Web服务器。Jetty的优点在于,Jetty可以作为一个嵌入式服务器,即:如果在应用中加入Jetty的JAR文件,应用可在代码中对外提供Web服务。 Resin:目前最快的JSP、Servlet运行平台、支持EJB。学习免费,商用收费。,常用的Java EE服务器,除了上述Web服务器以外,还有一些专业的Java
5、 EE服务器,相对于普通的Web服务器而言,Java EE服务器支持更多的Java EE特性,比如分布式事务、EJB容器等。常见的主要有以下几个: JBoss:开源的Java EE服务器,目前支持EJB 3.0技术。 WebLogic和WebShpere:这两个是专业的商务Java EE服务器,价格不菲,但性能等各方面相当出色。,三、开发环境的安装与配置,JDK 下载、安装与环境变量的配置 Tomcat 下载、安装、配置 web应用的控制与部署 Eclipse 下载安装 插件安装,1) JDK,下载JDK 下载地址:http:/ 最新版本:jdk 7,配置系统环境变量,系统属性高级环境变量 新
6、建系统变量JAVA_HOME,值为JDK的安装路径。 新建系统变量CLASSPATH,值为“.;%JAVA_HOME%lib; %JAVA_HOME%libdt.jar; %JAVA_HOME%libtools.jar”。 修改系统变量Path,在其原值后增加“;%JAVA_HOME%bin”,2) Tomcat,下载地址:http:/tomcat.apache.org 最新版本:7.0.25,Tomcat:安装,安装:解压至某一目录下即可。 可以选择解压至C盘根目录下,并将文件夹改名为tomcat7。 需要环境变量:JAVA_HOME,即JDK的安装路径。,Tomcat:启动与停止,启动:
7、双击tomcat7目录中的bin目录下的startup.bat文件。 停止: 1. 直接关闭运行中的tomcat的dos窗口。 2. 运行tomcat服务器bin目录下的shutdown.bat文件。验证tomcat的运行:http:/localhost:8080,Tomcat:配置,修改server.xml(C:tomcat7confserver.xml)如果安装了oracle,则端口8080可能会冲突,这时可把tomcat的端口改为8081,8089等其他端口号。 添加URIEncoding属性是为了解决使用http get方法传递中文参数乱码的问题。,Tomcat:配置,修改contex
8、t.xml(C:tomcat7confcontext.xml) 把修改成 修改目的:当web应用中的文件或者web.xml文件修改后,tomcat服务器会自动重新加载当前web应用,避免重新启动tomcat. 这个修改会对tomcat的运行性能有影响,如果把tomcat作为产品阶段所使用的服务器,最好修改成,Tomcat的目录结构,lib:存放tomcat服务器的核心类库。 bin:存放与tomcat运行有关的类、类库以及批处理文件。 conf:存放tomcat的配置文件。 webapps:存放部署的web应用。 work:存放web应用运行时编译生成的class文件。 temp:存放web应
9、用运行时生成的临时文件。 logs:存放tomcat服务器运行时所产生的日志文件。,Tomcat:进入控制台,Tomcat有三个控制台 server status控制台:用于监控服务器的状态。 Manager App控制台:可以部署、监控web应用。 Host Manager控制台。 修改tomcat-users.xml文件,修改内容如下:,Tomcat:部署web应用,主要掌握两种方式: 利用tomcat的自动部署:把web应用复制到tomcat的webapps下即可。 利用控制台部署:进入控制台后,如下图所示进行部署。,3) Eclipse,下载地址:http:/www.eclipse.o
10、rg 最新版本:indigo(3.7.1)安装:直接解压eclipse-jee-indigo-win32.zip即可。,Eclipse:插件安装,手动直接安装: 将插件中包含的plugins和features文件夹内容直接复制到Eclipse的plugins和features文件夹中,重新启动eclipse即可。 手动扩展安装: 在Eclipse安装路径下新建links文件夹。 在links文件夹内,建立xxx.link文件,该文件的文件名最好与插件名相同。 编辑xxx.link的内容如下:path= 在pluginPath中建立eclipse文件夹,再在其中建立plugins和feature
11、s文件夹。 将插件中包含的plugins和features中的内容复制到上面建立的相应的文件夹中,重新启动eclipse即可。 扩展安装便于插件管理,如需卸载,只需删除对应的link文件即可。,Eclipse:插件安装,在线安装eclipse插件 单击elipse菜单栏中的help,选择“Install New Software.”。 单击对话框中的“Add.”,在弹出的对话框的name中的输入插件名,在location中输入插件的安装地址即可。 注意:Eclipse的插件的安装地址需要从各插件的官方网站上查询。 单击archive选择插件的压缩包即可从本地压缩包中安装插件。 如需升级已有插件
12、,通过“work with”列表框选择插件项,选择需要更新的项,单击next即可。,四、web应用的基本结构,1) 手动构建web应用,新建文件夹webDemo,web应用将存放在该文件夹中。 在webDemo中新建一个名为WEB-INF的文件夹(注意文件夹名全为大写)。 在WEB-INF中新建文件名为web.xml,内容如下:,手动构建web应用(续),或者,在tomcat或其它web容器中找到任一web应用,将其中WEB-INF中的web.xml文件复制到webDemoWEB-INF中,修改web.xml文件中的内容,如上所示,只保留web-app元素即可。在WEB-INF文件夹中,新建两
13、个文件夹:classes和lib。 这两个文件夹都是为了要保存web应用所需要的java类文件,classes中保存单个的*.class文件,lib中保存打包后的jar文件。 以上操作可以创建一个空的web应用,将webDemo复制到tomcat的webapps下就可以自动部署在tomcat中了。,2) 配置配置描述符web.xml,每个web应用的WEB-INF目录下的web.xml文件被称为是配置描述符。在Servlet 2.5规范之前,每个Java Web应用都必须包含一下web.xml文件,并且必须放置在WEB-INF目录下。而对于Servlet 3.0规范而言,这个文件不再是必需的,但是通常建议保留该配置文件。 可以通过在web.xml文件中使用welcome-file-list元素来配置首页,如下所示。index.htmlindex.htmindex.jsp ,