回 帖 发 新 帖 刷新版面

主题:《JSP应用教程》习题参考答案

《JSP应用教程》习题参考答案
    出版社: 清华大学出版社, 北京交通大学出版社

B/S架构基础编程3姐妹之二:
1、《ASP精解案例教程》
2、《JSP应用教程》
3、《ASP.NET应用教程》

第一部分 Web编程基础与环境配置
第1章 JSP应用开发体系与环境配置
1-1 简述B/S和C/S架构的特点以及B/S架构有那些开发语言。
B/S架构编程语言分成浏览器端编程语言和服务器端编程语言。浏览器端包括:HTML(Hypertext Markup Language,超文本标记语言)、CSS(Cascading Style Sheets,层叠样式表单)、JavaScript语言和VBScript语言。
为了实现一些复杂的操作,比如:连接数据库,操作文件等,需要使用服务器端编程语言。目前主要是3P(ASP、JSP和PHP(Personal Home Page))技术。
2000年以前,C/S结构占据开发领域的主流,随着B/S结构的发展,C/S结构已经逐步被B/S结构取代。值得一提的是两门经典的开发语言:C++和Java,这两门语言覆盖了该领域85%以上的项目。虽然Java如日中天,但是C++在开发领域中老大的位置,始终不变

1-2 图示三层架构,并说明其特点,如何实现,每层实现什么功能?(企业笔试题)
在两层应用中,应用程序直接同数据库进行对话。三层结构在用户接口代码和数据库中间加入了一个附加的逻辑层,通常这个层叫做“商务逻辑层”,如图
 
在“商务逻辑层”,如果第一层和第二层在不同的计算机上,通常该层利用的技术是EJB(Enterprise JavaBean)技术、CORBA(Common Object Request Broker Architecture)技术和DCOM技术(Distributed Component Object Model,分布式组件对象模型)。
在Java企业应用领域中,表示逻辑层通常可以是HTML、Applet和JSP,商务逻辑层一般利用EJB来实现

1-3 Java包含哪三个版本,每个版本有什么功能,各个版本的应用领域?
SUN以J2EE为核心推出SUN-ONE(SUN Open Network Environment)战略,该战略包括三个部分:J2SE(Java 2 Standard Edition,Java 2标准版)、J2ME(Java 2 Micro Edition,Java 2微型版)和J2EE。
J2SE主要:用于创建典型的桌面与工作站应用的Java平台。从配置上来说,只要安装JDK(Java Development Kit),就建立了一个J2SE开发和运行平台。
J2ME主要用于创建嵌入式应用程序(如PDA、仪表),J2ME开发平台需要J2SE平台的支持。开发领域包括:高端的信息家电,比如:电视机顶盒,网络电视和网络可视电话等,低端的信息家电,比如手机,寻呼机和PDA等。
J2EE的任务是提供一个平台独立的、便携式、多用户、安全以及标准的企业级平台,服务器端部署用Java技术来完成。J2EE主要用于创建可扩展的企业应用,包括13种核心技术规范

1-4 名词解释:EJB  JNDI  RMI。(企业笔试题)
EJB(Enterprise Java Bean,企业级JavaBean)J2EE体系的最核心技术是EJB,提供了一个框架来开发分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用的开发
JNDI(Java Naming and Directory Interface,Java命名和目录接口)JNDI用于名字和目录服务,提供了一致的接口来存取和操作企业级的资源,如DNS(Domain Name Service)和本地文件系统等
RMI(Remote Method Invocation,远程方法调用)RMI是在远程对象上调用一些方法,使用了连续的方式在客户端和服务器端传递数据,RMI是EJB技术基础

1-5 在J2EE中,图示Web服务器、EJB容器(区分实体Bean和会话Bean)和DB服务器的信息传递结构。(企业笔试题)
 

1-6 在自己的电脑上配置一个Tomcat服务,端口号为:8888(上机完成)
参考书1.6小结

第2章 Web编程技术
2-1. 如何在网页中设置字体?有哪些字体可以使用?
处理文字时通常利用如“<FONT FACE="隶书" SIZE="5" COLOR="red"> xx</FONT>”的标记,定义字符xx的字体显示为隶书,字号是40,颜色是红色。
文字标记中,Face属性的功能是设置字体,双击“控制面板”中的“字体”,可以看到可以引用字体的名称,这些字体的名称都可以给FACE属性赋值

2-2. 如何引入一张图片?如何给图片加上边框?
利用“<IMG SRC="myimage.jpg" WIDTH="300" HEIGHT="200" BORDER="10">”格式可以插入一张图片,myimage.jpg文件必须和该HTML文件放在同一个目录下。IMG是HTML的一个标记,是IMAGE的缩写;SRC属性给出要连接的图片的路径和文件名
这里的300和200都是没有单位的,默认是象素px。使用IMG标记将myimage.jpg图片插入到HTML的文档中,WIDTH属性和HEIGHT属性分别设置该图片的宽度和高度,单位是像素。要去掉图片的黑框,只要将BORDER属性设置为0就可以了

