《Java EE编程技术》课程学习指导.docx
《《Java EE编程技术》课程学习指导.docx》由会员分享,可在线阅读,更多相关《《Java EE编程技术》课程学习指导.docx(14页珍藏版)》请在冰豆网上搜索。
《JavaEE编程技术》课程学习指导
《JavaEE编程技术》课程学习指导资料
本课程学习指导资料根据该课程教学大纲的要求,参照现行采用教材《JavaEE编程技术》(郝玉龙、姜(韦华)编著,清华大学出版社,北京交通大学出版社,2008年6月),并结合远程网络业余教育的教学特点和教学规律进行编写,适用于工科类计算机、通信及相关专业学生。
第一部分课程学习目的及总体要求
一、课程的学习目的
《JavaEE编程技术》是一门理论与实践并重的课程,也是一门应用性非常强的课程。
它是随着互联网技术进一步发展、网络服务日益成为主流而形成的一门课程,它以面向对象、跨平台的网络编程语言Java作为基础、以Internet为平台,综合了网络、数据库、XML等多种技术,着重于为不同的用户需求提供一套基于网络的、可装配的、动态的服务解决方案。
因此,学习《JavaEE编程技术》课程,对学生了解和关注计算机领域的发展主流以及最新研究动态,具有非常重要的指导意义,同时,也是IT领域从业人员所需掌握的基本技能之一。
学生在本课程的学习过程中,首先会接触到传统程序开发的基本方法和开发方式,并且熟悉程序开发中的层次概念,在此基础上再学习JAVAEE框架结构及其基本组件,并能最终以此指导自己进行项目开发。
学生通过本课程的学习,能够对网络程序设计中很多相关技术的基本处理方法、发展动态进行很好的掌握和了解,并能指导他们结合自己的兴趣爱好进行今后研究方向的选择。
二、课程的总体要求
《JavaEE编程技术》是一个与实践和应用结合非常紧密的学科,其中使用和涉及到了很多网络设计中的主流技术,比如HTML、XML、JNDI、JDBC、多线程等很多技术,知识点较多、较分散,因此需要从整体上把握和理解课程中所涉及到的相关知识点。
同时需要注意的是,在课程中所涉及到的知识点虽然是JavaEE框架中所必需的内容,却不是课程的主体,因此不会在课程中做太多的概念性介绍,需要学生们认真学习和多上网查阅资料加以理解,并且安排一定数量的练习题和相关实验来增进理解。
《JavaEE编程技术》课程内容包括:
JavaEE框架、面向对象程序设计语言JAVA;HTML;Servlet技术;JSP技术;自定义标记;JSTL;JavaMail;JDBC数据库技术;EJB技术等。
第二部分课程学习的基本要求及重点难点内容分析
第一章JavaEE概述
AVAEE本身并不是一门程序设计语言,而是将各种计算机技术有机结合在一起的网络解决方案,它制定了开发网络程序的一系列规则及框架,发展应用非常迅速,已经极大地改变了人们的生活和思维方式。
本章主要介绍了JavaEE框架中的层、服务器、容器、组件等基本概念,使学生对本课程情况有一个基本了解。
1、本章学习要求
(1)应熟悉的内容
了解C/S、B/S的概念;了解JAVAEE的基本框架;知道计算机应用程序的历史、现状与发展。
(2)应掌握的内容
深刻理解JavaEE的层次结构,以及各层次所负责的功能,熟练掌握容器的概念,深入把握JAVAEE三大组件Servlet、JSP与EJB的概念及作用,掌握JavaEE框架中所涉及的核心技术。
掌握JAVA的三种版本及其应用场景。
2、本章重点难点分析
(1)重点
本章主要JavaEE框架的基本概念,以及Java的三个版本,其中重点在于框架结构以及三种组件的概念。
(2)难点
本章的难点就在于准确理解JavaEE框架中容器和组件的概念。
通过完成下面作业可以更详细地理解和掌握。
(1)Java有哪三个版本,分别应用于什么场合?
(2)简述计算机应用系统的发展历史,并总结计算机应用系统不断发展的特点。
(3)简述C/S结构的层次,以及各层所起到的作用。
比较B/S、C/S结构之间的异同。
(4)在JavaEE架构中,什么是层?
什么是服务器?
什么是容器?
什么是组件?
(5)JavaEE有哪四个组成部分,各起什么作用?
(6)简述JavaEE架构中,用到哪些核心技术,各自有何功能?
第二章搭建JavaEE开发环境
在进行JavaEE开发之前,要先搭建其开发环境。
对于JavaEE项目来说,选择良好的开发配置环境对于整个项目开发大有裨益,是项目开发的重要组成部分。
1、本章学习要求
(1)应熟悉的内容
对常见的JavaEE开发环境比较熟悉,了解其主要功能,安装及配置过程。
(2)应掌握的内容
安装并且配置JavaEE的开发环境,熟练使用相应的开发工具。
2、本章重点难点分析
(1)重点
本章的重点内容是介绍如何下载并且安装配置JavaEE的开发环境。
其中JDK、NetBeans以及Tomcat的安装和配置是重点内容。
(2)难点
配置JavaEE的开发环境。
通过完成下面作业可以更详细地理解和掌握。
(1)按照本章介绍的内容建立JDK+NetBeansIDE的JavaEE集成开发环境。
(2)简述JavaEE应用开发环境的分类,及其对开发人员各有何要求。
3、本章主要知识点
安装配置步骤
(1)安装JDK;
(2)安装NetbeansIDE
(3)安装Tomcat;
(4)开发环境测试
第三章Servlet编程
本章首先讲解Servlet的定义和工作原理,随后通过实例讲解Servlet编程基础:
包括处理客户端输入、发送非HTML文档、获取配置参数等;并且在此基础之上,对会话管理、上下文、Servlet间协作等高级编程技巧进行深入讲解,最后介绍Filter和Listener。
1、本章学习要求
(1)应熟悉的内容
Servlet的工作原理;
Filter和Listener的工作原理和编程方法。
(2)应掌握的内容
Servlet生命周期;
Servlet编程基本技能,包括处理客户端输入、发送非HTML文档、获取配置参数等;
Servlet编程高级技术,包括会话管理、上下文、Servlet间协作等。
2、本章重点难点分析
(1)重点
本章和第四章JSP是本课程的重点章节。
主要介绍了Servlet的定义和工作原理,以及Servlet编程基础:
包括处理客户端输入、发送非HTML文档、获取配置参数等,和Servlet高级编程:
会话管理、上下文、Servlet间协作等。
其中,应用重点掌握处理客户端输入和会话管理的技巧。
(2)难点
对于Servlet编程的技巧,需要通过大量练习加以掌握。
通过完成下面作业可以更详细地理解和掌握。
(1)什么是Servlet?
它与Applet有何异同?
(2)详细论述Servlet的工作过程。
(3)论述客户端请求、会话与Servlet上下文之间的关联。
(4)以下哪些选项说明了request.getParameter和request.getAttribute之间的区别。
选项:
(A)前者返回Object类型的对象,后者返回String类型的对象。
(B)request.getAttribute()和request.setAttribute()对应。
(C)request.getParameter()和request.setParameter()对应。
(D)当两个Web组件之间为链接关系时,被链接的组件通过getParameter()方法来获得请求参数。
(E)当两个Web组件之间为转发关系时,转发目标组件通过getAttribute()方法来和转发源组件共享request范围内的数据。
(F)request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。
(G)request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部,在具有转发关系的Web组件之间共享。
参考答案:
ABDEFG
3、本章主要知识点
知识点1:
Servlet的概念:
Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
它担当客户请求与服务器响应的中间层。
与传统的CGI相比,它是使用一种多线程的程序处理方式-----性能较高。
知识点2:
Servlet的生命周期(含状态转换图):
(1)初始化init()方法
初始化一次,默认情况下在第一次使用时初始化,也可以在容器启动时候初始化。
若要在服务器启动时装入Servlet,可以在web.xml的元素中,加入标签:
Servletname1
demo.servlet.SomeServlet1
10
标签设定的是装入时的顺序值,数值越小就越先装入。
初始化函数为init()和init(ServletConfig),当两个初始化函数同时存在时,优先调用含参数的方法。
当调用Servlet的init()方法初始化Servlet时,Web容器创建一个Servlet配置对象(ServletConfig)实例并通过该对象向Servlet传递初始参数。
这个Servlet设置对象在Servlet初始化后一直在内存中存在,直到Servlet被清除(调用destroy()方法)。
初始化如果成功,Servlet成为可提供服务的状态,否则相反。
可以用ServletConfig的getInitParameter()取得web.xml中设定的初始化参数:
parameter
value
(2)服务状态:
doGet()、doPost()、service()
当用户请求传递到Web服务器时,Web服务器产生一个请求对象request和响应对象response。
Web窗口将这两个对象传递到处于可以服务状态的Servlet来让其进行处理,并且根据不同的HTML请求方式,分别调用对应Servlet中的Service()、doGet()方法和doPost()方法。
处理完成后通过response对象返回给Web容器。
doGet()、doPost()、service()等方法在执行过程中会调用多次。
(3)销毁destroy()
销毁也执行一次,当服务器关闭或servlet长时间不使用时容器会调用destroy()关闭servlet。
知识点3:
ServletContext与ServletConfig之间区别:
(1)对于web容器来说,ServletContext接口定义了一个servlet环境对象,这个对象定义了一个在servlet引擎上的servlet的视图。
事实上,在服务器启动时,web容器会加载web应用,并为每个web应用创建唯一的ServletContext对象,一个web应用中的所有servlet都可以通过该对象访问初始化参数、存储在上下文中的对象、以及与背景关联的资源。
通过使用这个对象,servlet可以记录事件,得到资源并得到来自servlet的引擎类。
另外,ServletContext对象只在web应用被关闭的时候才被销毁,不同的web应用,ServletContext各自独立存在。
(2)则不同,它与具体的servlet关联起来,每一个servlet对象有一个独立的ServletConfig对象。
但是一个的ServletConfig对象不能被另一个servlet访问,也就是说,在本servlet声明后的ServletConfig只能在本servlet内被访问,属于内部持久有效的变量。
第四章JSP编程
JSP编程是本书的重点,希望同学对这一章以及上一章的servlet的内容熟练掌握,灵活运用,如果能做到这一点,本书的主要内容也就达到了,课程的授课目标也就达到了。
这一章首先介绍JSP的概念和工作原理,然后通过实例讲解JSP的脚本元素、指令、动作组件、内置对象以及表达式语言等重要编程方法。
1、本章学习要求
(1)应熟悉的内容
熟悉JSP基本概念;JSP页面结构。
(2)应掌握的内容
通过本章的学习,要求学生深刻理解JSP中的语法元素及其所包含的主要内容,如JSP脚本元素:
包括声明、表达式、程序代码段;掌握不同的注释在JSP中所起的作用及其效果。
熟练掌握JSP的指令元素:
page、include、taglib。
理解并熟练掌握JSP的动作元素:
include>、forward>、param>、plugin>、params>、useBean>、setProperty>、getProperty>。
并且能够熟练使用JSP内置对象:
out对象、request对象、response对象、session对象等。
2、本章重点难点分析
(1)重点
本章是本课程重点章节之一。
主要介绍了JSP的工作原理、页面结构及其语法元素,重点介绍了:
脚本元素、动作、指令,并且介绍了JSP中所用到的常见内置对象。
(2)难点
本章难点是理解JSP语法元素中的各种语法内容和技术。
克服本章的难点只能通过多练习、多实践,这也是本书的一个主要学习手段,本课程除了JavaEE的架构及各章的基本概念,最主要的学习方法就是多动手进行实践。
通过完成下面作业可以更详细地理解和掌握。
(1)简述JSP几种内置对象的用途及其作用范围。
(2)简述forward>和response.sendRedirect之间的区别。
3、本章主要知识点
知识点1:
JSP脚本元素
JSP脚本元素是包含在一对<%%>之间的Java代码,实际运行时,这些Java代码将出现在由当前JSP页面生成的Servlet中。
脚本元素有三种格式:
表达式:
<%=expression%>,计算表达式并输出其结果。
Scriptlet:
<%code%>,把代码插入到Servlet的service方法。
声明:
<%!
code%>,把声明的内容做为Servlet类的成员(在任何方法之外)。
详细用法:
(1)JSP表达式
JSP直接把表达式的计算结果发送到客户端,插入到其原来所在的位置以显示出来。
其语法如下:
<%=JavaExpression%>
计算Java表达式得到的结果被转换成字符串,然后插入到页面。
计算在运行时进行(页面被请求时),因此可以访问和请求有关的全部信息。
例如:
Currenttime:
<%=newjava.util.Date()%>
(2)JSP脚本元素(Scriptlet)
任何合法的Java语句或者语句块均可以作为JSPScriptlet插入到JSP页面中。
JSPScriptlet语法如下:
<%合法的Java语句%>
和JSP表达式一样,Scriptlet也可以访问所有内置对象。
例如,向客户端输出内容,可以使用out变量:
<%
StringqueryData=request.getQueryString();
out.println("AttachedGETdata:
"+queryData);
%>
注意Scriptlet中的代码将被照搬到Servlet内,而Scriptlet前面和后面的静态HTML(模板文本)将被转换成println语句。
这就意味着,Scriptlet内的Java语句并非一定要是完整的,没有关闭的块将影响Scriptlet外的静态HTML。
(3)JSP声明
JSP声明用来定义插入Servlet类的方法和成员变量,其语法如下:
<%!
JavaCode%>
由于声明不会有任何输出,因此它们往往和JSP表达式或Scriptlet结合在一起使用。
例如,下面的JSP代码片断输出自从服务器启动(或Servlet类被改动并重新装载以来)当前页面被请求的次数:
<%!
privateintaccessCount=0;%>
自从服务器启动以来页面访问次数为:
<%=++accessCount%>
知识点2:
JSP指令
JSP指令影响Servlet类的整体结构,它的语法一般如下:
<%@directiveattribute="value"%>
另外,也可以把同一指令的多个属性结合起来,例如:
<%@directiveattribute1="value1"attribute2="value2"...attributeN="valueN"%>
JSP指令分为两种类型:
第一是page指令,用来完成下面这类任务:
导入指定的类,自定义Servlet的超类,等等;第二是include指令,用来在JSP文件转换成Servlet时引入其他文件。
taglib指令,将在后续章节中进行介绍。
(1)page指令
page指令的作用是定义下面一个或多个属性,这些属性大小写敏感。
import="package.class",或者import="package.class1,...,package.classN":
用于指定导入哪些包,例如:
<%@pageimport="java.util.*"%>。
import是唯一允许出现一次以上的属性。
contentType="MIME-Type"或contentType="MIME-Type;charset=Character-Set":
该属性指定输出的MIME类型。
默认是text/html。
例如,下面这个指令:
<%@pagecontentType="text/plain"%>。
和下面的Scriptlet效果相同:
<%response.setContentType("text/plain");%>
isThreadSafe="true|false"描述线程安全性。
session="true|false"
默认值true表明启用内置对象session,JSP可以访问该session,在一个会话内有效。
、如果取值false,表明不会用到会话,试图访问变量session将导致JSP转换成Servlet时出错。
buffer="sizekb|none"
该属性指定JspWriteout的缓存大小。
默认值和服务器有关,但至少应该是8KB。
autoflush="true|false"
默认值true表明如果缓存已满则刷新它。
autoflush很少取false值,false值表示如果缓存已满则抛出异常。
如果buffer="none",autoflush不能取false值。
extends="package.class"
该属性指出将要生成的Servlet使用哪个超类。
使用该属性应当十分小心,因为服务器可能已经在用自定义的超类。
info="message"
该属性定义一个可以通过getServletInfo方法提取的字符串。
errorPage="url"
该属性指定一个JSP页面,所有未被当前页面捕获的异常均由该页面处理。
isErrorPage="true|false"
该属性指示当前页面是否可以作为另一JSP页面的错误处理页面。
默认值false。
language="java"
该属性用来指示所使用的语言。
目前没有必要关注这个属性,因为默认的Java是当前唯一可用的语言。
(2)include指令
include指令用于JSP页面转换成Servlet时引入其他文件。
该指令语法如下:
<%@includefile="relativeurl"%>
第五章在JSP页面中使用JavaBean
本章首先阐述了JavaBean的原理,接着讲解如何在JSP页面中引入JavaBean,最后演示一个基于JSP+JavaBean模式的程序开发示例。
1、本章学习要求
(1)应熟悉的内容
学生通过本章的学习,应该了JavaBean的基本概念、以及在书写JavaBean时所应注意的编写规则。
(2)应掌握的内容
通过本章的学习,要求学生熟练掌握如何在JSP声明一个JavaBean:
useBean>;如何在JSP页面中通过JSP动作getProperty>访问一个业已存在的JavaBean的属性;并且掌握采用setProperty>设置JavaBean属性的方法。
2、本章重点难点分析
(1)重点
JavaBean的学习和使用也是本课程重点章节之一。
主要介绍了JavaBean的基本概念,以及在JSP中如何使用JavaBean以及访问和设置JavaBean的属性。
重点要求学生熟练掌握JavaBean的编写的使用。
(2)难点
本章难点是JSP和JavaBean的结合,以及JavaBean的参数传递和生命期。
学生需要认真阅读教材,并参照老师的课件,多做练习,深入领会,加深理解。
通过完成下面作业可以更详细地理解和掌握。
(1)一个JavaBean必须符合哪些设计规则?
(2)JSP如何与JavaBean结合?
二者如何传递信息?
3、本章主要知识点
知识点1:
JavaBean动作标签
(1)useBean>标签
useBean>定义一个具有一定生存范围以及一个唯一标识id的JavaBean的对象。
在执行过程中,useBean>首先会尝试寻找已经存在的具有相同id和scope值的JavaBean实例,如果没有就会自动创建一个新的实例。
具体语法如下:
useBeanid=“name”scope=“page|request|session|application”class="className">
body
useBean>
(2)setProperty>标签
setPropertyname="beanInstanceName"
{property="*"|
property="propertyName"[param="parameterName"]|
property="propertyName"value="{string|<%=expression%>}"}
/>
第六章 JSP自定义标记
本章首先讲解自定义标记的基本概念、工作原理,随后由浅入深地指导如何开发简单自定义标记、带属性的自定义标记、体标记和嵌套标记,最后淙了如何发布自定义标记库。
1、本章学习要求
(1)应熟悉的内容
学生通过本章的学习,应该了解为什么要建立标记,为什么要建立自定义标记,应该掌握自定义标记的表示和分类。
(2)应掌握的内容
通过本章的学习,要求学生熟练掌握自定义标记的工作原理;掌握自定义标记库的开发思想,理解自定义标记库的组成,并且熟悉标记库的发布方法。
2、本章重点难点分析
(1)重点
本章主要介绍了自定义标记的基本概念、工作原理,重点要求学生掌握自定义标记的开发步骤和基本原则,要求学生能够掌握开发不同类型标记所需的不同操作方法。
(2)难点
本章难点在于对自定义标记的理解和开