JSP程序设计第11章习题答案
第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的相应配置,添加代码如下:
xmlns="https://www.360docs.net/doc/3010823247.html,/xml/ns/javaee" xmlns:xsi="https://www.360docs.net/doc/3010823247.html,/2001/XMLSchema-instance" xsi:schemaLocation="https://www.360docs.net/doc/3010823247.html,/xml/ns/javaee https://www.360docs.net/doc/3010823247.html,/xml/ns/javaee/web-app_2_5.xsd">
(3)在工程的com包下创建模型类LoginAction.java,该类用于处理业务逻辑请求。添加代码如下:
public class LoginAction {
private String username; //用户名
private String password; //密码
public String getUsername() {
return username;
}
public void setUsername(String username) {
https://www.360docs.net/doc/3010823247.html,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";
else
return "loginError";
}
}
(4)在工程src根目录下创建Struts2框架的核心配置文件struts.xml,并添加loginAction 的相关配置信息。struts.xml配置文件代码如下
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"https://www.360docs.net/doc/3010823247.html,/dtds/struts-2.0.dtd">
(5)在WebRoot下分别创建登录页面login.jsp,登录成功页面success.jsp以及登录失败页面error.jsp,具体实现代码如下
login.jsp页面代码如下
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
success.jsp页面代码如下
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
登录成功,欢迎您,
error.jsp页面代码如下
<%@ page language="java" contentType="text/html; charset=GBK"%>
用户名或密码错误,请重新输入!
(6)发布并运行程序,进入登录页面,如下图所示
当我们输入错误的用户名“sun”,密码“123”并点击确定按钮时,进入登录错误页面,如下图所示
当我们输入正确的用户名“sunyang ”,密码“1234”并再次点击确定按钮时,进入登录正确页面,如下图所示
Jsp程序设计复习试题
《JSP 程序设计》复习题 一、 选择题 HTML 页面中加入( D )就构成了一个 JSP 页面文件。 A 、JAVA 程序片 B 、JSP 标签 C 、用“<%”、“%>”标记符号括起来的程序 2. 配置 JSP 运行环境,若 WEB 应用服务器选用 TOMCAT ,以下说法正确的是: ( A 、先安装 TOMCAT ,再安装 JDK ,再安装 TOMCAT B 、不需安装 JDK ,安装 TOMCAT 就可以了 C 、JDK 和 TOMCAT 只要都安装就可以了,安装顺序没关系 B ) 3. 对于“<%!”、“%>”之间声明的变量,以下说法正确的是:( B ) A 、不是 JSP 页面的成员变量 、多个用户同时访问该页面时,任何一个用户对这些变量的操作,都会影响到其他用 C 、多个用户同时访问该页面时,每个用户对这些变量的操作都是互相独立的,不会互 相影响 D 、是 JSP 页面的局部变量 4. 在客户端浏览器的源代码中可以看到( B A 、JSP 注释 C 、JSP 注释和 HTML 注释 D 、JAVA 注释 5. page 指令的作用是:( A ) JSP 页面的一些属性和这些属性的值 A 、用来在 JSP 页面内某处嵌入一个文件 B 、使该 JSP 页面动态包含一个文件 C 、指示 JSP 页面加载 Java plugin 6. page 指令的 import 属性的作用是( C A 、定义 JSP 页面响应的 MIME 类型 B 、 D 、定义 JSP 页面字符的编码 ) 7. ( C )可在 JSP 页面出现该指令的位置处,静态插入一个文件。 A 、page 指令标签 B 、page 指令的 import 属性 指令标签 D 、include 动作标签 8. 以下对象中的( D )不是 JSP 的内置对象。 A 、request B 、session C 、application
jsp-servlet题库(附答案)
1.B 编写一个Filter,需要() A. 继承Filter 类 B. 实现Filter 接口 C. 继承HttpFilter 类 D. 实现HttpFilter接口 2.D 自定义标签的配置文件放在________ A. WebRoot B. lib C. classes D. WEB-INF 3. ABC 有关会话跟踪技术描述正确的是( )(多选) A. Cookie是Web服务器发送给客户端的一小段信息,客户端请求时,可以读取该信息发送到服务器端。 B. 关闭浏览器意味着会话ID丢失,但所有与原会话关联的会话数据仍保留在服务器上,直至会话过期。 C. 在禁用Cookie时可以使用URL重写技术跟踪会话。 D. 隐藏表单域将字段添加到HTML表单并在客户端浏览器中显示。 4.C 在J2EE中,重定向到另一个页面,以下()语句是正确的 A. request . sendRedirect(“http :// www . svse . com . cn”); B. request . sendRedirect(); C. response . sendRedirect(“http: // www . svse . com . cn”); D. response .sendRedirect(); 5.B EL表达式,${10 mod 3},执行结果为( ) A. 10 mod 3 B. 1 C. 3 D. null 6. C 自定义标签的作用是( ) A. 编写和使用方便 B. 规定是这样的,如果不用,别人会说我们不专业 C. 可以减少jsp中的java代码,将代码与界面标签分离,简化前台开发 D. 连数据库 7.B request.getRequestDispatcher().forward(request,response)称之为( ) A. 流转 B. 转发 C. 重定向 D. 导航 8. BCD 有关Servlet的生命周期说法正确的有( ) (多选) A. Servlet的生命周期由Servlet实例控制。 B. init()方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。 C. service()方法响应客户端发出的请求。 D. destroy()方法释放Servlet实例。 9.B 在J2EE中,给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是()。(选择一项) Public class Servlet1 extends HttpServlet{ public void init() throws ServletException{ } public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.println("hello!"); } A. 编译该文件时会提示缺少doGet()或者dopost()方法,编译不能够成功通过 B. 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!
第章习题及参考答案 (1)
第1章习题及参考答案 一.单选题 1.(C )技术是基于Java Servlet以及整个java体系的Web开发技术。 A.CGI B.ASP C.JSP D.PHP 2.下面哪一个不是动态网页技术(D )。 A.https://www.360docs.net/doc/3010823247.html, B.ASP C.JSP D.HTML 3.在客户端网页脚本语言中最为通用的是( A )。 A.JavaScript B.VB C.Perl D.ASP 4.下列描述错误的是( B )。 A.DHTML是HTML基础上发展的一门语言 B.HTML主要分为两大类:服务器端动态页面和客户端动态页面 C.客户端的DHTML技术包括HTML4.0、CSS、DOM和脚本语言 D.DHTML侧重于WEB内容的动态表现 5.可以不用发布就能在本地计算机上浏览的页面编写语言是(B )。 A.ASP B.HTML C.PHP D.JSP 6.一个HTML文档必须包含3个元素,它们是html、head和(B )。 A.script B.body C.title D.link 7.下面(C )是换行符标签。 A.
B. C.D. 8.为了标识一个HTML文件,应该使用的HTML标记是( C )。 A. B.
JSP试题及答案
第一章 一.选择题 1.早期的动态网站开发技术主要使用的是()技术。该技术的基本原理是将浏览器提交至Web服务器的数据通过环境变量传递给其他外部程序,经外部程序处理后,再把处理结果传送给Web服务器,最后由Web服务器把处理结果返回浏览器。 A.JSP B.ASP C.PHP D.CGI 2.JSP页面的代码由两个部分组成,它们是()和()。 A.javascript代码 B.vbscript代码 C.HTML代码 D.JSP代码 3.JSP在服务器中进行编译时,将首先被转译成() A.JA V A语言 B.HTML代码 C.servlet D.以上都是 4.在一个JSP页面代码中一定没有的部分是() A.javascript代码 B.JSP指令 C.JSP动作 D.HTML代码 二.问答题 1.简述JSP的基本运行原理。 2.列举出JSP具有的一些特点。
参考答案 一.选择题 1. D 2. C D 3. C 4. A 二.问答题 1.答:首先由浏览器向Web服务器提出访问JSP页面的请求(Request),然后由JSP容器负责将JSP转换成Servlet,产生的Servlet经过编译后生成类文件,然后再把类文件加载到内存进行执行。最后由Web服务器将执行结果响应(Response)给客户端浏览器。 2.答:1. 一次编写,随处运行 2. 可重用组件技术 3. 标记化页面开发 4. 对大型复杂Web应用支持良好 第二章习题 三.选择题 1.下列不是JSP开发工具的是() A.JBuilder B.IBM WebSphere C.MyEclipse D.Firework 2.要建构JSP的开发环境,除了需要安装以上的JSP开发工具外,还必须安装()和() A.JDK B.Dreamweaver MX C.Flash MX D.Tomcat 3.JSP隶属Java家族,下列不属于JA V A家族的是() A.servlet B.javabean C.java D.javascript 4.web应用程序体系结构最多可分为三层,不属于这三层的是() A.表示层 B.业务层 C.数据访问层 D.网络链接层
JSP程序设计实验代码与习题解答
第1章JSP概述 习题一解答 1.答:确保Tomcat服务器使用的是Java_home环境变量设置的JDK 2.答:见1.3.2中的新建Web服务目录。 3.答:在浏览器的地址栏中键入:http://IP:端口号/Web服务目录/子目录/JSP页面。4.答:修改Tomcat服务器安装目录中conf文件夹中的主配置文件:server.xml,只要没有其他应用程序正在占用80,就可以将端口号设置为80。
第2章JSP页面与JSP标记 习题二解答 1.答:“<%!”和“%>”之间声明的变量在整个JSP页面内都有效,称为JSP页面的成员变量,成员变量的有效范围与标记符号<%!、%>所在的位置无关。所有用户共享JSP页面的成员变量,因此任何一个用户对JSP页面成员变量操作的结果,都会影响到其他用户。 “<%”和“%>”之间声明的变量称为局部变量,局部变量在JSP页面后继的所有程序片以及表达式部分内都有效。运行在不同线程中的Java程序片的局部变量互不干扰,即一个用户改变Java程序片中的局部变量的值不会影响其他用户的Java程序片中的局部变量。当一个线程将Java程序片执行完毕,运行在该线程中的Java程序片的局部变量释放所占的内存。 2. 答:两次。 3.答:不允许。允许。 4.答:第一个用户看到的sum的值是610,第二个用户看到的sum的值是1210 5. 答: <%@ page contentType="text/html;charset=GB2312" %>
<% for(char c='A';c<='Z';c++) { out.print(" "+c); } %> 6.答:include指令标记的作用是在JSP页面出现该指令的位置处,静态插入一个文件,即JSP页面和插入的文件合并成一个新的JSP页面,然后JSP引擎再将这个新的JSP页面转译成Java文件。因此,插入文件后,必须保证新合并成的JSP页面符合JSP语法规则,即能够成为一个JSP页面文件。include动作标记告诉JSP页面动态加载一个文件,不把JSP页面中动作指令include所指定的文件与原JSP页面合并一个新的JSP页面,而是告诉Java解释器,这个文件在JSP运行时(Java文件的字节码文件被加载执行)才被处理。如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是JSP文件,JSP引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。 7. 答:JSP课后习题及答案
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. JavaBean C. EJB D. JSP 1 用来换行的标签是() A.
B.
C.
D.
2. 用来建立有序列表的标签是() A.B.