2-3. 如何使用超级链接?如何将超级链接的下划线去掉?
使用超级链接的基本的语法是:<A HREF="Address.htm">XX</A>。XX是一个超级链接,连接到Address.htm文件;<A>是单词Anchor的缩写,中文的意思是“锚”,功能是从一个页面链接到另一个页面;属性HREF定义的是链接到哪一页
可以指定A标记以不同的方式显示。一个超级链接有几种不同的状态:未被访问链接(Link)、已访问链接(Visited)和鼠标移动过(Hover)。可以定义超级链接文字的颜色,可以定义字体的大小,一般超级链接都有下划线,可以利用“TEXT-DECORATION:NONE”将超级链接的下划线去掉

2-4. 如何定义跨行的表格?如何将表格的字体和边框的距离加大?
<TABLE>是表格的基本标记。<TR>代表表格的行,<TD>代表表格的列。定义一个三行两列的表格
利用ROWSPAN属性设置该单元格占用多行,利用COLSPAN属性设置该单元格是占用多列
Cellpadding和Cellspacing属性的使用方法。Cellpading的意思是单元格的边距,指的是字与单元格边框的距离。Cellspacing的意思是单元格间距,指的是单元格之间的距离

2-5. 框架有几种基本形式?如何使用?
设计网页时,经常用到的一种格式是框架。基本网页框架分成两种,左右框架和上下框架
<FRAMESET ROWS="20%,*">的意思是:基本框架是上下框架,上面占20%,下面占80%。<FRAME NAME="TOP" SRC="TOP.HTM" NORESIZE>的意思是:框架的名称是top,放入的HTML网页是top.htm,而且不可改变大小
2-6. 加载CSS样式的方式有哪些?如何使用?
使用CSS来格式化网页,共有三种方式:在HEAD中引用、在BODY中引用和作为文件来引用
只要在HEAD标记中加上STYLE标记就可以了,然后在其中定义各种标记的显示样式。
在BODY中实现主要是在标记中引用,只要将定义在STYLE标记中的值拿到对应的标记中就可以了,
可以将HEAD中定义的样式另存成一个文件。CSS作为一个外部文件引入的方式有两种,一种是做链接,另一种是导入。首先将STYLE标记中的内容存成一个文件
2-7. 编写E-mail注册的表单。(上机练习)
在常用的表单制作过程中,经常遇到的是按钮制作、输入元素的制作等。常见的表单控件包括文本框、文本域、密码框、多选框、单选框和下拉列表框,等等。除了文本域和下拉列表,其他只要修改TYPE属性就可以了,使用方法如程序2-11.htm所示。
案例名称:表单中常用控件
程序名称:2-11.htm

<HTML><BODY>
    <FORM ACTION="do_submit.asp" METHOD="POST">
        姓名:<INPUT TYPE="TEXT" NAME="USERNAME"><BR>
        密码:<INPUT TYPE="PASSWORD" NAME="USERPWD"><BR>
        性别:<INPUT TYPE="RADIO" NAME="SEX" CHECKED>男
             <INPUT TYPE="RADIO" NAME="SEX">女 <BR>
        血型:<INPUT TYPE="RADIO" NAME="BLOOD" CHECKED>O
             <INPUT TYPE="RADIO" NAME="BLOOD">A
             <INPUT TYPE="RADIO" NAME="BLOOD">B
             <INPUT TYPE="RADIO" NAME="BLOOD">AB <BR>
        性格:<INPUT TYPE="CHECKBOX" CHECKED>热情大方
             <INPUT TYPE="CHECKBOX">温柔体贴
             <INPUT TYPE="CHECKBOX">多情善感<BR>
        文件:<INPUT TYPE="FILE"><BR>
        简介:<TEXTAREA ROWS="8" COLS="30"></TEXTAREA><BR>
        城市:<SELECT SIZE=1>
        <OPTION>北京市</OPTION>
        <OPTION>上海市</OPTION>
        <OPTION>南京市</OPTION>
        </SELECT><BR>
        <INPUT TYPE="BUTTON" VALUE="提交">
        <INPUT TYPE="SUBMIT" VALUE="提交">
        <INPUT TYPE="RESET" VALUE="RESET">
    </FORM>
</BODY></HTML>
需要注意的是:程序中单选框分成两个组,一个是性别,另一个是血型,同一组必须用同样的名字,如果某一个默认选中,只要加上CHECKED属性就可以了。两个比较特殊的元素是下拉列表和文本域,它们使用的HTML标记是TEXTAREA和SELECT。程序显示的结果如图2-11所示。
 
