JavaWeb程序设计教程课后练习答案.docx

上传人:b****3 文档编号:24915829 上传时间:2023-06-02 格式:DOCX 页数:42 大小:162.89KB
下载 相关 举报
JavaWeb程序设计教程课后练习答案.docx_第1页
第1页 / 共42页
JavaWeb程序设计教程课后练习答案.docx_第2页
第2页 / 共42页
JavaWeb程序设计教程课后练习答案.docx_第3页
第3页 / 共42页
JavaWeb程序设计教程课后练习答案.docx_第4页
第4页 / 共42页
JavaWeb程序设计教程课后练习答案.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

JavaWeb程序设计教程课后练习答案.docx

《JavaWeb程序设计教程课后练习答案.docx》由会员分享,可在线阅读,更多相关《JavaWeb程序设计教程课后练习答案.docx(42页珍藏版)》请在冰豆网上搜索。

JavaWeb程序设计教程课后练习答案.docx

JavaWeb程序设计教程课后练习答案

第1章Web应用开发简介

习题答案

1.Web在组成上包括______和______两部分。

答案:

服务器

客户端

2.谈谈对面向对象的认识。

答案:

面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。

面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。

面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。

3.介绍几种常用的框架技术。

答案:

Java中常用的框架。

1.Struts

Struts是Apache基金会Jakarta项目组的一个开源项目,是一个基于SunJ2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。

2.WebWork

WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。

它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。

3.Struts2

Struts2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。

4.Spring

Spring是一个以IoC和AOP为核心的轻量级容器框架。

它提供了一系列的JavaEE开发解决方案,包括表示层的SpringMVC、持久层的SpringJDBC以及业务层事务管理等众多的企业级应用技术。

5.Hibernate

Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。

通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。

6.Ibatis

相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。

7.EasyJWeb

EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于JavaWeb应用程序的快速开发。

4.IDE的用途是什么?

答案:

IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。

正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。

5.Web应用服务器的用途是什么?

Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

第2章JavaEE运行及开发环境

习题答案

1.配置JDK环境变量时,需要编辑______变量,需要新增______变量和_______变量。

答案:

Path

Java_Home

classpath

2.Tomcat的启动和停止程序位于其安装路径的______文件夹中。

答案:

bin

3.Tomcat中______文件用于配置服务器端口连接等信息。

答案:

server.xml

4.在MyEclipse中,打开MyEclipse->______->Tomcat结点,选择Tomcat6.0结点,进入Tomcat6.0配置界面。

答案:

Servers

5.以下三个选项,______用于工程的发布。

答案:

1

第3章JSP和Servlet

习题答案

(1)JSP的九个内置对象分别为___,___,___,___,___,___,___,___,___。

答案:

request对象

response对象

session对象

out对象

page对象

application对象

pageContext对象

config对象

exception对象

(2)画出JSP的工作原理图?

答案:

JSP的工作原理图:

(3)page指令的作用?

答案:

page指令用于定义JSP页面中的全局属性。

(4)jsp:

useBean指令的作用?

答案:

jsp:

useBean指令用来在JSP页面内创建一个JavaBean实例。

(5)元素的作用?

答案:

元素用于要求服务器启动时就加载和初始化Servlet。

(6)举一个声明的例子。

<%!

intnumber=0;//声明一个变量

publicintgetNum(inti){//声明一个方法

returni;

}

%>

第4章SQL与JDBC

习题答案

1.简述SQL的组成部分。

答案:

SQL语言由以下3部分组成,分别是:

●数据库模式定义语言(DDL):

CREATE、DROP、ALTER等语句。

●数据操纵语言(DML):

INSERT、UPDATE、DELETE、SELECT语句。

●数据控制语言:

GRANT、REVOKE、COMMIT、ROLLBACK等语句。

2.简述JDBC的执行步骤。

答案:

(1)加载JDBC驱动程序

通过静态类Class类加载数据库驱动。

(2)取得数据库连接

通过DriverManager类中的getConnection()获取数据库的连接对象Connection

(3)执行各种SQL语句

将Connection对象转换成Statement对象,通过该对象的executeUpdate()执行添加、修改以及删除的SQL语句。

(4)获取查询结果

将Connection对象转换成Statement对象,通过该对象的executeQuery()执行查询的SQL语句,该方法返回ResultSet对象。

(5)关闭数据库连接

通过Connection对象的close()方法关闭数据库连接,并抛出异常。

3.Statement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?

答案:

