




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章 Web应用开发简介 习题答案第1章 Web应用开发简介习题答案1Web在组成上包括_和_两部分。答案:服务器客户端2谈谈对面向对象的认识。答案:面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。3介绍几种常用的框架技术。答案:Java中常用的框架。1StrutsStruts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。2WebWorkWebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。3Struts 2Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。4SpringSpring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众多的企业级应用技术。5HibernateHibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。6Ibatis相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。7EasyJWebEasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。4IDE的用途是什么?答案:IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。5Web应用服务器的用途是什么?Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。第2章 Java EE运行及开发环境习题答案1配置JDK环境变量时,需要编辑_变量,需要新增_变量和_变量。答案:PathJava_Homeclasspath2Tomcat的启动和停止程序位于其安装路径的_文件夹中。答案:bin3Tomcat中_文件用于配置服务器端口连接等信息。答案:server.xml4在MyEclipse中,打开MyEclipse-_-Tomcat结点,选择Tomcat6.0结点,进入Tomcat6.0配置界面。答案:Servers5以下三个选项,_用于工程的发布。312答案: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)举一个声明的例子。第4章 SQL与JDBC习题答案1简述SQL的组成部分。答案:SQL语言由以下3部分组成,分别是:l 数据库模式定义语言(DDL):CREATE、DROP、ALTER等语句。l 数据操纵语言(DML):INSERT、UPDATE、DELETE、SELECT语句。l 数据控制语言: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()方法关闭数据库连接,并抛出异常。3Statement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?答案:Statement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。该接口还可以通过executeQuery()方法查询的SQL语句。4PreparedStatement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?答案:PreparedStatement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的SQL语句,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。该接口还可以通过executeQuery()方法查询的SQL语句。5CallableStatement对象可以处理哪些类型的SQL语句,处理这些SQL语句的主要方法是什么?答案:CallableStatement接口的executeUpdate(String sql)方法将执行添加(insert)、修改(update)和删除(delete)的数据库的存储过程,执行成功后,将返回一个int型数值,该数值为影响数据库记录的行数。该接口还可以通过executeQuery()方法查询的数据库存储过程。6在SQL Server数据库系统中,创建一个数据库,并且在该数据库下创建学生信息表,含有学生的基本信息,并通过JDBC实现对该数据表内容实现添加、修改、删除和查询的操作。答案:JDBC的代码如下:import java.sql.*;public class JDBConnection private final String dbDrive=com.mysql.jdbc.Driver;private final String url = jdbc:mysql:/localhost:3306/db_text?characterEncoding=gb2312;private final String userName = sa;private final String password = ;private Connection con = null;public JDBConnection() /通过构造方法加载数据库驱动 try Class.forName(dbDrive).newInstance(); catch (Exception ex) System.out.println(数据库加载失败); public boolean creatConnection() /创建数据库连接 try con = DriverManager.getConnection(url, userName, password); con.setAutoCommit(true); catch (SQLException e) return true; public boolean executeUpdate(String sql) /对数据表的增加、修改和删除的操作 if (con = null) creatConnection(); try Statement stmt = con.createStatement(); int iCount = stmt.executeUpdate(sql); System.out.println(操作成功,所影响的记录数为 + String.valueOf(iCount); return true; catch (SQLException e) return false; public ResultSet executeQuery(String sql) /对数据库的查询操作 ResultSet rs; try if (con = null) creatConnection(); Statement stmt = con.createStatement(); rs = stmt.executeQuery(sql); return null; catch (Exception e) return null; return rs; public void closeConnection()/关闭数据库连接 if(con=null) try con.close(); catch (SQLException e) 将MYSQL数据库驱动的类包加载在工程中后,读者可以通过上代码,调用相应的方法,实现对学生信息表进行各种操作。第5章 Struts 2框架入门习题答案1简单介绍MVC设计模式。答案:MVC英文为Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成3个层:模型层、视图层和控制层,从而可以使同一个应用程序使用不同的表现形式。2简单介绍Struts 2的工作流程。答案:Struts 2框架的基本工作流程如下图所示:Struts 2工作流程图对Struts 2工作流程的详细说明如下:(1)客户端初始化一个指向Web容器(例如Tomcat)的请求。(2)请求经过一系列的过滤器(Filter)的过滤并传递给FilterDispatcher。(3)FilterDispatcher接收到请求信息后,会根据URL在ActionMapper中搜索指定Action的映射信息。(4)如果找到符合的映射信息,ActionProxy通过Configuration Manager在配置文件“struts.xml”中搜索被请求的Action类。(5)ActionProxy创建一个被请求Action的实例,该实例将用来处理请求信息。(6)如果在“struts.xml”文件中存在与被请求Action相关的拦截器配置,那么该Action的实例被调用的前后,这些拦截器也会先被执行。(7)Action对请求处理完毕以后返回一个逻辑视图,由此逻辑视图寻找对应的物理视图(可以是JSP、Velocity模板、FreeMarker模板等),并返回给客户端。3在创建Action类时,需要注意哪些方面?答案:在Struts 2中,Action可以以多种形式存在:普通的Java类、实现Action接口和继承ActionSupport类。在Action类中通常包含以下内容:l 无参数的execute()方法:用于处理用户请求。l 私有属性及其属性的set、get方法:Action类中封装HTTP请求参数,因此私有属性的名称应和HTTP请求参数的名称保持一致;程序通过属性的set、get方法来处理请求参数,所以必须提供属性的set、get方法。4使用不同的结果类型时,需要如何配置?答案:在Struts 2应用程序中,所有的Action类在处理完成之后返回的都是一个字符串类型的结果,这个结果作为一个逻辑视图而存在。Struts 2框架正是通过这个字符串,在“struts.xml”配置文件中将逻辑视图与物理视图建立起映射关系,而这一实现是由元素来声明的。元素的type属性用于指定结果的类型,而且默认情况下为JSP文件。当需要使用不同的结果类型时,将type属性的值设置为相应的结果类型即可。 5“struts.xml”文件中元素都有哪些属性?作用是什么?答案:元素用来配置Action,它包含的属性如下表所示:属性名称是否必须功能描述name是请求的Action名称class否Action处理类对应具体路径method否指定Action中的方法名converter否指定Action使用的类型转换器第6章 Struts 2进阶习题答案1 如何部署和添加拦截器?答案:使用元素的子元素引入指定的拦截器,在引入时需指定该拦截器的名称及其实现类。下面是部署拦截器的示例代码: 使用元素的子元素加入所需拦截器。下面是添加拦截器的示例代码:/success.jsp2 继承类_或类_可实现自定义类型转换器。答案:DefaultTypeConverterStrutsTypeConverter3 在使用元素时,通过_元素来引入要使用的校验器。答案:4 在Struts 2应用中如何实现国际化?答案:实现国际化的步骤:(1)创建国际化资源文件,例如sunyang_zh_CN.properties、sunyang_en_US.properties。(2)在资源文件中添加需要国际化的内容,例如hello=你好hello=hello(3)配置国际化资源文件,可将资源文件配置为全局范围、包范围或Action范围。(4)调用国际化资源文件,在应用中使用不同的方式来获得国际化资源信息。5 在Struts 2应用中如何实现文件上传?答案:实现文件上传的步骤:(1)如果需要,在perties文件中重新配置上传解析器。(2)在Action类中封装与上传文件相关的属性,例如:public class UploadAction extends ActionSupport private String title;/ 上传文件标题private File pic;/ 上传文件private String picContentType;/ 上传文件类型private String picFileName;/ 上传文件名private String savePath;/ 上传文件保存路径public void setSavePath(String savePath) this.savePath = savePath;/ 返回文件上传路径private String getSavePath() HttpServletRequest request = ServletActionContext.getRequest();return request.getRealPath(savePath);/省略其他属性的set、get方法public String execute() throws Exception setSavePath();/ 将上传文件存储路径设为空FileOutputStream fos = new FileOutputStream(getSavePath() + + getPicFileName();/ 以上传文件存放路径和原文件名建立一个输出流FileInputStream fis = new FileInputStream(getPic();/ 以上传文件建立一个输入流byte buffer = new byte1024;int len = 0;while (len = fis.read(buffer) 0) fos.write(buffer, 0, len);/ 将上传文件写入到输出流所对应的文件中return SUCCESS;(3)将用于实现文件上传的Action类进行相关的配置,配置方式和普通的Action类相同。第7章 Struts 2中应用模板语言习题答案1Velocity中属性引用的赋值方式都有哪些?。答案:Velocity中属性引用的赋值方式有两种:l 使用Hashtable对象赋值。l 使用方法赋值。2简述几种Velocity的指令及其用法。答案:下面是几种常见的Velocity指令:l set指令:给引用赋值。l 使if/elseif/else指令:类似于Java语言中的ifelseifelse指令,可进行条件控制。l set指令:给引用赋值。l foreach指令:进行遍历循环。l macro指令:用来定义宏。3简述FreeMarker的宏指令及其用法?答案:在FreeMarker中,宏是一个用户自定义指令,定义完宏后就可以在模板中用来使用宏。宏是使用macro指令来定义的。例如使用下面的代码定义宏:书的名字:$bookname使用下面的代码在模板中使用宏:书的名字:$bookname4在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的代码如下:public class Book private int bookid; /id号private String bookname; /书名private String bookauthor; /作者private double bookprice; /价格private String bookcencern; /出版社private String bookdate; /出版日期public int getBookid() return bookid;public void setBookid(int bookid) this.bookid = bookid;public String getBookname() return bookname;public void setBookname(String bookname) this.bookname = bookname;public String getBookauthor() return bookauthor;public void setBookauthor(String bookauthor) this.bookauthor = bookauthor;public double getBookprice() return bookprice;public void setBookprice(double bookprice) this.bookprice = bookprice;public String getBookcencern() return bookcencern;public void setBookcencern(String bookcencern) this.bookcencern = bookcencern;public String getBookdate() return bookdate;public void setBookdate(String bookdate) this.bookdate = bookdate;(4)在工程的sunyang包下创建一个类BookVelocity.java,该类用来给模板提供值。类BookVelocity的代码如下:import java.io.StringWriter;import org.apache.velocity.VelocityContext;import org.apache.velocity.app.Velocity;public class BookVelocitypublic static void main(String args) try Velocity.init();/初始化Velocity引擎 catch (Exception e) e.printStackTrace();VelocityContext context = new VelocityContext();/ 初始化Velocity上下文Book book=new Book();/给Book属性赋值 book.setBookid(200803);book.setBookname(JSP教程);book.setBookauthor(sunyang);book.setBookprice(53.2);book.setBookcencern(XX出版社);book.setBookdate(2008-02-03);context.put(book, book);/将Book对象放入Velocity上下文中StringWriter writer = new StringWriter();try /把模板和上下文结合起来Velocity.mergeTemplate(showBookInfo.vm, GBk, context, writer); catch (Exception e) e.printStackTrace();System.out.println(writer.toString();/控制台上输出(4)运行程序,控制台上的输出结果如下图所示:6使用FreeMarker编写一个用户登录实例。实例内容:当用户在登录页面中没有输入任何信息就登录时,提示用户需要输入用户名和密码方可登录,若用户输入错误的用户名或密码,提示用户输入的用户名或密码错误,若用户输入正确的用户名和密码,登录成功,页面跳转到欢迎用户登录页面。(1)创建一个Web工程,名称为login,导入工程所需的jar文件,(2)在WebRoot下新建一个文件夹freemarker,在freemarker创建模板文件login.ftl、welcome.ftl和error.ftl,其中login.ftl为用户登录页面,welcome.ftl为欢迎页面,error.ftl为登录失败页面。login.ftl的代码如下: 登录页面用户登录用户名密码welcome.ftl的代码如下: 欢迎页面欢迎你:$usernameerror.ftl的代码如下: 失败页面$message(3)在工程的sunyang包下创建一个Servlet类LoginFreeMarker.java,该Servlet类用来进行用户登录判断,若用户登录成功,页面则转向欢迎页面,否则转向登录失败页面,类 LoginFreeMarker的代码如下:import java.io.IOException;import java.io.Writer;import java.util.HashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import freemarker.template.Configuration;import freemarker.template.Template;import freemarker.template.TemplateException;public class LoginFreeMarker extends HttpServlet private Configuration configuration;/初始化FreeMarker配置 public void init() configuration = new Configuration();/ 创建Configuration实例configuration.setServletContextForTemplateLoading(getServletContext(),freemarker);/ 指定模板的位置在freemarker目录下protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException doPost(req, resp);protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException Map data = new HashMap();/ 建立数据模型String username=req.getParameter(username);String password=req.getParameter(password);Template t=null;if(username.equals(sunyang)&password.equals(123456)data.put(username, username);/将用户信息放入数据模型中 t = configuration.getTemplate(welcome.ftl);/ 加载模板文件else/将提示信息放入数据模型中data.put(message, 输入的用户名或密码错误); t = configuration.getTemplate(error.ftl);/ 加载模板文件/在页面里使用模板的charset,/使用text/html MIME-typeresp.setContentType(text/html; charset= + t.getEncoding();Writer out = resp.getWriter();try cess(data, out);/将数据传向模板,处理并输出数据 catch (TemplateException e) e.printStackTrace();(4)在web.xml中配置LoginFreeMarker,配置的代码如下:LoginFreeMarkersunyang.LoginFreeMarkerLoginFreeMarker/freemarker/login(5)发布并运行程序,登录页面的界面如下图所示:如果用户输入错误的用户名和密码,单击【登录】按钮则显示如下图所示的界面:如果用户输入的用户名和密码正确,则显示如下图所示的界面:第8章 初识Hibernate框架习题答案1什么是ORM?答案:ORM就是对象关系映射。其中的“O”代表的就是对象(object),“R”代表的是关系“relation”,M代表的是映射“mapping”。其原理就是将对象与表、对象的属性与表的字段分别建立映射关系。2Hibernate有那些配置文件?这些配置文件都使用什么语法配置?答案:HIbernate有两个配置文件。一个配置文件是hibernate.cfg.xml,使用XML语法来配置数据库连接等信息,或者perties,使用名称=值的形式配置。HIbernate的另一个配置文件是映射文件,用来经数据表中的字段信息映射项目中创建的持久化的属性信息。这样才能使用HIbernate的ORM机制,操作持久化类对象属性的同时就可以对数据中的数据进行更改。3简述在Hibernate中使用的映射关系类型。答案:映射关系类型如下表所示:数据表字段类型Java数据类型Hibernate映射类型INTint、java.lang.IntegerintegerTINYINTbyte、java.lang.BytebyteSMALLINTshort、java.lang.ShortshortBIGINTlong、java.lang.LonglongTINYINTbyte、java.lang.BytebyteBIGINTlong、java.lang.LonglongFLOATfloat、java.lang.FloatfloatDOUBLEdouble、java.lang.DoubledoubleNUMERICjava.math.BigDecimalbig_decimalCHARchar、java.lang.CharactercharacterCLOBjava.lang.StringtextVARCHARjava.lang.Stringstringjava.lang.Classclassjava.util.Localelocalejava.util.TimeZonetimezonejava.util.CurrencycurrencyBITboolean、java.lang.BooleanbooleanDATEjava.util.Date、java.sql.Datedatejava.util.Calendarcalendar_dateTIMEjava.util.Date、java.sql.TimetimeTIMESTAMPjava.util.Date、java.sql.Timestamptimestampjava.util.CalendarcalendarVARBINARY、BLOBbytebinaryjava.io.SerializableserializableCLOBjava.sql.Clobclobjava.sql.Blobblob4Hibernate中用于开始使用Hibernate的入口配置类是什么?入口类是Configuration,该类用来读取HIbernate的配置文件并实例化SessionFactory对象等。该类的实例化代码如下。使用属性文件配置HIbernate时:Configuration config=new Configuration();使用配置文件配置HIbernate时:Configuration config=new Configuration().configrue();5Hibernate中的关联关系都有哪些?实体之间通过关系来相互关联,关系之间有一对一(1:1)、一对多(1:n)和多对多(n:m)的关系。第9章 Hibernate查询习题答案1 Hibernate中的检索策略分为:_,_,_,_。答案:立即检索延迟检索预先检索批量检索2 请简述Hibernate中的查询方式以及它们分别在什么样的场合下使用。答案:l HQL:适用于较多的静态检索时。l QBC:适用于动态条件检索时。l 原生SQL:适用于通过SQL才可以进行检索的特殊数据库时。3 请简述Hibernate一对多关联查询时应该注意的问题。“一”的一方如何配置,“多”的一方如何配置。答案:HIbernate的一对多关联时,必须正确的配置属性和数据库的主外键,否则HIbernate的不能进行关联查询。Hibernate中对这种一对多,多对一的处理方式为,使用,元素来实现。关系实体中的“一”的配置:首先在持久化类BookInfoVo中定义关联表的外键bookno,定义的属性使用Set类型,同时需要实例化,代码为:private Set bookno =new HashSet();同时要生成该对象的getter和setter方法。在配置文件中通过元素来配置,配置的详细代码为。标签中的name:配置的就是在持久化类中配置的Set类型的bookno;:该标签配置的是关联表的外键。:标签配置的是一对多关系中关联的多的一方的持久化类的全路径。“多”的配置:首先在持久化类BookNO中配置“一”的持久化类类型的对象,不需要实例化。代码如下,同时生成该对象的getter和sett
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度汽车典当借款合同合同解除生效时间
- 二零二五年度电信固移融合服务协议书规范范本
- 二零二五年度柑橘出口退税代理服务合同模板
- 二零二五年生态园区物业绿色服务合同
- 2025房地产营销策划与品牌推广一体化服务合同
- 二零二五年度植筋加固与检测一体化服务协议
- 2025版虚拟现实教育培训平台合作协议
- 2025版智慧城市股份公司设立股东综合服务协议书
- 2025版期货居间佣金分配合同书范本
- 2025版节能环保建筑材料代理销售合同范本
- 对2024年高考数学试题源于教材出处的分析暨对2025年复习备考的启示
- 医院污水处理运维服务投标方案(技术方案)
- 雅马哈RX-V365使用说明书
- 2023-2024学年江苏省盐城市盐都区八年级(下)期末物理试卷(含答案)
- (1000题)中级消防设施操作员模拟试题及答案
- 年度分散型控制系统(DCS)战略市场规划报告
- 预制箱梁架设监理实施细则
- JTG-QB-003-2003公路桥涵标准图钢筋混凝土盖板涵
- (高清版)JTG 6310-2022 收费公路联网收费技术标准
- 安全生产费用年度使用分析
- (正式版)HGT 6312-2024 化工园区竞争力评价导则
评论
0/150
提交评论