图2-11 表单中常用控件

2

回复列表 (共9个回复)

沙发

-8. 编写程序统计1到50中所有偶数的和。(分别用for和while语句实现)
案例名称:while 语句
程序名称:2-34.htm

    <SCRIPT LANGUAGE="JavaScript">
        var iSum = 0;
        var i = 0;
        while( i<=100 )
        {
            iSum += i;
            i++;
        }
        document.write(iSum);
    </SCRIPT>

案例名称:for 语句
程序名称:2-33.htm

    <SCRIPT LANGUAGE="JavaScript">
        var iSum = 0;
        for(var i = 0; i <= 100; i++)
            {
               iSum += i;
            }
        document.write(iSum);
    </SCRIPT>

2-9. 编写程序实现:取系统时间,如果时间在6:00-12:00之间,输出“早上好”;如果时间在12:00-18:00,输出“下午好”;如果时间在18:00-24:00之间,输出“晚上好”;如果时间在0:00-6:00,输出“凌晨好”。
参考案例2-4 ,利用if语句对时间进行判断。

2-10. 在字符串“I am a girl, I like dancing!”的每个字符之间加上一个字符“#”,输出字符为:“I# #a#m# #a# #girl#,# #I# #like# #d#a#n#c#i#n#g#!”,并统计“#”的个数。
案例名称:使用字符串处理函数
程序名称:string.htm

<HTML><BODY>
    <SCRIPT LANGUAGE="JavaScript">
    var str = "I am a girl, I like cat"
    var iCount = 0;
    for( i = 0; i < str.length; i++)
    {
        if(str.charAt(i) == "a")
        {
            iCount++;
        }
    }
    document.write(iCount);
    </SCRIPT>
</BODY></HTML>
参考该程序,如果得到空格,就将其换成#。

第3章 Java程序设计基础
3-1 简述Java语言的核心机制。
Java语言包含三种核心机制:Java 虚拟机、垃圾收集机制和代码安全检测。
1、Java 虚拟机(Java Virtual Machine,JVM)
在一台计算机上由软件或硬件模拟的计算机。Java虚拟机读取并处理经编译过的平台无关的字节码class文件。
2、垃圾收集机制(Garbage collection)
在C/C++ 等语言中,由程序员负责回收无用内存。Java语言解除了程序员回收无用内存空间的责任。它提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。垃圾收集在Java程序运行过程中自动进行,程序员无法精确控制和干预。  
3、代码安全性检测(Code Security)
Java执行代码的时候,由JVM对运行的代码进行安全性检测,当进行一些非法操作的时候,比如修改一些系统设置的时候,JVM会发出警告。

3-2 比较基本数据类型和引用数据类型的区别。
Java 语言共有八种基本数据类型:四种整数类型(byte、short、int、long),两种浮点数类型(float、double),一种字符类型(char),一种布尔类型(boolean)。
Java语言中除8种基本数据类型以外的数据类型称为引用类型,也叫做复合数据类型。在程序中声明的引用类型变量只是为该对象起的一个名字,或者说是对该对象的引用,变量的值是对象在内存空间中的存储地址而不是对象本身,这就是称之为引用类型的原因

3-3 Java的访问修饰符有几种,各具有什么限定作用?(企业笔试题)
Java语言为对类中的属性和方法进行有效的访问控制,将他们分为四个等级:private,default,protected和public修饰符,具体规则如表3-6所示。
表3-6  Java类成员的访问控制
     可否直接访问控制等级    同一个类中    同一个包中    不同包中的子类中    任何场合
private    Yes            
default    Yes    Yes        
protected    Yes    Yes    Yes    
public    Yes    Yes    Yes    Yes

板凳

3-4 构造函数有什么作用?简述重载构造函数的好处。
构造函数也叫构造方法,是Java类中的一种特殊方法,其功能是创建其所属类型的一个新的对象。声明构造方法的语法规则如下:
< modifiers>  <class_name>([< argu_list>]) {
[< statements>]
}
从中可以看到,构造方法与普通方法在声明上的区别是,构造方法没有返回值类型、构造方法必须取和所属类相同的名字。
在定义Java类时可以根据需要定义一个或多个构造方法,通常在构造方法中进行一些初始化工作。

3-5 简述super、static和final的功能和作用。
如果子类中发生了方法重写,那么子类对象能调用父类中重写前的方法,Java语言允许在子类中使用关键字super来引用父类的方法。
在Java类中声明属性和方法时,可使用关键字static做为修饰符。static标记的变量或方法由整个类共享,如访问控制权限允许,可不必创建该类对象而直接用类名加‘.’调用。
在Java中声明类、属性和方法时,可使用关键字final来修饰。final所标记的成分具有“终态”的特征,其具体规定如下:
l    final标记的类不能被继承。
l    final标记的方法不能被子类重写。
l    final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。