Statement接口的executeUpdate(Stringsql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。

该接口还可以通过executeQuery()方法查询的SQL语句。

4.PreparedStatement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?

答案:

PreparedStatement接口的executeUpdate(Stringsql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。

该接口还可以通过executeQuery()方法查询的SQL语句。

5.CallableStatement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?

答案:

CallableStatement接口的executeUpdate(Stringsql)方法将执行添加(insert)、修改(update)和删除(delete)的数据库的存储过程,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。

该接口还可以通过executeQuery()方法查询的数据库存储过程。

6.在SQLServer数据库系统中,创建一个数据库,并且在该数据库下创建学生信息表,含有学生的基本信息,并通过JDBC实现对该数据表内容实现添加、修改、删除和查询的操作。

答案:

JDBC的代码如下:

importjava.sql.*;

publicclassJDBConnection{

privatefinalStringdbDrive="com.mysql.jdbc.Driver";

privatefinalStringurl="jdbc:

mysql:

//localhost:

3306/db_text?

characterEncoding=gb2312";

privatefinalStringuserName="sa";

privatefinalStringpassword="";

privateConnectioncon=null;

publicJDBConnection(){//通过构造方法加载数据库驱动

try{

Class.forName(dbDrive).newInstance();

}catch(Exceptionex){

System.out.println("数据库加载失败");

}

}

publicbooleancreatConnection(){//创建数据库连接

try{

con=DriverManager.getConnection(url,userName,password);

con.setAutoCommit(true);

}catch(SQLExceptione){

}

returntrue;

}

publicbooleanexecuteUpdate(Stringsql){//对数据表的增加、修改和删除的操作

if(con==null){

creatConnection();

}

try{

Statementstmt=con.createStatement();

intiCount=stmt.executeUpdate(sql);

System.out.println("操作成功,所影响的记录数为"+String.valueOf(iCount));

returntrue;

}catch(SQLExceptione){

returnfalse;

}

}

publicResultSetexecuteQuery(Stringsql){//对数据库的查询操作

ResultSetrs;

try{

if(con==null){

creatConnection();

}

Statementstmt=con.createStatement();

rs=stmt.executeQuery(sql);

returnnull;

}catch(Exceptione){

returnnull;

}

returnrs;

}

}

publicvoidcloseConnection(){//关闭数据库连接

if(con==null){

try{

con.close();

}catch(SQLExceptione){

}

}

}

}

将MYSQL数据库驱动的类包加载在工程中后,读者可以通过上代码,调用相应的方法,实现对学生信息表进行各种操作。

第5章Struts2框架入门

习题答案

1.简单介绍MVC设计模式。

答案:

MVC英文为Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成3个层:

模型层、视图层和控制层,从而可以使同一个应用程序使用不同的表现形式。

2.简单介绍Struts2的工作流程。

答案:

Struts2框架的基本工作流程如下图所示:

Struts2工作流程图

对Struts2工作流程的详细说明如下:

(1)客户端初始化一个指向Web容器(例如Tomcat)的请求。

(2)请求经过一系列的过滤器(Filter)的过滤并传递给FilterDispatcher。

(3)FilterDispatcher接收到请求信息后,会根据URL在ActionMapper中搜索指定Action的映射信息。

(4)如果找到符合的映射信息,ActionProxy通过ConfigurationManager在配置文件“struts.xml”中搜索被请求的Action类。

(5)ActionProxy创建一个被请求Action的实例,该实例将用来处理请求信息。

(6)如果在“struts.xml”文件中存在与被请求Action相关的拦截器配置,那么该Action的实例被调用的前后,这些拦截器也会先被执行。

(7)Action对请求处理完毕以后返回一个逻辑视图,由此逻辑视图寻找对应的物理视图(可以是JSP、Velocity模板、FreeMarker模板等),并返回给客户端。

3.在创建Action类时,需要注意哪些方面?

答案:

在Struts2中,Action可以以多种形式存在:

普通的Java类、实现Action接口和继承ActionSupport类。

在Action类中通常包含以下内容:

●无参数的execute()方法:

用于处理用户请求。

●私有属性及其属性的set、get方法:

Action类中封装HTTP请求参数,因此私有属性的名称应和HTTP请求参数的名称保持一致;程序通过属性的set、get方法来处理请求参数,所以必须提供属性的set、get方法。

4.使用不同的结果类型时,需要如何配置?

答案:

在Struts2应用程序中,所有的Action类在处理完成之后返回的都是一个字符串类型的结果,这个结果作为一个逻辑视图而存在。

Struts2框架正是通过这个字符串,在“struts.xml”配置文件中将逻辑视图与物理视图建立起映射关系,而这一实现是由元素来声明的。

元素的type属性用于指定结果的类型,而且默认情况下为JSP文件。

当需要使用不同的结果类型时,将type属性的值设置为相应的结果类型即可。

5.“struts.xml”文件中元素都有哪些属性?

作用是什么?

答案:

元素用来配置Action,它包含的属性如下表所示:

属性名称

是否必须

功能描述

name

请求的Action名称

class

Action处理类对应具体路径

method

指定Action中的方法名

converter

指定Action使用的类型转换器

第6章Struts2进阶

习题答案

1.如何部署和添加拦截器?

答案:

使用元素的子元素引入指定的拦截器,在引入时需指定该拦截器的名称及其实现类。

下面是部署拦截器的示例代码:

--部署timer拦截器-->

class="com.opensymphony.xwork2.interceptor.TimerInterceptor"/>

--省略配置Action的代码-->

使用元素的子元素加入所需拦截器。

下面是添加拦截器的示例代码:

--省略部署拦截器的代码-->

--添加拦截器-->

/success.jsp

2.继承类______或类______可实现自定义类型转换器。

答案:

DefaultTypeConverter

StrutsTypeConverter

3.在使用元素时,通过_____元素来引入要使用的校验器。

答案:

4.在Struts2应用中如何实现国际化?

答案:

实现国际化的步骤:

(1)创建国际化资源文件,例如sunyang_zh_CN.properties、sunyang_en_US.properties。

(2)在资源文件中添加需要国际化的内容,例如

hello=你好

hello=hello

(3)配置国际化资源文件,可将资源文件配置为全局范围、包范围或Action范围。

(4)调用国际化资源文件,在应用中使用不同的方式来获得国际化资源信息。

5.在Struts2应用中如何实现文件上传?

答案:

实现文件上传的步骤:

(1)如果需要,在struts.properties文件中重新配置上传解析器。

(2)在Action类中封装与上传文件相关的属性,例如:

publicclassUploadActionextendsActionSupport{

privateStringtitle;//上传文件标题

privateFilepic;//上传文件

privateStringpicContentType;//上传文件类型

privateStringpicFileName;//上传文件名

privateStringsavePath;//上传文件保存路径

publicvoidsetSavePath(StringsavePath){

this.savePath=savePath;

}

//返回文件上传路径

privateStringgetSavePath(){

HttpServletRequestrequest=ServletActionContext.getRequest();

returnrequest.getRealPath(savePath);

}

//省略其他属性的set、get方法

publicStringexecute()throwsException{

setSavePath("");//将上传文件存储路径设为空

FileOutputStreamfos=newFileOutputStream(getSavePath()+"\\"

+getPicFileName());//以上传文件存放路径和原文件名建立一个输出流

FileInputStreamfis=newFileInputStream(getPic());//以上传文件建立一个输入流

byte[]buffer=newbyte[1024];

intlen=0;

while((len=fis.read(buffer))>0){

fos.write(buffer,0,len);//将上传文件写入到输出流所对应的文件中

}

returnSUCCESS;

}

}

(3)将用于实现文件上传的Action类进行相关的配置,配置方式和普通的Action类相同。

第7章Struts2中应用模板语言

习题答案

1.Velocity中属性引用的赋值方式都有哪些?

答案:

Velocity中属性引用的赋值方式有两种:

●使用Hashtable对象赋值。

●使用方法赋值。

2.简述几种Velocity的指令及其用法。

答案:

下面是几种常见的Velocity指令:

●set指令:

给引用赋值。

●使if/elseif/else指令:

类似于Java语言中的if…elseif…else指令,可进行条件控制。

●set指令:

给引用赋值。

●foreach指令:

进行遍历循环。

●macro指令:

用来定义宏。

3.简述FreeMarker的宏指令及其用法?

答案:

在FreeMarker中,宏是一个用户自定义指令,定义完宏后就可以在模板中用@来使用宏。

宏是使用macro指令来定义的。

例如使用下面的代码定义宏:

<#macrobookbookname>

书的名字:

${bookname}

使用下面的代码在模板中使用宏:

<#macrobookbookname>

书的名字:

${bookname}

<@bookbookname="JSP教程"/>

4.在FreeMarker中如何格式化数字?

答案:

在FreeMarker中可使用#{expre;format}这种形式格式化数字,其中的format使用mN或MN表示,mN代表小数部分最小N位,MN代表小数部分最大N位。

5.使用Velocity模板在控制台输出一本图书的相关信息。

实例内容:

在控制台输出图书的id、图书的名称、图书的作者、图书的价格、图书的出版社、图书的出版日期,要求使用方法赋值的方式给各个属性赋值。

答案:

(1)创建一个Java工程,名称为booksys,导入工程所需的jar文件velocity-dep-1.5.jar。

(2)在工程下创建模板文件showBookInfo.vm,该模板文件可输出图书的相关信息,模板文件的代码如下:

图书id:

$book.bookid

图书名称:

$book.bookname

图书作者:

$book.bookauthor

图书价格:

$book.bookprice

出版社:

$book.bookcencern

出版日期:

$book.bookdate

(3)在工程的sunyang包下创建一个类Book.java,该类为一个JavaBean,代表图书的相关信息。

类Book的代码如下:

publicclassBook{

privateintbookid;//id号

privateStringbookname;//书名

privateStringbookauthor;//作者

privatedoublebookprice;//价格

privateStringbookcencern;//出版社

privateStringbookdate;//出版日期

publicintgetBookid(){

returnbookid;

}

publicvoidsetBookid(intbookid){

this.bookid=bookid;

}

publicStringgetBookname(){

returnbookname;

}

publicvoidsetBookname(Stringbookname){

thi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1