JSP标签自定义(1)---useBean
2020年智慧树知道网课《动态网页设计技术》课后习题章节测试满分答案
第一章测试1【单选题】(2分)关于CSS的描述,下列说法正确的是()。
A.只有独立的CSS文件才符合结构与表现分离的特点。
B.当CSS作为独立的文件时,必须以.html为后缀名。
C.CSS用于设置HTML页面中的文本内容、图片的外形以及版面的布局等外观显示样式。
D.目前流行的CSS版本为CSS3。
2【单选题】(2分)下列选项中,JavaScript运算符的优先级最高的是()。
A.==B.++C.()D.+3【单选题】(2分)根据运算符的优先级,表达式z=2*(1+2*3)的运算结果为()。
A.16B.18C.14D.124【单选题】(2分)下列选项中,没有对应的结束标记的是哪一项?()。
A.<title>B.<html>C.<br/>D.<body>5【单选题】(2分)下列选项中,字号最大的是哪一项?()。
A.<h1>B.<h4>C.<h2>D.<h3>第二章测试1【单选题】(2分)一个格式良好的XML文件的根元素个数是()。
A.3B.4C.2D.12【单选题】(2分)假设在helloapp应用中有一个hello.jsp,它的文件路径如下:<CATALINA_HOME>/webapps/helloapp/hello/hello.jsp在web.xml文件中没有对hello.jsp作任何配置,那么浏览器端访问hello.jsp的URL是什么?A.http://localhost:8080/hello.jspB.http://localhost:8080/helloapp.jspC.http://localhost:8080/helloD.http://localhost:8080/helloapp/hello/hello.jsp3【单选题】(2分)下面选项中,关于Tomcat存放Web应用程序需要访问的JAR包的是()。
JSP期末考试复习资料
1-2 JSP中可重复使用的组件有哪些?JavaBean/JSP标准标签/自定义标签1—3 什么是JSP的预编译特征?答:JSP页面在被服务器执行前,都是已经被编译好的,并且通常只进行一次编译,即在JSP 页面被第一次请求时进行编译,在后续的请求中如果JSP页面没有被修改过,服务器只需要直接调用这些已经被编译好的代码,这大大提高了访问速度。
1—8 开发JSP程序可采用哪几种开发模式?分别介绍他们的优缺点。
答:第一种:单纯的JSP页面编程优点是容易实现;缺点是程序结构混乱,维护不便.第二种:JSP+JavaBean编程优点是结构比较清晰;缺点是将流程控制放到JSP中,JSP不能单纯作为显示功能第三种:JSP+JavaBean+Servlet编程优点是层次关系明显、组件分工明确;缺点是对开发人员能力要求较高,不适合JSP初学者.2—2 什么是成员变量和局部变量?他们的区别是什么答:成员变量是在类体中变量定义部分所声明的变量;局部变量是在方法体重声明的变量和方法的参数两者的区别在于有效范围不同,成员变量在整个类内都有效,而局部变量只在定义他的成员方法内才有效。
2-3 如何创建、使用并销毁对象?答:创建对象的方法:类名对象名;对象名 = new 构造方法名([参数列表]);或者:类名对象名 = new 构造方法名([参数列表]);使用对象的方法:可以通过对象来引用其成员变量,并改变成员变量的值,而且还可以通过对象来调用其成员方法。
通过使用运算符“.”实现对成员变量的访问和成员方法的调用。
销毁对象的操作由Java提供的垃圾回收机制自动完成 .不需要手工完成销毁对象操作。
或者调用对象的finalize()方法。
3-1 JSP页面由哪些元素组成?〈!—— JSP中的指令标识 -->〈%@ page language=”java" contentType=”text/html;charset=gb2312”%〉<%@ page import="java。
“jsp语法知识”单元习题
“JSP语法知识”单元习题一、填空题1.在JSP规范中,可以使用两种格式的注释:一种是____________;另一种是____________。
2.JSP 的语法元素主要包括:____________、____________、____________、____________和____________。
3.指令元素分为三种,它们分别是____________、____________和____________。
4.JSP 规范中描述了3 种脚本元素:____________、____________和____________。
5.____________是指在客户端显示的注释;而____________在客户端不会输出。
6.<!—注释内容-->是____________,<%--注释内容--> 是____________。
7.可以通过选择【查看】|【源文件】显示出来的注释是____________;不能显示出来的注释是____________。
8.JSP 程序中要用到的变量或方法必须首先____________。
9.____________是一段在客户端请求时需要先被服务器执行的Java 代码,它可以产生输出,并把输出发送到客户的输出流,同时也可以是一段流控制语句。
10.在JSP 三种指令中,用来定义与页面相关属性的指令是____________;用于在JSP页面中包含另一个文件的指令是____________;用来定义一个标签库以及其自定义标签前最的指令是____________。
11.JSP 中标准的动作元素包括:____________、____________、____________、____________、____________、____________和____________。
12.____________动作元素允许在页面被请求的时候包含一些其他的资源,如一个静态的HTML 文件或动态的JSP 文件。
第24讲JSP自定义标签示例(1)精品PPT课件
EmptyTag.tld
标签处理器代码
标签处理器代码EmptyTag.java
package hnkjxy.tag;
import java.io.IOException;
import javax.servlet.jsp.JspException;
i…m…port javax.servlet.jsp.JspWriter;
<tag>
<name>WithAttrTag</name>
<tag-class>hnkjxy.tag.WithAttrTag</tag-class>
<body-content>empty</body-content>
<attribute>
<name>count</name>
<rtexprvalue>true</rtexprvalue>
JSP自定义标签示例(1)
《Java企业技术》
JSP自定义标签示例
本讲主要内容:
❖ 空标签实现示例 ❖ 带属性的标签实现示例
空标签实现示例
空标签示例
……
<%@taglib uri="/WEB-INF/EmptyTag"
prefix="Tld"%>
<html>
<head>
<title>标签示例</title>
让其自动添加
<uri>/WEB-INF/EmptyTag</uri>
<tag>
<name>EmptyTag</name>
j2ee期末练习题
J2ee 期末综合练习题一、选择题1.page 指令的(B)属性用于引用需要的包或类A. extendsB.importC. isErrorPageD. language2.下列选项中,(B )可以准确地获取请求页面的一个文本框的输入(文本框的名称为name)A.request.getParameter(name)B.request.getParameter("name")C.request.getParameterValues(name)D.request.getParameterValues("name")3.使用 response 对象进行重定向时,使用的是(C )方法。
A.getAttributeB.setContentTypeC.sendRedirectD.setAttribute4.在 Java EE 中,在 web.xml 中,有如下代码:<session-config><session-timeout>30</session-timeout></session-config>以下描述,正确的是(B )。
A.定义了默认的会话时时长,时长为 30 分钟B.可以使用HttpSession类的 getMaxInactiveInterval()方法把该值取出来C.定义了默认的会话超时时长,时长为 30 小时D.可以使用 Session类的 getMaxInactiveInterval()方法把该值取出来5.在 Http协议中用于发送大量数据的方法的是( A.A. postB. getC. putD. options6.HttpServletRequest 接口的(C .方法用于创建会话。
A. setSession()B. getContext()C. getSession()D. putSession() 7.( B)动作用于将请求发送给其他页面A. nextB. forwardC. includeD. param8.page指令的( B)属性用于引用需要的包或类A. extendsB. importC. isErrorPageD. language9.如何获取一个 Cookie[](A )。
jsp 6个常用标签
一、Include指令<jsp:include>标签表示包含一个静态的或者动态的文件。
语法:<jsp:include page="path" flush="true" />or<jsp:include page="path" flush="true"><jsp:param name="paramName" value="paramValue" /></jsp:include>注:1、page="path" 为相对路径,或者代表相对路径的表达式。
2、flush="true" 必须使用flush为true,它默认值是false。
3、<jsp:param>子句能让你传递一个或多个参数给动态文件,也可在一个页面中使用多个<jsp:param> 来传递多个参数给动态文件。
二、Forward指令<jsp:forward>标签表示重定向一个静态html/jsp的文件,或者是一个程序段。
语法:<jsp:forward page="path"} />or<jsp:forward page="path"} ><jsp:param name="paramName" value="paramValue" />……</jsp:forward>注:1、page="path" 为一个表达式,或者一个字符串。
2、<jsp:param> name 指定参数名,value指定参数值。
参数被发送到一个动态文件,参数可以是一个或多个值,而这个文件却必须是动态文件。
jsp面试题库选择题
1) 对于JSP的通用规则,描述正确的是:A. JSP标记不区分大小写。
B. 指令和脚本元素的语法不是基于XML的,但有替代的基于XML的语法。
C. 在标记中出现的属性值可以不用引号括起来,比如:<%@ page language="Java" %>和<%@ page language=java %>是等同的。
D. 在标记中使用字符/(正斜杠)作为转义字符。
E. 如果URL不是以”/”开始的,就被解释为相对于当前的JSP路径。
2) 对于标记,描述正确的是:A. 一般来说,是、标记的子标记。
B. 如果有代码:,则在中可以使用(“name”);把属性name的值取出来。
C. 如果有代码:,则在中可以使用(“name”);把属性name的值取出来。
D. 如果标记不放在标记内,也就是不作为标记的子标记,则使用浏览器查看时会显示错误页面。
3) 在有如下代码段:webmaster在Servlet中如何把webmaster的值取出来A. 使用RequestDispatcher的getInitParameter(“webmaster”)方法B. 使用ServletContext的getIni tParameter(“webmaster”)方法C. 使用ServletConfig的getInitParameter(“webmaster”)方法D. 使用GenericServlet的getInitParameter(“webmaster”)方法4) 在有如下代码段:teacherteacherCart在Servlet中如何把servlet名:teacher取出来A. 使用Servlet的getServletName方法。
B. 使用ServletConfig的getServletName方法。
C. 使用ServletContext的getServletName方法。
D. 使用ServletRequest的getServletName方法。
jsp期末考试试题及答案解析
jsp期末考试试题及答案解析一、选择题(每题2分,共20分)1. 在JSP中,以下哪个不是标准的JSP标签?A. <jsp:forward>B. <jsp:include>C. <jsp:useBean>D. <jsp:action>答案:D2. JSP页面的生命周期包括哪些阶段?A. 初始化、服务、销毁B. 编译、执行、销毁C. 初始化、编译、执行D. 编译、执行、服务答案:A3. 在JSP中,以下哪个对象代表当前的HTTP请求?A. requestB. responseC. sessionD. application答案:A4. JSP页面中,以下哪个指令用于导入Java包?A. <%@ page import="java.util.*" %>B. <%@ include file="header.jsp" %>C. <%@ taglib uri="/jsp/jstl/core" prefix="c" %>D. <%@ page contentType="text/html; charset=UTF-8" %>答案:A5. 在JSP页面中,以下哪个元素用于声明变量?A. <scriptlet>B. <%! %>C. <%-- --%>D. <%@ page %>答案:B6. JSP页面中的注释,以下哪种方式不会被发送到客户端浏览器?A. HTML注释B. JSP注释C. 单行注释D. 多行注释答案:B7. Servlet和JSP的主要区别是什么?A. Servlet是Java类,JSP是HTML页面B. Servlet只能处理HTTP请求,JSP可以处理其他类型的请求C. Servlet可以被缓存,JSP不能被缓存D. JSP可以包含Java代码,Servlet不能包含Java代码答案:A8. 在JSP页面中,以下哪个标签用于迭代集合?A. <c:forEach>B. <c:if>C. <c:choose>D. <c:out>答案:A9. 在JSP页面中,以下哪个标签用于条件判断?A. <c:forEach>B. <c:if>C. <c:choose>D. <c:out>答案:B10. JSP页面中的自定义标签,以下哪个文件用于定义标签的属性?A. TLD文件B. WEB-INF/web.xmlC. JSP页面D. Servlet答案:A二、简答题(每题5分,共20分)1. 请简述JSP和Servlet的关系。
J2EE JSP组件编程基础与语法详解——JSP中的动作标签
11、<jsp:param>标准动作标签的编程使用 (1)它被用来以“名-值”对的形式为其他标签提供附加信 息(传递参数),从而实现从一个JSP文件向另一个文 件传递一个包含用户请求的request对象。 (2)它一般可以和<jsp:include>、<jsp:forward>、 <jsp:plugin>等标签一起使用。
的形式出现,它代表服务器 端的某种形式的Java程序代码,从而实现产生输出或创建和 修改对象等方面的功能。如:
(2)标准动作标签是基于XML标签的语法规则
<jsp:useBean id=“nowDate” class=“java.util.Date” />
3、标准动作标签的主要作用 (1)封装脚本代码 动作标签允许 Java 程序员将 Java 代码伪装成XML或者 HTML标签来扩展JSP页面的功能,避免“美工”写程序。 (2)实现“表示层”与“业务层”之间的分离和减少重复 编程实现
<jsp:include page="common.jsp"> <jsp:param name=“userName" value="<%= userName%>"/> </jsp:include>
(2) include指令和include动作标签有所不同 前者是在主JSP页面文件被转换成Servlet程序时一起 被转换(编译时包含)
jsp四种会话跟踪技术
1.共享数据在web中的范围(四种会话跟踪技术)(1).page:仅在当前页可用(保存在当前的PageContext中)(2).request:仅用于当前客户端的请求(保存在ServletRequest对象中),它在同一个请求范围内有效.(3).session:仅在当前的HttpSession的生命周期内,当前浏览器窗口的整个生存期都有效.关闭浏览器时,这个对象会跟着消失,在整个对话期间都有效.(4).application:在整个应用范围内都有效,只有当服务器重启时,这个对象才会消失.2.Servlet的生命周期。
(1)初始化阶段,Servlet容器调用init()初始化Servlet对象。
(2)执行阶段, Servlet容器创建ServletRequest对象和ServletResponse对象,Servlet调用service方法来处理客户端的请求了,调用doGet(),doPost()方法接收客户端的请求,并且发回相应的响应。
(3)终止阶段,当Web应用被终止,或Servlet容器终止运行,或Servlet容器重新装载Servlet的新实例.Servlet调用destroy方法释放占用的资源3. 至少要能说出7个隐含对象以及他们的区别(1) request:代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送到服务器端的数据.它是javax.servlet.ServletRequest的一个实例.(2) response:用于用户端发送数据,它封装由JSP引擎产生的响应,并将响应返回给客户端.它是javax.servlet.ServletResponse类的一个实例.(3) out :用来输出各种类型的数据流,为用户打开的输出流,它是javax.servlet.jsp.JspWriter类的一个实例.(4) session:为发送请求的每一位客户建立一个会话,并且只对HTTP的用户请求有效.作用域是一次会话.它是javax.servlet.http.HttpSession类的一个实例.(5) exception:运行时的异常,即被调用的错误页面中的结果(6) page:JSP网页本身(7) application:它是javax.servlet.ServletContext类的一个实例,作用域是对所有的访问,当服务器启动时,applcation对象就被创建,生存期将一直持续到服务器关闭.(8) config:表示servlet的配置.(9) pageContext:管理网页的属性4. JSP的常用指令<%@ page language= “java” import = “” errorPage=”” isErrorPage= “” method = “”contxtPage=”text/html;charset=UTF-8” %><%@ include file = “”%><%@ taglib uri = “”%>5.forward 和redirect的区别<jsp:include page="included.jsp" flush="true"><jsp:forward page= "nextpage.jsp"/>前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。
usebean的用法
usebean的用法一、概述usebean是JSP中的一个标签,主要用于在JSP页面中创建JavaBean对象,并将其作为一个变量存储在page、request或session范围内,以便在后续的代码中使用。
二、语法usebean标签的语法如下:<jsp:useBean id="beanName" class="className"scope="scopeName"/>其中,id属性用于指定JavaBean对象的名称,class属性用于指定JavaBean对象所属的类名,scope属性用于指定JavaBean对象存储的范围。
三、使用方法1. 创建JavaBean类首先需要创建一个JavaBean类,该类需要包含一些成员变量和对应的getter和setter方法。
例如:public class User {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;}}2. 在JSP页面中使用usebean标签创建JavaBean对象在JSP页面中使用usebean标签创建JavaBean对象,并将其存储在page、request或session范围内。
例如:<jsp:useBean id="user" class="er"scope="session"/>3. 使用EL表达式访问JavaBean对象通过EL表达式可以方便地访问存储在page、request或session范围内的JavaBean对象。
JSP页面的构成
JSP页⾯的构成JSP页⾯就是带有JSP元素的常规Web页⾯,它由静态内容和动态内容构成。
其中,静态内容指HTML元素,动态内容(JSP元素)包括指令元素、脚本元素、动作元素、注释等内容。
1、指令元素指令元素主要⽤于为转换阶段提供JSP页⾯的相关信息,指令不会产⽣任何输出到当前的输出流中,它指定了有关页⾯本⾝的信息,这些信息在请求之间⼀直保持不变。
指令元素语法为<%@ directive{attr="value"}%>。
指令元素有三种:page、include、taglib。
1)page该指令⽤于整个页⾯,定义与页⾯相关的属性,它是JSP页⾯和容器的通信员,⼀般放在JSP页⾯的第⼀⾏。
与page相关的属性如下:属性描述buffer指定out对象使⽤缓冲区的⼤⼩autoFlush控制out对象的缓存区contentType指定当前JSP页⾯的MIME类型和字符编码errorPage指定当JSP页⾯发⽣异常时需要转向的错误处理页⾯isErrorPage指定当前页⾯是否可以作为另⼀个JSP页⾯的错误处理页⾯extends指定servlet从哪⼀个类继承import导⼊要使⽤的Java类info定义JSP页⾯的描述信息isThreadSafe指定对JSP页⾯的访问是否为线程安全language定义JSP页⾯所⽤的脚本语⾔,默认是Javasession指定JSP页⾯是否使⽤sessionisELIgnored指定是否执⾏EL表达式isScriptingEnabled确定脚本元素能否被使⽤a、import="导包列表",可以多次导⼊,也可以⽤逗号分隔开。
b、language=“scriptingLangeuage”,指定在脚本元素使⽤的脚本语⾔,默认是Java。
c、contentType="cinfo",指定HTTP响应的头部的Content-Type值。
河南理工大学JAVA WEB应用开发(JSP)试题及答案
第1章WEB开发环境(1)下列关于WEB开发说法正确的是。
A)Web是图形化的和易于导航的B)Web与平台无关C)Web是分布式的D)Web 是动态的E)Web 是静态的(2)下列关于Tomcat说法正确的是。
A)Tomcat是一种编程语言B)Tomcat是一种开发工具C)Tomcat是一种编程思想D)Tomcat是一种开编程规范E)Tomcat是一个免费的开源的Serlvet容器(3)下列关于Tomcat个目录说法错误的是。
A)bin目录--包含启动/关闭脚本B)conf目录——包含不同的配置文件C)Lib目录--包含Tomcat使用的JAR文件D)webapps目录--包含web项目示例,发布web应用时,默认情况下web文件夹放于此目录下E)work目录--包含web项目示例,当发布web应用时,默认情况下把web文件夹放于此目录下(4)下列关于HTTP协议说法正确的是。
A)HTTP是一种请求/响应式的协议B)HTTP请求消息中Accept表示浏览器可接受的MIME类型C)HTTP请求消息中Accept-Encoding表示浏览器能够进行解码的数据编码方式D)HTTP请求消息中Accept-Language表示浏览器所希望的语言种类E)HTTP请求消息中Host表示初始URL中的主机和端口。
(5)下列对于JSP说法中正确的是。
A)JSP是Sun公司推出的新一代站点开发语言B)JSP采用标识简化页面开发C)JSP完全解决了目前ASP、PHP的一个通病——脚本级执行D)JSP将内容的生成和显示进行分离E)JSP强调可重用的组件第2章JSP编译指令(1)下列关于JSP编译指令说法错误的是。
A)编译指令用于从JSP发送一个信息到容器上B)编译指令用来设置全局变量、声明类要实现的方法和输出内容的类型等C)编译指令向客户端产生任何输出D)编译指令所有的指令都在整个JSP页面内有效E)编译指令元素为编译阶段提供了全局信息(2)下面关于page指令说法中错误的是。
JSP题库
2.HTML 语言中,vlink 表示设置已访问的 链接的颜色。 √ 3.将 A 的 target 指定为 _blank,从而 使超链接目标文件载入一个新的浏览器窗 口。√ 4.HTML 是 HyperText Markup Language(超 文本标记语言)的缩写。超文本使网页之间
CSS
一、选择题
1、创建自定义 CSS 样式时,样式名称的前
面必须加一个 D 。
A.$
B.#
C.? D.原点
2、 B 标签可以应用于〈head〉中。
A 、 <body>
B 、 <title>
C、
<image> D、<html>
3、 B 下列哪个 css 属性可以更改字体大
小?
A.text-size
B.font-size
to 10 D.for(i=0;i<=10;i++) 8. 有语句“var x=0;while(____) x+=2;”,要
使 while 循环体执行 10 次,空白处的循环判
定式应写为:
( ) A.x<10 B. x<=10 C.x<20 D.x<=20
9 .在 HTML 页面上编写 Javascript 代码时,
7、错误分类一般分两类:一类是语法错误;
另一类是 : ______ 。
8、根据语句对数据结构的处理流程,
JavaScript 的处理流程可分为顺序、______
和循环三种基本结构。
9、( String 对象 ) 提供对______进行处
理的属性和方法。
usebean的用法
usebean的用法什么是usebean在Java Servlet中,usebean是一个重要的标签,用于创建和操作JavaBean对象。
JavaBean是一种通过封装私有属性以及提供公共的访问方法来实现对数据进行封装和操作的Java类。
在实际应用中,我们经常需要获取客户端提交的数据并进行处理,而usebean标签可以简化这个过程。
usebean的基本语法usebean标签的基本语法如下:<jsp:useBean id="beanName" class="packageName.className" scope="scopeType" />•id:表示JavaBean对象的标识符,用于在后续的代码中引用对象。
•class:表示JavaBean对象的全限定类名,即包名加类名。
•scope:表示JavaBean对象的作用范围,可以是page、request、session 或application。
usebean的作用范围•page:表示JavaBean对象仅在当前JSP页面中可见,其他页面无法访问该对象。
•request:表示JavaBean对象在一次HTTP请求的处理过程中可见,包括转发的请求。
•session:表示JavaBean对象在用户会话期间可见,即从用户登录到退出登录期间都可访问该对象。
•application:表示JavaBean对象在整个应用程序的生命周期内可见。
usebean的用法示例下面是一个简单的示例,演示了如何使用usebean标签来创建一个JavaBean对象:<jsp:useBean id="user" class="er" scope="request" />在上面的示例中,我们创建了一个名为user的JavaBean对象,其类型为er,作用范围为request。
jsp三大指令标记,七大动作标记、详解。
jsp三⼤指令标记,七⼤动作标记、详解。
JSP的基本构成JSP页⾯主要由指令标签,注释,嵌⼊Java代码,JSP动作标签,HTML标记语⾔等五个元素组成。
3个指令标签1 、page指令page指令⽤户定义JSP页⾯中的全局属性,Eg:<%@ page attr1=”value1” atrr2=”value2”.......%>page指令对整个页⾯有效,包括静态的包含⽂件,但page指令不能⽤于被动态包含的⽂件,例如使⽤<jsp:include>包含的⽂件。
在⼀个JSP页⾯中可以使⽤多个page指令,但page指令中的属性只能出现⼀次(import属性除外)。
page指令的常⽤属性如下:(1) language属性该属性⽤于设置JSP页⾯使⽤的语⾔,⽬前只⽀持Java语⾔。
例:<%@ page language=”java” %>(2) extends属性该属性⽤于设置JSP页⾯所继承的Java类,JSP和Servlet都可以继承指定的⽗类,但该属性并不常⽤.(3) import属性该属性⽤于设置JSP所导⼊的类包,JSP页⾯可以嵌⼊Java代码⽚段,这些Java代码在调⽤API时需要导⼊相应的类包。
例: <%@page import=”java.util.*” %>(4) pageEncoding属性该属性⽤于定义JSP页⾯的编码格式,指定的⽂件编码格式。
例:<%@ page pageEncoding=”UTF-8” %>(5) contentType属性该属性⽤于设置JSP页⾯的MIME类型和字符编码,浏览器会根据些解释页⾯。
例:<%@ pagecontentType=”text/html;charset=utf-8” %>(6) session属性该属性⽤于定义JSP页⾯是否使⽤session会话对象,其值是boolean类型,默认值为true. Eg:<%@ page session=”true” %>(7) buffer属性该属性⽤于设置out对象所使⽤的缓冲区⼤⼩,默认⼤⼩是8KB,单位只能是8的倍数。
useBean使用全解
<jsp:useBean/>使用全解一. JSP动作元素useBean语法:<jsp:useBeanid="beanInstanceName"scope="page | request | session | application"{class="package.class" |type="package.class" |class="package.class" type="package.class" |beanName="{package.class | <%= expression %>}" type="package.class"}{/> |> other elements </jsp:useBean>}二. <jsp:useBean>元素各属性解析:1. id="beanInstanceName"(1)一个用来标识你指定作用域的变量。
可以在JSP文件的表达式或脚本小应用程序中使用该变量名称。
(2)该名称大小写敏感,必须符合JSP页面中脚本语言的命名规则。
假如你使用的是Java语言,则该名称遵守的是Java命名规范。
(3)假如该Bean对象已由其它<jsp:useBean>元素创建,则该值必须和实例化该Bean对象的<jsp:useBean>元素id属性值一致,才能实现定位到该Bean对象。
2. scope="page | request | session | application"Bean对象存在的作用范围,默认值为page. 不同作用域解释如下:(1)page: 你可以在<jsp:useBean>元素所在JSP页面或其静态包含页面使用该JavaBean对象,直到该页面发送响应回客户端或跳转(forwards)至其它页面。
成人教育《脚本语言和互动网页设计》期末考试复习题及参考答案
脚本语言与互动网页设计练习题A一、单项选择题1.如果当前JSP页面出现异常时需要转到一个异常页,需要设置page 指令的()属性。
A. ExceptionB. isErrorPageC. errorD. errorPage2.在javaScrpt中window对象的()方法用于打开一个新窗口。
A. openWindow()B. window()C. open()D. close()3.java.io.File对象的()方法可以新建一个文件。
A. delete()B. createFile()C. mkdir()D. createNewFile()4.在HTML中,标记<pre>的作用是( )A. 标题标记B. 预排版标记C. 转行标记D. 文字效果标记5.JSP中的隐式注释为( )。
A. // 注释内容B. <!—注释内容-->C. <%--注释内容--%>D. /* 注释内容 */6.( )方法要求窗口显示刚刚访问的前一个窗口。
A.back() B. go() C. display() D. view()7.如果编写一个计数器程序,用来记载当前网站的访问量,最好采用JSP中的( )对象。
A. PageB. SessionC. RequestD. application8.下列表单<form><input type=”submit” value=”提交”></form>,如果单击提交按钮时,表单( )。
A. 没有指定action属性,所以不做提交B. 使用post方式提交C. 提交到当前页D. 不确定9.下述选项中不属于JDBC基本功能的是:()A. 与数据库建立连接B. 提交SQL语句C. 处理查询结果D. 数据库维护管理10.在JSP中使用<jsp:getProperty>标记时,不会出现的属性是:()A. nameB. propertyC. valueD. 以上皆不会出现11.下列()指令定义在JSP编译时包含所需要的资源。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
属性用途
id给将要应用bean的变量一个名字,如果发现有相同id和scope的bean对象,则应用此对象而不会产生一个新的例示。
class指明了bean的整个包名。
scope表明了此bean的作用范围,共有四个值:page, request, session, 和application,缺省的是page属性,表明此bean只能应用于当前页(保存在当前页的PageContext 中);request属性表明此bean只能应用于当前的用户请求中(保存在ServletRequest对象中);
session 属性表明此bean能应用于当前HttpSession生命周期内的所有页面;application 属性值则表明此bean能应用于共享ServletContext的所有页面。
需要注意的是,当没有具有相同的id和scope对象时,一个jsp:useBean 实体只能作用于一个新的例示中,反之,则作用于以前的对象,这时,在jsp:useBean标签之间的任何jsp:setParameter和其它实体都将被忽略。
type说明将要索引对象的变量类型,它必须与类名及父类名相匹配。
记住,这个变量的名字是由id属性值代替的。
beanName给定此bean的名字,可以将其提供给bean的例示方法,只提供beanName 和type而忽略class属性的情况是允许的。
下面是标签处理方法类:UseBean.java:
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import ng.reflect.*;
//
public class UseBean extends TagSupport{ //继承自TagSupport类
private String scope;
private String type;
public UseBean(){super();}
/**
*设置属性存取方法,这个方法由容器自动调用。
setId()和getId()由系统自动实现
*/
public void setScope(String s) {
this.scope = s;
}
public String getScope(){return this.scope;}
public void setType(String type){
this.type=type;
}
public String getType(){return this.type;}
/**
*覆盖doStartTag方法
*/
public int doStartTag() throws JspTagException
{
Object o = null;
// find the bean in the specified scope
if (scope.equals("page")) {
o =
pageContext.getAttribute(getId(),PageContext.PAGE_SCOPE);
} else if (scope.equals("request")) {
o = pageContext.getAttribute(getId(), PageContext.REQUEST_SCOPE);
} else if (scope.equals("session")) {
o = pageContext.getAttribute(getId(), PageContext.SESSION_SCOPE);
} else if (scope.equals("application")) {
o = pageContext.getAttribute(getId(), PageContext.APPLICATION_SCOPE);
}
if(o==null)
{
System.out.println("o is null!");
try{
Class u=Class.forName(type);
o=u.newInstance();//无参构造方法
System.out.println("create success!");
}
catch(Exception e){
throw new JspTagException("error to created a "+getId()+" object!");
}
}
pageContext.setAttribute(getId(), o); //保存实例对象到上下文对象中
return EVAL_BODY_INCLUDE; //返回类型
}
}
现在我们已经把对象实例放到pageContext里了,是不是这样就可以在JSP页面中直接引用了?当然不是了,直接将JAVA对象放进 pageContext中与在脚本中直接引用是不同的。
差别在于JSP容器要负责取得这个对象,以脚本变量的形式提供给页面。
即JSP容器负责来维护脚本变量与pageContext中相应对象的状态。
有两种方法可以为自定义标签来声明脚本变量。
一种是声明variable,一种是通过TagExtraInfo类声明变量。
前者是JDK1.2后的方法,优点是比较方便。
后者因为要再写一个类文件,所以显得麻烦些,但更灵活,出于兼容性与功能上的考虑,建议还是采用后者。
(关于此类的详细说明,请参考PPT文档)
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class UseBeanTag extends TagExtraInfo {
public VariableInfo[] getVariableInfo(TagData data) {
return new VariableInfo[] {
new VariableInfo(
data.getId(),
data.getAttributeString("type"),
true,
VariableInfo.AT_BEGIN)
};
}
}
现在,定义一个useBean标签的工作已进行大半,下面该定义标签库描述(TLD)文件了,该文件是一个XML文档,主要定义标签的属性、处理类和扩展信息类的声明。
主要声明部分如下:(tag.tld)
……………………(省去标头部分)
<!-- useBEAN 标签-->
<tag>
<name>useBEAN</name>
<!—声明标签处理类-->
<tag-class>eBean</tag-class>
<!—声明标签扩展信息类-->
<tei-class>eBeanTag</tei-class> <!—主体内容类型-->
<body-content>jsp</body-content>
<!—属性设置-->
<attribute>
<name>scope</name>
<!—是否必选-->
<required>true</required>
<!—是否可以使用JSP表达式-->
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>id</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>type</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
其实这个标签库描述文件应该是最先建立的,因为我们主要是为了说明实现的方法,所以标签描述放在后边了。
接下就是将刚才做的这些东西部署到我们的应用中去。
在目标JSP页面中引用一下就OK了。
<%@ taglib uri="/WEB-INF/tag.tld" prefix="dever" %>
<dever:useBEAN id="test" type="er" scope="page" />
OK,到此为止,我们自定义的useBean标签已经可以开始工作了,是不是觉得很容易,其实本来就不难,只要大家掌握了定义标签的流程和配置方法,剩下的就只是写标签处理类了,在以后的几篇blog中,我就不再详述这些部署和配置,直接给出标签处理类的代码。