3-6 集合元素:集合、散列表和枚举的特点和作用。
常用的集合元素有:向量(Vector)、枚举(Enumeration)、散列表(Hashtable)和属性(Properties)等
向量(Vector)不要求每个元素的类型相同,向量中可以混合多种数据类型。向量可以在增加元素时动态增大。
向量提供了集合内容的顺序访问,散列表可以对集合内容进行随机访问,散列表提供的主要方法及其说明为。
l    用put(Object key,Object value)加进关键字/数值对
l    用get(Object key)取得一个关键字的值
枚举也可以存放许多元素。一般用来存储其他集合的返回值。

3-7 关键字throw和throws的区别?(企业笔试题)
可以利用throw关键字自己抛出异常。
Throws一般在定义函数的时候使用,表明函数被调用的时候要抛出异常。

3-8 Java实现线程有几种方式,各有什么优点?(企业面试题)
创建线程有两种方式:使用Runnable接口和继承Thread类。使用Runnable接口的实现类来提供线程体,这是创建线程的基本方式。还可以采用直接继承Thread类、重写其中的run()方法并以之作为线程体的方式创建线程,
两种创建线程方式的有两方面的区别。
l    使用Runnable接口创建线程时可以将CPU,代码和数据分开,形成清晰的模型。线程体run()方法所在的类还可以从其他类继承一些有用的属性或方法,并有利于保持程序风格的一致性。
l    直接继承Thread类创建线程时,Thread子类无法再从其他类继承。但这种情况编写简单,run()方法的当前对象就是线程对象,可直接操纵。

第二部分 JSP程序设计基础
第4章 JSP页面元素与内置对象
4-1. 有几种方法实现页面的跳转,如何实现?
jsp:forward操作指令用于把当前的JSP页面转发到另一个页面上。基本语法为:“<jsp:forward page="test2.jsp"/>”,使用该功能时,浏览器的地址栏中地址不会发生任何变化。
对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。相应的代码格式为:“response.sendRedirect("URL地址");

3 楼


4-2 synchronized关键字有什么功能?
,一般会在函数前面加上synchronized关键字,功能是当前一个用户在执行该方法的时候,其他的用户必须等待,直到该用户完成操作

4-3. out对象有什么功能,out.print和document.write有什么区别?
out对象是javax.servlet.jsp.JspWriter类的一个子类的对象,它的作用是把信息回送到客户端的浏览器中。在out对象中,最常用的方法就是print()和println()。在使用print()或println()方法时,由于客户端是浏览器,因此向客户端输出时,可以使用HTML中的一些标记,例如:“out.println("<h1>Hello,JSP</h1>");
out.print是JSP代码, 被服务器解释执行。
Document.write是JavaScript代码,被客户端浏览器解释执行。
4-4. 如何获得获得客户端的IP地址?
利用request对象可以获得客户提交的信息,比如:JSP文件目录、客户端的地址、以及服务器的端口等、
<BR>获取客户的IP地址:
    <% String  IP=request.getRemoteAddr();
      out.println(IP);%>

4-5. application对象有什么特点?和session对象有什么联系和区别?
站点所有的用户公用一个application对象,当站点服务器开启的时候,application就被创建,直到网站关闭。
可以使用Session 对象存储用户登录网站时候的信息。当用户在页面之间跳转时,存储在Session对象中的变量不会被清除
联系是:数据都存储在服务器端,而且都可以保留一段时间。
区别是:每个用户有一个session,但是application是共有的。
4-6. 程序如何向浏览器写入Cookie集合,如何从浏览器端读取Cookie集合。
Cookie对象是由Web服务器端产生后被保存到浏览器中的信息。Cookie对象可以用来保存一些小量的信息在浏览器中。目前主流的浏览器(Internet Explorer和Netscape Navigator)都支持Cookie。
案例名称:写入Cookie
程序名称:4-25.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%
   String strName = "Zhourunfa";
   Cookie c = new Cookie("Name1", strName);
   response.addCookie(c);
%>

案例名称:读出Cookie
程序名称:4-26.jsp

<%@ page contentType="text/html;charset=GBK" %>
<HTML><BODY>
<%
    Cookie cookies[] = request.getCookies();
   for(int i=0; i<cookies.length; i++) {
       if(cookies[i].getName().equals("Name1"))
            out.print(cookies[i].getValue());
   }
%>

