JSP程序设计第11章习题答案
- 格式:pdf
- 大小:259.83 KB
- 文档页数:6
jsp程序设计教程课后习题答案JSP程序设计教程课后习题答案在学习JSP程序设计的过程中,课后习题是非常重要的一部分,通过完成习题可以巩固所学的知识,并且提升自己的编程能力。
本文将为大家提供一些常见JSP程序设计课后习题的答案,希望能够对大家的学习有所帮助。
一、基础题1. 编写一个JSP页面,实现一个简单的计算器功能,用户输入两个数字和一个操作符(+、-、*、/),页面输出计算结果。
```jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>计算器</title></head><body><form action="" method="post"><input type="text" name="num1" placeholder="请输入第一个数字"><br> <input type="text" name="num2" placeholder="请输入第二个数字"><br> <input type="text" name="operator" placeholder="请输入操作符"><br><input type="submit" value="计算"></form><%-- 获取用户输入的数字和操作符 --%><% int num1 = Integer.parseInt(request.getParameter("num1")); int num2 = Integer.parseInt(request.getParameter("num2")); String operator = request.getParameter("operator");%><%-- 根据操作符进行计算 --%><% double result = 0;if(operator.equals("+")){result = num1 + num2;} else if(operator.equals("-")){result = num1 - num2;} else if(operator.equals("*")){result = num1 * num2;} else if(operator.equals("/")){result = num1 / num2;}%><%-- 输出计算结果 --%><h1>计算结果: <%= result %> </h1></body></html>```2. 编写一个JSP页面,实现一个简单的登录功能,用户输入用户名和密码,页面判断是否登录成功。
11.1、线程的概念:Thread 每个正在系统上运行的程序都是一个进程。
每个进程包含一到多个线程。
进程也可能是整个程序或者是部分程序的动态执行。
线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。
也可以把它理解为代码运行的上下文。
所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。
通常由操作系统负责多个线程的调度和执行。
多线程的概念:多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。
线程是在同一时间需要完成多项任务的时候实现的。
多线程的优点:使用线程可以把占据长时间的程序中的任务放到后台去处理用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度·11.2、答:一个线程从创建到不再有用称为线程的生命周期。
线程的生命周期可以分为4个状态:①创建(new)状态;②可运行(runnable)状态;⑧不可运行(not runnable)状态;④消亡(dead)状态。
创建状态是指创建一个线程所对应的对象的过程。
Java系统中,这些对象都是从java. lang包内一个称为Thread的类用关键字new创建的。
刚创建的线程不能执行,必须向系统进行注册、分配必要的资源后才能进入可运行状态,这个步骤是由start操作完成的。
而处于可运行状态的线程也未必一定处于运行中,它有可能由于外部的I/O请求而处于不可运行状态。
进入消亡状态后,此线程就不再存在了。
答:一个线程创建之后,总是处于其生命周期的4个状态之一中。
线程的状态表明此线程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程进行操作来改变状态。
这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起(suspend)、恢复(resume)、等待(wait)和通知(notify)。
每一个操作都对应了一个方法,这些方法是由软件包ng提供的。
第1章:参考答案:一、填空题(1)HTTP、HTML、RSS/ATOM(2)Java Server Pages、Sun Microsystem、Java(3)path、classpath、C:\jdk\bin、.;C:\Java\jdk\lib\da.jar;C:\Java\jdk\lib\tools.jar;(4)JSP、Servlet二、选择题1-5:ABCD、ABD、D、D、D第2章:参考答案:实验指导:2.5.1.第一处需要填写的代码:page contentType="text/html;charset=GB2312" import="java.util.*;"第二处需要填写的代码:break;2.5.2.第一处需要填写的代码:int i=1;i<=n;i++第二处需要填写的代码:sum=Factorial(j);2.5.3.第一处需要填写的代码:page="jspinclude.jsp"/第二处需要填写的代码:i>0;i--习题集:一、填空题(1)include 、page(2)i++; double p=(a[0]+a[1]+a[2])/2;(3)Math.PI*2*r; double r;(4)声明了一个long型变量sum:然后调用方法continueSum,将调用方法continueSum得到的值显示到客户:1到101的连续和是:5151您计算的项数超过100项了。
(5)year%4==0 year%100==0 year%400==0二、选择题1-3:B、A、B第3章答案:3.6.1.第一处需要填写的代码:String username=request.getParameter("username");第二处需要填写的代码:"admin".equals(username)&&"admin".equals(password) 3.6.2.第一处需要填写的代码:!goodsName.equals("")第二处需要填写的代码:list.add(goodsName);3.6.3.第一处需要填写的代码:oCount==null第二处需要填写的代码:String dateTime = dateFm.format(new java.util.Date()); 第二处需要填写的代码:一、填空题(1)session、application、request、response、out。
第 1 章Web 技术简介1、7、1 选择题1、Web 技术得设想于哪一年提出()。
A 、1954 年B、1969 年C 、1989 年D、1990 年2、JSP页面在第一次运行时被JSP引擎转化为()。
A 、HTML 文件B 、CGI 文件C 、CSS 文件D、Servlet 文件3、JavaEE体系中Web层技术就是()。
A 、HTML B、JavaBeanC 、EJB D、JSP参考答案: 1 、C 2、 D 3、D1、7、2 填空题1、当前主流得三大动态Web 开发技术就是:PHP、ASP/ASP、NET 与_______________ 。
2、JSP得两种体系结构就是:________________ 与_______________ 。
3、JSP 开发Web 站点得主要方式有:直接JSP、JSP+JavaBean、_____________ 、 _____________ 与 SSH。
参考答案:1、JSP2、JSP Model1 与JSP Model23、JSP+JavaBean+Servlet、J2EE/JavaEE1、7、3 简答题1、简述JSP 得工作原理。
答:所有得JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要就是由JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎要完成以下操作:将JSP 文件翻译成Servlet 文件,Servlet 文件就是Java 应用程序。
JSP引擎调用Java编译器,编译Servlet文件得到可执行得代码文件(、class文件)。
JSP引擎调用Java虚拟机解释执行、class文件,并将运行结果返回给服务器。
服务器将运行结果以HTML 形式作为响应返回给客户端得浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译与执行这几个步骤,所以客户端得到响应所需要得时间比较长。
当该页面再次被访问时,它对应得、class 文件已经生成,不需要再次翻译与编译,JSP引擎可以直接执行、class文件,因此JSP页面得访问速度会大为提高。
第1章1.什么是静态网页?什么是动态网页?两者的区别是什么?试举例说明。
答:在设计中,纯粹HTML格式的网页通常被称为“静态网页〞,早期的一般都是由静态网页制作的。
静态网页是相对于动态网页而言,是指没有后台数据库、不含程序和不可交互的网页。
你编的是什么它显示的就是什么、不会有任何改变。
静态网页相对更新起来比拟麻烦,适用于一般更新较少的展示型。
静态网页的网址形式通常为:.example./eg/eg.htm,也就是以.htm、.html、.shtml、.xml等为后后缀的。
在HTML格式的网页上,也可以出现各种动态的效果,如.GIF格式的动画、FLASH、滚动字母等,这些“动态效果〞只是视觉上的,与下面将要介绍的动态网页是不同的概念。
我们将静态网页的特点简要归纳如下:〔1〕静态网页每个网页都有一个固定的URL,且网页URL以.htm、.html、.shtml等常见形式为后缀,而不含有“?〞;〔2〕网页容一经发布到效劳器上,无论是否有用户访问,每个静态网页的容都是保存在效劳器上的,也就是说,静态网页是实实在在保存在效劳器上的文件,每个网页都是一个独立的文件;〔3〕静态网页的容相对稳定,因此容易被搜索引擎检索;〔4〕静态网页没有数据库的支持,在制作和维护方面工作量较大,因此当信息量很大时完全依靠静态网页制作方式比拟困难;〔5〕静态网页的交互性穿插,在功能方面有较大的限制动态网页是与静态网页相对应的,也就是说,网页URL的后缀不是.htm、.html、.shtml、.xml等静态网页的常见形式,而是以.asp、.jsp、.php、.perl、.cgi等形式为后缀,并且在动态网页网址中有一个标志性的符号——“?〞,如有这样一个动态网页的地址为:.pagehome./ip/index.asp?id=1这就是一个典型的动态网页URL形式。
这里说的动态网页,与网页上的各种动画、滚动字幕等视觉上的“动态效果〞没有直接关系,动态网页也可以是纯文字容的,也可以是包含各种动画的容,这些只是网页具体容的表现形式,无论网页是否具有动态效果,采用动态技术生成的网页都称为动态网页。
第1章 Web应用开发简介习题答案1.Web在组成上包括______和______两部分。
答案:服务器客户端2.谈谈对面向对象的认识。
答案:面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。
面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。
面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。
3.介绍几种常用的框架技术。
答案:Java中常用的框架。
1.StrutsStruts是Apac he 基金会Jak arta项目组的一个开源项目,是一个基于S u n J2EE平台的MVC框架,它将Serv let和J SP标签作为实现自身功能的一部分。
2.WebWorkWebWork是由OpenSym phony组织开发的,是一个基于W e b的MV C框架。
它在运行时通过Inte rcept or(拦截器)自动应用,因此脱离了A ction类。
3.Struts 2Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与Web Work框架基础之上,继承了二者的优点,是目前非常流行的一个W e b框架。
4.SpringSpring是一个以IoC和AO P为核心的轻量级容器框架。
它提供了一系列的Jav a EE开发解决方案,包括表示层的S prin g MVC、持久层的Sp ring JDBC以及业务层事务管理等众多的企业级应用技术。
5.Hibern ateHibern ate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。
第1章Web技术简介1.6.1选择题1.A2.B3.D1.6.2填空题1.JSP2.JSP+JavaBean+Servlet、J2EE/JavaEE3.视图和控制4.编译5.JSP Model1和JSP Model21.6.3简答题1.简述JSP的优点。
答:(1)一次编写、到处运行(2)系统的多平台支持(3)内容和显示分离(4)生成可重用的组件(5)采用标签简化页面(6)健壮的存储管理和安全性2.简述JSP的工作原理。
答:所有的JSP应用程序在首次载入时都被翻译成Servlet文件,然后再运行,这个工作主要是由JSP引擎来完成。
当第一次运行一个JSP页面时,JSP引擎要完成以下操作:●将JSP文件翻译成Servlet文件,Servlet文件是Java应用程序。
●JSP引擎调用Java编译器,编译Servlet文件得到可执行的代码文件(.class文件)。
●JSP引擎调用Java虚拟机解释执行.class文件,并将运行结果返回给服务器。
●服务器将运行结果以HTML形式作为响应返回给客户端的浏览器。
由于一个JSP页面在第一次被访问时要经过翻译、编译和执行这几个步骤,所以客户端得到响应所需要的时间比较长。
当该页面再次被访问时,它对应的.class文件已经生成,不需要再次翻译和编译,JSP引擎可以直接执行.class文件,因此JSP页面的访问速度会大为提高。
3.简述JSP开发Web站点的主要方式。
答:JSP开发Web站点主要有以下几种方式。
(1)直接使用JSP(2)JSP+JavaBean(3)JSP+JavaBean+Servlet(4)J2EE/JavaEE开发模型(5)SSH开发框架4.简述JSP两种体系结构。
答:JSP规范中分别称作JSP Model1和JSP Model2,它们的本质区别在于处理批量请求的位置不同。
Model1,在Model1体系中,JSP页面独自响应请求并将处理结果返回客户。
JSP课后习题及答案1. Web技术的设想在()年提出A.1954B.1969C.1989D.19902. JSP页面在第一次运行时被JSP引擎转化为()A.HTML文件B. CGI文件C. CSS文件D.Servlet 文件3. JavaEE体系中Web层技术是()A. HTMLB. JavaBeanC. EJBD. JSP1 用来换行的标签是()A.B.C.D.2. 用来建立有序列表的标签是()A.B.C.D.3. 用来插入图片的标签是()A.D.4. css文件的扩展名为()A.docB. textC. htmlD. css1. 有关JSP中的HTML注释叙述正确的是()A.发布网页时看不到,在源文件中也看不到。
B.发布网页时看不到,在源文件中能看到。
C.发布网页时能看到,在源文件中看不到。
D.发布网页时能看到,在源文件中也能看到。
2. JSP支持的语言是()A. C语言B. C++语言C. C#语言D. Java语言3. 在同一个JSP页面中page指令的属性中可以使用多次的是()A. ImportB. sessionC. extendsD. Info4. 用于获取Bean属性的动作是()A.B.C.D.5. 用于为其他动作传送参数的动作是()B.C.D.1. Pesponse对象的setHeader(String name,String value)方法的作用是()A.添加HTTP文件头B.设定指定名字的HTTP文件头的值C.判断指定名字的HTTP文件头是否存在D.向客户端发送错误信息2. 设置session的有效时间(也叫超时时间)的方法是()A. setMaxInactiveInterval(int interval)B. getAttributeName()C. setAttributeName(String name,/doc/2f6691220.html,ng.Object value)D. getLastAccessedTime()3. Out对象中能清除缓冲区中的数据,并且把数据输出到客户端的方法是()A. out.newLine()B. out.clear()C. out.flush()D. out.clearBuffer()4. pageContext对象的findAttribute()方法作用是()A. 用来设置默认页面的范围或指定范围之中的已命名对象B. 用来删除默认页面范围或指定范围之中已命名的对象C. 按照页面请求、会话以及应用程序范围的顺序实现对某个已命名属性的搜索D. 以字符串的形式返回一个对异常的描述1. JDBC提供3个接口来实现SQL语句的发送,其中执行简单不带参数SQL 语句的是()A. Statement类B. PreparedStatement类C. CallableStatement类D. DriverStatement类2. Statement类提供3种查询执行方法,用来执行更新操作的是()A. executeQuery()B. executeUpdateC. next( )D. query( )3.负责处理驱动的调入并产生对新的数据库连接支持的接口是()A. DriverManagerB. ConnectionC. StatementD. ResultSet1.在JSP/Servlet的生命周期中,用于初始化的方法是()A.doPost()B. doGet()C. init()D. Destroy()2. Servlet文件在Java Web开发中的主要作用是()A. 开发页面B. 作为控制器C. 提供业务功能D. 实现数据库连接1.以下不是Java Bean的作用域的是()A. boundB. pageC. requestD. Application2.JavaBean分为()种A. 2B. 3C. 4D. 51.当前主流的三大动态Web开发技术是PHP、ASP//doc/2f6691220.html,和。
JSP程序设计课后习题答案第⼀章 JSP概述1-1 JSP的全称是什么?JSP有什么优点?JSP与ASP、PHP的相同点是什么?JSP的全称是Java Server Pages。
优点:跨平台、分离静态内容和动态内容、可重复使⽤的组件、沿⽤了Java Servlet的所有功能、具有预编译性。
共同点:可以在页⾯中加⼊脚本代码来⽣成动态内容。
1-2 JSP中可重复使⽤的组件有哪些?JavaBean组件、JSP的标准标签和⾃定义标签。
1-3 什么是JSP的预编译特征?预编译是JSP的另⼀个重要的特性。
JSP页⾯在被服务器执⾏前,都是已经被编译好的,并且通常只进⾏⼀次编译,即在JSP页⾯被第⼀次请求时进⾏编译,在后续的请求中如果JSP页⾯没有被修改过,服务器只需要直接调⽤这些已经被编译好的代码,这⼤⼤提⾼了访问速度。
1-4 开发JSP程序需要具备哪些开发环境?Web浏览器、Web服务器、JDK开发⼯具包以及数据库。
1-5 在成功安装JDK后,需要配置哪些环境变量?JAVA_HOME变量、Path变量、CLASSPATH变量1-6 Tomcat的默认端⼝、⽤户名和密码分别是什么?端⼝为“8080”、⽤户名为“admin”、密码为空。
1-7 本章介绍的⽤来开发JSP程序的开发⼯具是什么?Eclipse1-8 开发JSP程序可采⽤哪⼏种开发模式?分别介绍它们的优缺点。
单纯的JSP页⾯编程:优点:通过应⽤JSP中的脚本标志,可直接在JSP页⾯中实现各种功能。
缺点:⼤部分的Java代码与HTML代码混淆在⼀起,给程序的维护和调试带来很多的困难。
JSP+JavaBean编程优点:jsp与javabean的结合,使web程序更加的直观,使⽤简单,不⽤于后台进⾏交互,直接在前端处理业务逻辑,更快速。
缺点:性能不好,jsp作为web的前端程序包含了太多的业务逻辑,给前端jsp造成了压⼒。
不便于维护。
JSP+Servlet+JavaBean编程优点:能够更好的实现表⽰层,逻辑层和数据访问层的分离。
习题11 课后习题答案1.常见网络端口有哪些?答案:在计算机中操作系统内部使用1-1024保留端口号,所以设计应用程序时需选择除此之外的端口。
如:20文件传输协议(默认数据口) ,80全球信息网超文本传输协议(www)。
2.如何连接和读取URL中的资源?答案:(1)通过URLConnection连接WWW:用URL的openStream()方法从网络上读取数据,若要输出数据,用类URLConnection,与URL建立连接,然后对其进行读/写操作。
(2)用URL读取WWW数据资源:在取得一个URL对象后,通过使用URL的openStream()方法,可以获得所需的特定的WWW 资源。
3.什么是套接字?有哪几种套接字?答案:套接字Socket是网络通信的应用程序接口,可以实现客户机与服务器之间的通信。
常用的TCP/IP协议的3种套接字类型有:流套接字(SOCK_STREAM);数据包套接字(SOCK_DGRAM);原始套接字(SOCK_RAW)。
流套接字用于提供面向连接、可靠的数据传输服务。
该服务将保证数据能够实现无差错、无重复发送,并按顺序接收。
数据包套接字提供了一种无连接的服务。
该服务并不能保证数据传输的可靠性,数据有可能在传输过程中丢失或出现数据重复,且无法保证顺序地接收到数据。
原始套接字与标准套接字(标准套接字指的是前面介绍的流套接字和数据包套接字)的区别在于:原始套接字可以读写内核没有处理的IP数据包,而流套接字只能读取TCP协议的数据,数据包套接字只能读取UDP协议的数据。
因此,如果要访问其他协议发送数据必须使用原始套接字。
4.简述TCP套接字的实现过程?答案:实现TCP套接字基本步骤分为服务器端和客户端两部分。
(1)服务器端步骤创建套接字;绑定套接字;设置套接字为监听模式,进入被动接收连接请求状态;接收请求,建立连接;读/写数据;终止连接。
(2)客户端步骤创建套接字;与远程服务器程序连接;读/写数据;终止连接。
JSP程序设计习题解答习题一1.运行startup.bat启动Tomcat服务器的好处是什么?答:确保T omcat服务器使用的是Java_home环境变量设置的JDK。
2.请在C:\下建立一个名字为book的目录,并将该目录设置成一个Web服务目录,然后编写一个简单的JSP页面,保存到该目录中,让用户使用虚拟目录red访问该JSP页面。
答:属于操作题,解答略。
3.怎样访问Web服务目录子目录中的JSP页面?答:Web服务目录的下的目录称为该Web服务目录下的相对Web服务目录。
浏览器的地址栏中键入:http://IP:8080/Web目录名字/子目录名字/JSP页面。
4.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80。
答:修改T omcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。
习题二1.“<%!”和“%>”之间声明的变量与“<%”和“%>”之间声明的变量有何不同?答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。
所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。
“<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。
运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。
当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。
2.如果有两个用户访问一个JSP页面,该页面中的Java程序片将被执行几次?答:两次。
科目: JSP程序设计一、单项选择题1. Page指令用于定义JSP文件中的全局属性, 下列关于该指令用法的描述不正确的是( C )A. 可以在一个页面中使用多个<%@ page %>指令。
B. <%@ page %>作用于整个JSP页面。
C. <%@ page %>指令中的属性只能出现一次。
D. 为增强程序的可读性, 建议将<%@ page %>指令放在JSP文件的开头, 但不是必须2.对于一个继承于TagSupport标签来说, 他的dostart方法的返回值决定本体是否可见, 那么下面那一个是让本体可见的( D )A. EVAL_PAGEB. SKIP_PAGEC. SKIP_BODYD. EVAL_BODY_INCLUDE3. 关于JavaBean正确的说法是( A )A.Java文件与Bean所定义的类名可以不同, 但一定要注意区分字母的大小写B. 被引用的Bean文件的文件名后缀为.javaC. Bean文件放在任何目录下都可以被引用D.在JSP文件中引用Bean, 其实就是用<jsp:useBean>语句4. 下面的代码的执行结果描述正确的是(B )import javax.servlet.jsp.*;import javax.servlet.jsp.tagext.*;publid class MyTest extends BodyTagSupport{private int num=0;public int doAfterBody(){JspWriter out=bodyContent.getEnclosingWriter();try{out.println("good<br>");}catch(Exception e){}num++;if(num<2)return EVAL_BODY_AGAIN;else return SKIP_BODY;}}A. 输出0次goodB. 输出3次goodC. 输出2次goodD. 输出1次good5. 如果我们的提交方式是POST, 在httpservlet里没有dopost方法对应的话, 将出现下面的那种错误( D )A. 404B. 400C. 500D. 4056. 不能在不同用户之间共享数据的方法是( D )A. 利用文件系统B. 通过ServletContext对象C. 利用数据库D. 通过cookie7. 在JSP中, ( C )动作用于将请求转发给其他JSP页面。
Java Web 程序设计教程(范立锋、林果园编著)第11章 Spring框架入门习题答案1.Spring框架有哪些突出的优点?Spring框架技术之所以受到广泛的欢迎和使用,与其自身的特点有密切联系:开源:自从Spring框架问世之初,它就是一个开放源代码的框架。
而正是由于这一点,才使得它能够被更多的Java开发人员所研究、使用,并不断得以完善、发展。
轻量级:Spring无论是大小还是系统开销都算是轻量级的,整个框架可以被压缩在几M的JAR包中,应用中处理Spring的开销也微乎其微。
方便解耦:Spring提倡通过控制反转(IoC)技术实现松耦合。
通过Spring中的IoC容器管理各个对象之间的依赖关系,能够有效避免硬性编码造成的耦合过于紧密的状况。
面向切面编程(AOP):Spring对面向切面编程提供了良好的支持,通过Spring提供的AOP功能,可以轻松实现业务逻辑与系统服务(例如日志,事务等)的分离。
因此,开发人员能够更加专注于业务逻辑实现。
方便集成其它框架:Spring框架允许集成其它多种框架共同进行开发设计,例如Hibernate、Struts、Struts 2、Ibatis等。
2.Spring框架由哪7个模块组成?关于Spring架构中各个模块实现的功能说明如下:核心模块(Core):该模块是整个框架的最基本组成部分,它提供了依赖注入的功能以及对Bean容器的管理功能。
通过依赖注入,使得类与类之间不再由硬性编码方式发生关系,而是通过配置实现这一过程,降低了各个类之间耦合的紧密度。
Spring框架提供的BeanFactory接口,进一步消除了应用对工厂的依赖。
AOP模块(AOP):该模块提供了对AOP的支持,允许以面向切面的方式开发程序。
同时Spring框架提供了AspectJ的整合。
上下文模块(Context):该模块构建于核心模块之上,提供了对Bean的框架式访问。
该模块还扩展了BeanFactory功能。
Java语言程序设计(一)课后习题第十一章(附答案)十一、图形界面—窗体简介1.判断:每个applet上只能使用一种布局办理器。
()2.判断:使用BorderLayout布局办理器时,GUI组件可以按任何挨次添加到面板上。
()3.判断:在使用BorderLayout时,最多只能包含5个组件。
()4. 判断:使用BorderLayout布局办理器时,GUI组件可以按任何挨次添加到面板上。
()5. __________用于安排容器上的GUI组件。
6. GUI是_______________的缩写。
7. 当释放鼠标按键时,将产生________________事件。
8.哪个布局办理器使用的是组件的最佳尺寸( )A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout9.Frame的默认的布局办理器是下列哪一个( )A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout10.编写程序,创建下面的GUI(不必为各组件提供功能)。
参考答案1:false2:true3:true4.true5:版面办理器6. 图形用户界面7. mouseReleased8. C9. B10.import javawt.*;public class Chp9_3_A extends Frame{TextField t=new TextField();String[] op={“7”,”8”,”9”,”/”,”4”,”5”,”6”,”*”,”1”,”2”,”3”,”-”,”0”,”.”,”=“,”+”};Button[] btn=new Button[16];Panel p=new Panel();public Chp9_3_A(){setLayout(new BorderLayout());p.setLayout(new GridLayout(4,4));for(int i=0;ibtn[i]=new Button(op[i]);p.add(btn[i]);}add(t,BorderLayout.NORTH);add(p,BorderLayout.CENTER); setSize(400,300);}public static void main(String[] args){ new Chp9_3_A().setVisible(true);}}。
第11章理解MVC习题答案1.简述Web应用中表示层的两种架构模式,并比较这两种模式的优缺点。
答案:Web应用中表示层的两种架构模式分别为:Model1和Model2。
●Model1的工作原理如下:(1)客户端发出请求,该请求由JSP页面接收。
(2)Java Bean用于实现业务模型,JSP根据请求与不同Java Bean进行交互。
(3)业务逻辑操作指定Java Bean并改变其模型状态。
(4)JSP将改变后的结果信息转发给客户端。
● Model2的工作原理如下:(1)Servlet接收客户端发出的请求。
(2)Servlet根据不同的请求调用相应的Java Bean。
(3)业务逻辑操作指定Java Bean并改变其模型状态。
(4)Servlet将改变后Java Bean的业务模型传递给JSP视图。
(5)JSP将后台处理结果呈现给客户端。
这两种模式的优缺点比较如下:● Model1适合快速开发小型应用,但是控制逻辑与表示逻辑耦合紧密。
在大型应用程序开发过程中,容易造成程序的可移植性差,不易维护。
●与Model1模式相比,Model2更适合开发大型应用程序。
在Model2中实现了业务逻辑与表示逻辑的分离,相应地提高了程序的可维护性。
但是在开发一些小型应用时,使用Model2可能会增加程序的复杂程度。
2.说明MVC设计模式中,M、V、C分别代表什么,有什么作用。
答案:M代表Model(模型),该组件是对软件所处理问题逻辑的一种抽象,封装了问题的核心数据,逻辑和功能实现,独立于具体的界面显示以及I/O操作。
V代表View(视图),该组件将表示模型数据,逻辑关系以及状态信息,以某种形式展现给用户。
视图组件从模型组件获得显示信息,并且对于相同的显示信息可以通过不同的显示形式或视图展现给用户。
C代表Controller(控制器),该组件主要负责用户与软件之间的交互操作,控制模型状态变化的传播,以确保用户界面与模型状态的统一。
3.简述MVC的三种架构模式及其工作原理。
答案:MVC的三种架构模式分别为:经典MVC架构模式,前端控制器模式以及页面控制器模式。
这三种架构模式的工作原理如下●经典MVC架构模式在这种模式下,用户在视图界面输入数据并点击按钮提交,控制器负责接收视图信息并对相应模型进行操作,根据用户提供的数据更新模型状态。
模型状态发生变化后控制器通知视图,视图根据模型的变化进行更新并显示给用户。
●前端控制器模式在这种模式下,分发器负责接收客户端浏览器发出的请求,并根据请求的URL地址将信息转发给特定的控制器。
控制器改变相应模型的状态并返回一个标识,该标识与指定视图存在映射关系,通过标识找到对应视图并在客户端浏览器显示执行结果。
●页面控制器模式这种模式与前端控制器模式的工作原理基本相似,二者的区别在于,页面控制器模式下将由页面发出针对某个具体模型的请求。
4.说明Spring MVC的基本工作流程。
答案:Spring MVC的基本工作流程分为如下几个步骤:(1)客户端发出Http请求。
(2)Spring容器的DispatcherServlet接收请求,并根据请求寻找相应的控制器。
(3)DispatcherServlet找到具体的控制器以后,将客户端请求分派给该控制器,控制器调用业务层相关业务对象处理请求。
(4)控制器处理完毕后,将ModelAndView返回给DispatcherServlet,其中ModelAndView 包含了逻辑视图名称以及物理视图所需要的数据信息。
(5)DispatcherServlet根据逻辑视图名称,寻找对应的物理视图。
其中,ViewResolver 负责建立逻辑视图与物理视图的映射关系。
(6)找到具体的物理视图以后,DispatcherServlet将其分派给View对象。
(7)View以Http响应形式将最终结果返回给客户端。
5.使用Struts2框架模拟实现用户登录。
实例内容:编写登录页面,提供用户名及密码的文本输入框以及提交按钮。
当用户在登陆页面输入正确的用户名“sunyang”及密码“1234”,进入登录成功界面,否则进入登录失败界面。
答案:(1)创建一个Web工程,名称为login,并在该工程中引入commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.11.jar以及xwork-2.0.4.jar这5个运行库文件。
(2)在web.xml配置文件中添加Struts2控制器FilterDispatcher的相应配置,添加代码如下:<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5"xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>(3)在工程的com包下创建模型类LoginAction.java,该类用于处理业务逻辑请求。
添加代码如下:public class LoginAction {private String username; //用户名private String password; //密码public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String execute() {//如果用户名为sunyang,密码为1234,则登录成功,否则登录失败if(username.equals("sunyang")&&password.equals("1234"))return "loginSuccess";elsereturn "loginError";}}(4)在工程src根目录下创建Struts2框架的核心配置文件struts.xml,并添加loginAction 的相关配置信息。
struts.xml配置文件代码如下<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><package name="sunyang" extends="struts-default"><!-- 配置前端控制器模式下的Action --><action name="login" class="com.LoginAction"><!-- Action执行成功跳转到success.jsp页面--><result name="loginSuccess">/success.jsp</result><!-- Action执行失败跳转到front.jsp页面--><result name="loginError">/error.jsp</result></action></package></struts>(5)在WebRoot下分别创建登录页面login.jsp,登录成功页面success.jsp以及登录失败页面error.jsp,具体实现代码如下login.jsp页面代码如下<%@ page language="java" contentType="text/html; charset=GBK"%><%@ taglib prefix="s" uri="/struts-tags"%><html><body><s:form action="login"><s:textfield name="username" label="用户名"/><s:password name="password" label="密码"/><s:submit value="确定"/><s:reset value="重置"/></s:form></body></html>success.jsp页面代码如下<%@ page language="java" contentType="text/html; charset=GBK"%><%@ taglib prefix="s" uri="/struts-tags"%><html><body>登录成功,欢迎您,<s:property value="username"/>!</body></html>error.jsp页面代码如下<%@ page language="java" contentType="text/html; charset=GBK"%><html><body><center>用户名或密码错误,请重新输入!<a href="login.jsp">返回登录页面</a></center></body></html>(6)发布并运行程序,进入登录页面,如下图所示当我们输入错误的用户名“sun”,密码“123”并点击确定按钮时,进入登录错误页面,如下图所示当我们输入正确的用户名“sunyang ”,密码“1234”并再次点击确定按钮时,进入登录正确页面,如下图所示。