2013年太原大学经贸系电商专业JSP考试参考答案第一章一、Web服务器上可以通过多种方法和途径实现动态网页的发布,常用的有CGI、ASP、PHP、JSP海内论坛——二、JSP的运行原理当Web服务器收到一个扩展名为.jsp页面的请求时,触发JSP引擎。JSP引擎是负责管理并执行JSP程序的实体。如果请求URL是以.jsp扩展名为结束,Web服务器和Servlet引擎调用它。JSP引擎首先检查JSP文件是新的还是未修改过的文件,对于这两种情况会有不同的处理。对于新的JSP文件,JSP引擎把JSP文件转换成JavaSerxlet,然后使用标准的Java编译器编译Servlet,使用标准的API执行JavaServlet。对于旧文件则直接进行编译,省略了前面的翻译工作,接下来的步骤是一样的。JSP是将网页的表现形式和服务器端的代码逻辑分开。作为服务器进程的JSP页面,首先被转换成Servlet。Servlet支持HTTP协议的请求和响应。当多个用户同时请求一个JSP页面时,应用实例化线程来响应请求,这些线程有Web服务器进程来管理。JSP在执行前先被编写成字节码,然后字节码由Java虚拟机解释执行,比源码解释的效率高三、J2EE开发模式中,整个系统可分成三个主要的部分:1、视图:就是用户界面部分,在Web应用程序中也就是HTML、XML、JAP页面。2、控制器:负责网站的整个逻辑,用于管理用户与视图发生的交互。3、模型:就是应用业务逻辑部分。第二章小清新JSP运行环境设置Web服务目录:1、根目录2、已有的Web服务目录3、新建Web服务目录,指定虚拟目录。第四章一、JSP页面主要包括三种元素:JSP代码、JSP指令、JSP动作二、在声明变量和方法时,需要注意以下几点:1、声明必须以“;”结尾。2、“%!”是完整的符号,不能在“%”和“!”之间加入空格。3、声明将要在JSP程序中用到的变量和方法,必须在使用前对这些变量进行声明,不然会报错。4、可以之间使用在%@page%中被包含进来的已经声明的变量和方法,不需要对它们重新进行声明。5、一个声明仅在一个页面中有效。如果想在每个页面都用到一些声明,最好把它们写成一个单独的文件,然后用%@include%或jsp:include元素包含进来。三、JSP的变量可以分为局部变量和全局变量在程序中声明的变量,即在%...%中声明的变量是JSP的局部变量,它对于外部函数是不可见的。在%!...%中声明的变量是全局变量,这种变量在整个JSP页面内都有效,因为JSP引擎将JSP页面转译成Java文件时,将这些变量作为类的成员变量,这些变量的内存空间知道服务器关闭后才释放。四、指令标签Jsp指令标签用于指定所使用的脚本语言、Servlet扩展的类、Servlet导入的软件包等。Jsp指令标签分为3种类型:page指令、include指令、tablib指令。五、page指令用于定义Jsp文件中的全局属性。通常Jsp页面属性中含有一些重要的、影响整个页面的参数,其设置的Jsp语法如下:1、language属性用来指定JSP程序文件所使用的语言,默认值为“java”。2、extends属性用来JSP编译时需要增加的扩展类,使用这种属性需要慎重,因为使用不当会限制JSP的编译能力。3、import属性,该属性的作用是为JSP页面引入Java核心包中的类,这样就可以在JSP页面的程序片部分、变量及函数声明部分、表达式部分使用包中的类。可以为属性指定多个值,该属性的值可以是Java包中的所有类或一个具体的类。4、session属性定义页面是否参与HTTP会话,它的作用是为访问服务器的用户独立创建一个session对象。5、buffer属性设置JSP网页的缓冲区大小,默认为5KB,如果设置为none,则表示不适用缓冲,直接将服务器响应的输出写到客户端的浏览器上。6、autoFlush属性设置为buffer溢出是,是否需要强制输出,默认值为true,表示溢出时强制输出,如果其值被设置为flase,当buffer溢出时,就会导致一个意外错误发生,如果把buffer设置成none,就不能把autoflush设置为false。7、isThreadSafe属性,设置JSP文件是否能够多线程使用。默认值是true,表示用户能够同时处理多个用户的请求,如果设置为flase,一个JSP一次只能处理一个请求。8、info属性,该属性指定一个文本,在执行JSP时将会被逐字加入到JSP中,并且能够使用servlet.getServletInfo()方法取回。9、errorPage属性10、isErrorPage属性11、contentType属性六、动作标签Jsp动作标签是利用XML语法格式的标记来控制Servlet引擎的行为,利用Jsp动作标签可以完成动态插入文件、重用JavaBean组件、重定向页面等工作。Jsp中定义的具有特定功能的动作标签有:1、jsp:param为其他标签提供附加信息,2、jsp:include在页面被请求是引入一个文件,3、jsp:forward重定向跳转到另一个页面,4、jsp:useBean查找或实例化一个JavaBean,5、jsp:getProperty设置JavaBean属性6、jsp:setProperty获取JavaBean属性7、jsp:plugin在页面中加载JavaPlugin。第五章海内网一、Jsp中共有8个默认的内置对象的功能及工作原理。内置对象内容说明request客户端请求,此请求会包含来自get/post请求的参数response网页传回客户端的响应pageContext网页属性管理session与请求有关的会话application正在执行的内容cut用来传送响应的输出流configServlet的架构对象pageJsp网页本身1、Request的工作原理:request内置对象是客户与服务器之间沟通的桥梁,用户通过request对象向服务器请求服务,通过HTTP协议向服务器传送请求信息和数据。服务器端通过request的相关方法得到一个参数列表,根据其中的数据处理客户请求。request对象是HttpServletRequest的一个实例。当客户端请求一个Jsp网页时,Jsp引擎会将客户端的请求信息包装在这个request对象中,请求信息的内容包括请求的标题头(Header),信息(如浏览器的版本信息、语言和编码方式等),请求的方式(如HTTP方法:GET、POST、PUT等)、请求的参数名称、参数值和客户端的主机名称等,然后将request对象当作jspServelt方法的HttpServletRequset参数值,所以可以通过这个对象来取得有关客户端的请求信息。2、Session对象的工作原理:session对象的工作原理是当一个客户首次访问服务器上的一个Jsp页面时,Jsp引擎产一个session对象,这个session对象调用相应的方法可以存储客户在访问各个页面期间提交的各种信息。这个session对象被分配了一个Sting类型的ID号,Jsp引擎同时将这个ID号发送到客户端,存放在客户的的cookie中。这样,session对象和客户之间就建立起一个一一对应的关系,即每个客户都对应着一个session对象(该客户的会话),这些session对象互不相同,具有不同的ID号码。由于Jsp引擎为每个客户启动一个线程,也就是说为每个线程配不同的session对象。当客户再次访问连接该服务器的其他页面时,或从该服务器连接到其他服务器再回到该服务器时,Jsp引擎不再分配给客户新的session对象,而是使用完全相同的一个,直到客户关闭浏览器后,服务器端该客户的session对象才被取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户在创建一个新的session对象。session对象能和客户建立起一一对应关系依赖于客户的浏览器所支持cookie对象。session对象与cookie对象存放格式相同。都是以“ID(索引键),值”格式来存储数据。但是在session对象中存储的值可以是复杂的对象类型,而cookie对象只限存储简单的字符串值,session对象存放在服务器中,而cookie对象窜法在客户端。Jsp引擎就是将session对象的ID号发送到客户端,存放在客户的cookie中,才使session对象能和客户建立起一一对应的关系。3、pplication对象和session对象相比,含义更加广泛。在使用session对象时,各个客户独享一个session对象,而使用application对象时,客户在同一个服务器中共享一个aoolication对象,因此,application对象可以用来保存服务器中一些公共的数据。4、out对象的类型是一个继承自抽象的javax.jsp.JspWriter类。实际上out对象是一个输出流,可以向客户端输出数据。在服务器处理程序中输出内容时,先将输出内容存放在缓冲区内,直到Jsp引擎解释完程序后才将缓冲区内的数据输出到客户端上,因此,out对象还可以管理服务器上的输出缓冲区。out对象的范围是page。5、pageContext对象是javax.servlet.jsp.PageContext类的一个实例。该类提供对几种页面属性的访问,并且允许向其他应用组件转发request对象,或者使其他应用组建包含request对象。pageContext对象的作用范围是page。6、config对象是javax.servlet.ServletConfig类型的,config对象是Jsp页面通过JSPcontainer进行初始化时被传递的对象。config对象具有Web服务器所需的多种环境设定值,简单地说,config对象是提供对初始化Jsp的配置数据的访问。7、page对象用于处理当前Jsp页面实现其本身类的一个引用,也可以说是Jsp文件编译后的Servelt的对象。page对象在其所在的Jsp页面中相当于一个类中的默认对象this。page对象的有效范围是本Jsp页面的内部,即page。8、exception对象常用于出错专向的目标页面中,用其中的方法getMessage()获取页面出现的异常或错误。因此只有在Jsp页面的page指令中指定isErrorPage=“true”后,才可以在本页面使用exception对象及其方法。第六章海内群组一、利用JDBC-ODBC桥访问Access数据库的步骤1、首先为数据库建立一个ODBC数据源。2、在Windows的“控制面板”中选择“数据源ODB”图标。3、双击“数据源ODBC”图标,进入“ODBC数据源管理器”对话框。4、在“用户DSN”选项卡的“用户数据源”列表中选择“MSAccessDateBase”选项,然后单击“添加”按钮,弹出“创建新数据源”对话框。5、选择MicrosoftAccessDriver项,单击“完成”按钮,弹出“ODBCMicrosoftAccess安装”对话框。在“数据源名”文本框内输入创建的数据源名。6、单击“ODBCMicrosoftAccess安装”对话框中“数据库”组合框内的“选择”按钮,打开“选择数据库”对话框。选择前面创建的数据库,单击“确定”按钮,数据库组合框中出现了指定数据库的路径和名称。7、单击对话框中的“确定”按钮,可以看到刚才创建的数据源已经出现在此对话框中,然后单击“确定”按钮,数据源创建结束。二、以JDBC—ODBC桥方式连接数据源步骤分析?1、引入java.sql包。Java.sql包中包含了所有与数据库相关的对象和方法,并且包含了使用Java操纵关系数据库的类和接口,所以在使用JDBC的程序中必须将java.sql包引入。%@pageimport=“java.sql”%。2、加载驱动程序。在JDBC连接到ODBC数