第5章 Servlet编程技术
5-1. 简述Servlet和JSP的关系。
JSP是以另外一种方式实现的Servlet,Servlet是JSP的早期版本,在JSP中,更加注重页面的表现,而在Servlet中则更注重业务逻辑的实现。
因此,当编写的页面显示效果比较复杂时,首选是JSP。或者在开发过程中,HTML代码经常发生变化,而Java代码则相对比较固定时,可以选择JSP。而我们在处理业务逻辑时,首选则是Servlet。
同时,JSP只能处理浏览器的请求,而Servlet则可以处理一个客户端的应用程序请求。因此,Servlet加强了Web服务器的功能。

5-2. 简述Servlet的生命周期。(企业笔试题)
Servlet运行机制和Applet类似,Servlet是载服务器端运行的,但是Applet是在客户端运行的。Servlet是javax.servlet包中HttpServlet类的子类,由服务器完成该子类的创建和初始化。
Servlet的生命周期主要由3个过程组成。
1、init()方法:服务器初始化Servlet。
2、service()方法:初始化完毕,Servlet对象调用该方法相应客户的请求。
3、destroy()方法:调用该方法消灭Servlet对象。
其中,init()方法只在Servlet第一次被请求加载的时候被调用一次,当有客户再请求Servlet服务时,Web服务器将启动一个新的线程,在该线程中,调用service方法相应客户的请求。

5-3. 简述HttpSession接口的功能和使用方法。(企业笔试题)
这是一个java.servelt.http包中的接口,它封装了会话的概念。定义为:“public interface HttpSession”,可以使用HttpServletRequest对象的getSession()方法来得到这种类型的对象,语法为:“HttpSession session = request.getSession();”。

5-4. 完成Servlet的编译、配置和运行。(上机完成)
参考书5.3小节。

5-5. 编写一个HTML文件,利用Servelt的doPost方法实现Form表单内容的读取。(上机完成)(企业笔试题)
案例名称:使用doGet和doPost方法
程序名称:j5_02.htm

<HTML>
    <BODY>
    <FORM ACTION="/doget" METHOD="get">
    请输入姓名:
    <INPUT TYPE="TEXT" NAME="myname"><br>
    您的兴趣:
    <SELECT NAME="love">
    <OPTION value="Sleep">Sleep</OPTION>
    <OPTION value="Dance">Dance</OPTION>
    <OPTION value="Travel">Travel</OPTION>
    </SELECT><br>
    <INPUT TYPE="SUBMIT" NAME="mysubmit"><br>
    <INPUT TYPE="RESET" VALUE="重新来过"><br>
    </FORM>
    </BODY>
</HTML>

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class j5_03 extends HttpServlet
{
    //重写doPost方法
    public void doPost(HttpServletRequest req, HttpServletResponse res)
           throws ServletException, IOException
    {
        //首先设置头信息
        res.setContentType("text/html");
        //用 writer方法返回响应数据
        PrintWriter out = res.getWriter();
        out.println("<html><head></head><body>");
        out.println("name: " + req.getParameter("myname"));
        out.println("<br>");
        out.println("love: " + req.getParameter("love"));
        out.println("</body></html>");
        out.close();
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException,IOException{
        doPost(req,res);
    }
}

5-6. 图示运行Servlet的目录结构。(企业笔试题)
 

4 楼


第6章 JavaBean组件程序设计

6-1 什么是组件?使用组件有什么优点?
现在软件开发都已经转向了基于组件的开发,目前具备代表性的组件技术有微软的COM、COM+,有Sun的JavaBean和EJB(Enterprise Java Bean),另外还有CORBA(Common Object Request Broker Architecture,公共对象请求代理结构)
JavaBean规范将“软件组件”的概念引入到Java编程的领域。组件是自包含的、可重用的软件单元;而JavaBean组件,则可以使用可视的应用程序开发工具,可视地将它们编写到Java程序中。JavaBean规范为Java开发人员提供了一种“组件化”其Java类的方法

6-2 编写JavaBean的时候,要注意哪些?
1、如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,在类中使用两个方法:
getXxx(),用来获取属性xxx。
setXxx(),用来修改属性xxx。
2、对于boolean类型的成员变量,允许使用is代替get和set。
3、类中方法的访问属性必须是public的。
4、类中如果有构造方法,那么这个构造方法也是public的,并且是无参数的。

6-3 使用Email组件发送Email。(上机完成)
参考书6.4小节

6-4 使用上传组件编写照片上传程序。(上机完成)
参考书6.4.3小节

6-5 编写标记库显示系统时间。(上机完成,提示:修改案例6-3实现)
参考6-3,主要掌握配置。

6-6 简述常用的面向对象设计模式。(企业笔试题)
在面向对象软件开发领域中,设计模式包括一些规则来完成一定任务。设计模式针对一些特定的问题,提出一种解决方案。常用的面向对象设计模式有4种:Factory模式、Singleton模式、Fa&ccedil;ade模式和MVC架构模式。

6-7 简述JSP的设计模式。(企业笔试题)
JSP设计模式包括两个:(1)Model1,JSP+JavaBean设计模式。(2)Model2,MVC设计模式。
在这种模式中,JSP页面独自响应请求并将处理结果返回客户,所有的数据库操作通过JavaBean来实现。大量地使用这种模式,常会导致在JSP页面中嵌入大量的Java代码,当需要处理的商业逻辑非常复杂时,这种情况就会变得很糟糕。大量的Java代码使得JSP页面变得非常臃肿。前端的页面设计人员稍有不慎,就有可能破坏关系到商业逻辑的代码。
 “MVC”模式即是:“Model-View-Controller”模式。在这种模式中,通过JSP技术来表现页面,通过Servlet技术来完成大量的事务处理工作,实现用户的商业逻辑。
在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。JSP页面处于表现层,也就是视图(View即“V”)的角色。JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色。

6-8 画出MVC模式中各部分的依赖关系以及实现方法(企业笔试题)
 


6-9 图示基于Struts的MVC模型目录结构。(企业笔试题)
 

第三部分 JSP数据库程序设计
第7章 JDBC数据访问接口
7-1 图示ODBC的工作原理。
 

7-2 图示JDBC的工作原理,并列举常用的对象。(企业笔试题)
 
建立是建立与数据库之间的连接,也就是创建一个Connection的实例。DriverManager类的getConnection()方法将建立数据库的连接:
Statement对象用于将SQL语句发送到数据库中。存在3种Statement对象:(1)Statement;(2)PreparedStatement(从Statement继承而来);(3)CallableStatement(从PreparedStatement继承而来)。
ResultSet包含符合SQL语句执行结果所有行,并且它通过一套get方法提供了对这些行中数据的访问

7-3 如图7-16,要求:查找 “张三”选择所有课程的名称,写出SQL语句。(企业笔试题)
 


SELECT c.cname FROM sc a, student b, course c
WHERE a.cno=c.cno 
AND a.sno=b.sno and b.sname ='张三'

7-4 下面的代码段是否正确?请说明。(企业笔试题)
    pst = conn.prepareStatement("INSERT INTO grade(学号) VALUES (?)");
    for (int i = 101; i < 111; i++) {
        pst.setInt(1, i);
        pst.addBatch();
}
pst.execute ();
}

错,pst.executeBatch();

7-5 简述事务的基本概念,如何在JDBC中实现事务?
事务是一些事件的集合,执行一条SQL语句可以理解成一个事件。事务中包含多个事件,如果每一个事件都能执行成功的时候,事务才执行,如果有任何一个事件不能成功执行,事务的其他事件也不被执行
boolean defaultCommit = conn.getAutoCommit();
conn.setAutoCommit(false);
try {
    stmt.executeUpdate(strSQL1);
    stmt.executeUpdate(strSQL2);
    conn.commit();
}
catch (Exception e) {
    conn.rollback();
    e.printStackTrace();
}
finally {
    if (stmt != null) {
        stmt.close();
    }
    if (conn != null) {
        conn.close();
    }
}
conn.setAutoCommit(defaultCommit);

7-6 结果集类型和结果集并发性各有几种情况,有什么作用。
决定这个Statement对象创建的ResultSet对象是否可以滚动,还可以指定结果集是否对数据库中的修改敏感。使用ResultSet类中的int常量来表示结果集类型,结果集类型有3种:
l    ResultSet.TYPE_FORWORD_ONLY:指定ResultSet对象是不可滚动,这是默认值。
l    ResultSet.TYPE_SCOLL_INSENSITIVE:指定ResultSet对象是可滚动的,但是对数据库中修改不敏感。
l    ResultSet.TYPE_SCOLL_SENSITIVE:指定ResultSet对象是可滚动的,而且对数据库的修改敏感。
结果集的并发性(Concurrency)决定ResultSet对象是否可以修改数据库中的行。可以使用ResultSet类中定义的int常量来指定结果集的并发性。
l    ResultSet.CONCUR_READ_ONLY,指定ResultSet对象不能修改数据库,默认值。
l    ResultSet.CONCUR_UPDATABLE,指定ResultSet对象可以修改数据库。


第8章 JSP操作Oracle数据库
8-1. Oracle与Access的联系和区别?
都是关系型数据库,Access是小型的桌面数据库,为桌面办公提供支持。Oracle是大型的数据库服务器,为企业提供数据服务。

8-2. 如何在SQL*Plus中建立表空间、用户以及表?
一般在建立系统应用之前,需要创建一个表空间,然后再为该表空间创建一个用户,以后所有的操作都利用该用户在这个表空间进行操作。创建的语法如程序8-01.sql所示。
案例名称:创建表空间和用户
程序名称:8-01.sql

spool C:\DBCreateInfo.log;
-- 创建表空间
CREATE TABLESPACE SRM30
DATAFILE 'SRM.dat' SIZE 5M 
AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
-- 创建用户
CREATE USER SRMUser
  IDENTIFIED BY SRMUser
DEFAULT  TABLESPACE SRM30;
ALTER USER SRMUser DEFAULT ROLE ALL;
GRANT CONNECT TO SRMUser;
GRANT RESOURCE TO SRMUser;
spool out;

8-3. 六大约束包括哪些?如何使用?外键约束的功能是什么?
建表过程中的完整性规范包括六大基本约束:默认约束、非空约束、唯一性约束、Check约束、主键约束和外键约束
首先说明引入外键约束的必要性。比如学员档案管理系统中需要两个表,一个是学生的基本信息表,存储的学生的基本信息,如:学号、年龄、性别和家庭住址等等。另一个是学生学习历史表,存储学生每个学年或者学期的成绩等等。学生的基本信息是基本固定的,学生每学习完一年就升学了到高年级学习,这样历史表就会存储多条某学员的记录。
有这样一种约束关系就是:历史表中的学员一定要在基本信息表中查到(实际情况也是如此),这种约束关系是两个表之间的约束关系,称之为:外键约束。将两表建出来,在建表的时候同时建立外键关系,
8-4. 比较操作SQL Server数据库的四大基本格式和操作Access的四大基本格式的异同。
基本格式相同,不同的地方是:加载驱动不一样和连接串不一样。

8-5. 存储过程有什么作用?如何建立和调用存储过程?
命名块和匿名块不会保存到服务器上,如果SQL*Plus关闭,就会丢失。存储过程是保存在服务器上
案例名称:定义存储过程
程序名称:8-29.SQL

set serveroutput on
create or replace 
procedure Hello is
    begin
      dbms_output.put_line('Hello World');
    end;
/
--调用一个存储过程
call Hello();

8-6. 如何利用JDBC调用带参数的存储过程?程序如何与存储过程传递参数?
案例名称:利用程序调用存储过程
程序名称:8-32.jsp

8-7. 完善程序8-25
添加功能:(1)将姓名字段加上超级链接;(2)修改某人的信息;(3)删除某人的信息;(4)实现模糊查询,所谓的模糊查询就是输入某人姓名的某个字可以将其查找出来,用Like子句实现。(上机练习)

5 楼

第9章 JSP操作XML文件
9-1. 简述XML和HTML的区别与联系。
XML即可扩展的标记语言,可以定义语义标记,是元标记语言。XML不像超文本标记语言HTML,HTML只能使用规定的标记,对于XML,用户可以定义自己需要的标记。
XML(eXtensible Markup Language)和HTML(Hyper Text Markup Language)师出同门,都是从SGML(Standard Generalized Markup Language)延伸而出的标记语言

9-2. XML文档由哪些部分组成?各有什么作用? 如何在XML文件中输出大于号?
XML声明是以“<?xml”开始的,程序9-04.xml的声明为:
<?xml version="1.0"  encoding="gb2312" standalone="yes"?>
XML声明的作用是告诉浏览器将要处理的文档是XML文件。一个XML文档最好是以一个XML声明作为开始。之所以说“最好”是因为XML声明在XML文档中是可选内容,可加可不加,但XML标准强烈推荐加入这一行声明。XML声明中可以包含version,encoding和standalone三个属性。
1. version属性
在XML声明中必须包含version属性,指明以下文档遵循哪个版本的XML规范。该属性必须排在XML声明中其他属性之前。由于当前的XML最新版本为1.0,所以在XML声明中出现的版本说明无一例外地都是version="1.0"。
2. encoding属性
该属性指示文档中字符使用的编码标准。如果文档中使用其他编码规则,则必须使用encoding属性指明。在XML规范中列出了很多编码类型,一般情况下很多编码用不到,只要知道下面几个常见的编码就可以了。
(1)GB2312或者GBK:简体中文编码。
(2)BIG5:繁体中文编码。
(3)UTF-8:压缩的Unicode编码。
如果XML文档使用中文标记或出现中文内容,就应该在XML声明中使用encoding="gb2312"属性。
3. standalone属性
该属性表明该XML文档是否和一个外部文档配套使用。如果把这个属性值设为“yes”。如“<?xml version="1.0"  encoding="gb2312" standalone="yes"?>”,说明这是一个独立的XML文档,与外部文件无关联。
使用&lt;周润发&gt;输出大于号。

9-3. XML文件如何调用CSS样式文件?如何调用XSL样式文件?如何使用XML数据岛技术?
<?xml-stylesheet type="text/css" href="9-06.css"?>

<?xml-stylesheet type="text/xsl" href="9-09.xsl"?>

<xml id="xmlid" src="9-11.xml">

9-4. 简述常用的三种中文字符集。
包括中文简体和繁体,常用的字符集有三种:GB2312、GBK和Big5。
GB2312字符集
GB码共收录了6763个简体汉字、682个符号。其中,汉字部分:一级字3755个,以拼音排序;二级字3008个,以偏旁排序。该标准的制定和应用为规范、推动中文信息化进程起了很大作用。
GBK字符集
GBK编码是中国大陆制订的、等同于UCS的新的中文编码扩展国家标准。GBK工作小组于1995年12月完成的GBK规范。该编码标准兼容GB2312,共收录了汉字21003个、符号883个,并提供了1894个造字码位,简、繁体字融于一库。
BIG5字符集
BIG5编码是由台湾制定的、目前在台湾、香港地区普遍使用的一种繁体汉字的编码标准,包括符号440个,一级汉字5401个、二级汉字7652个,共计13060个汉字。

9-5. 名词解释:DOM   SAX   JDOM(企业笔试题)
DOM即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成了一个对象模型的集合(这个集合通常被称为DOM树),应用程序可以通过对该对象模型的操作,实现对XML文档中数据的操作。
SAX即XML简单应用程序接口。SAX提供了一种对XML文档进行顺序访问的模式,这是一种快速读写XML数据的方式。当使用SAX分析器对XML文档进行分析时,会触发一系列事件,并激活相应的事件处理函数,从而完成对XML文档的访问,所以SAX接口也被称作事件驱动接口。
JDOM的处理方式是与DOM类似的操作。是SUN公司发布的一种简单方便的XML处理接口。
9-6 名词解释:Xerces   xalan(企业笔试题)
其中最常用的DOM和SAX的解析器是xalan.jar和xerces.jar,JDOM解析器只能使用jdom.jar,但是jdom在执行的时候,需要xerces.jar包。在实际使用的时候,将xerces.jar和jdom包都拷贝到Web服务器目录“WEB-INF/lib”下

9-7 利用三种方法读取9-01.xml文件。(上机完成)
分别利用DOM,SAX和JDOM读取。

6 楼

第四部分 软件工程实践
第10章 在线考试系统的分析与设计
10-1 名称解释:OOAD    UML   CMM(企业笔试题)
OOA(Object Oriented Analysis)就是面向对象系统分析,OOD(Object Oriented Design)就是面向对象系统设计,统称为OOAD
UML(Unified Modeling Language:统一建模语言)是目前最好的OOAD工具。
CMM(Capability Maturity Model For Software 软件生产能力成熟度模型,以下简称“CMM”),是1987年由美国卡内基梅隆大学软件工程研究所研究出的一种用于评价软件承包商能力并帮助改善软件质量的方法,其目的是帮助软件企业对软件工程过程进行管理和改进,增强开发与改进能力,从而能按时地、不超预算地开发出高质量的软件。

10-2 列举UML常用的5个图,并说明其功能。(企业笔试题)
1992年Jacobson在他的著作中提出了Use Case的概念和可视化表示方法——Use Case图。作为软件项目的开发和规划中的一个基本模型元素
系统中动态实体之间的通讯可以使用UML中的四个图来描述:序列图(顺序图)、合作图、状态图和行为图 (活动图)

10-3 CMM分成几级,并对每一级作简单的描述。(企业笔试题)
CMM标准共分五级。其中,五级为最高级,即优化级。四级称为已管理级。三级为已定义级,即过程实现标准化。二级为可重复级,在这一级,建立了管理软件项目的政策以及为贯彻执行这些政策而定的措施。一级为初始级,过程无序,进度、预算、功能、质量不可预测,企业一般不具备稳定的软件开发与维护的环境。

10-4. 在Oracle中编写SQL脚本创建如表10-2和表10-3所示的数据库表。
参考第九章,建表规范。

10-5. 将Access版本的考试系统改编成Oracle版本。(上机完成)
只要修改Connection连接串和驱动程序都可以实现。

10-6. 扩充考试系统功能。
(1)【课程设计】需求一:为考试添加用户管理功能模块,管理员可以通过管理界面对用户进行添加删除和修改。
(2)【课程设计】需求二:为考试系统添加题库管理功能,管理员可以通过管理界面对题库进行添加删除和修改。

7 楼

ding

8 楼

9 楼

好帖~!

我来回复

您尚未登录,请登录后再回复。点此登录或注册