forwardpage=”weather.html”>
7、Servlet处理请求的方式为(选择1项)B
A)以运行的方式B)以线程的方式
C)以程序的方式D)以调度的方式
二、判断
1.JSP会先解释成Servlet源文件,然后编译成Servlet类文件。
(T)
2.每当用户端运行JSP时,jspInit()方法都会运行一次(只会运行一次)在jspPage被初始化的时候被调用,并且该方法仅在初始化时执行一次。
(F)
3.JSP页面在执行时是以编译和解释式方式进行的。
(F)
4.在MVC模式的Web开发中,“视图”、“模型”和“控制器”分别对应着“JSP页面”、“JavaBean”和“Serlvet”,以Servlet为核心。
(T)
三、问答
1.WEB容器主要有哪些功能?
并请列出一些常见的WEB容器名字。
答:
①web容器是一种服务程序,就是为应用服务器组(如jsp,servlet等)提供一个运行环境,使JSP、servlet直接跟容器中的环境变量接口交互,不必关注其他系统问题。
主要有web服务器来实现。
②tomcat、WebLogic,WebSphere等
2.什么是B/S和C/S?
答:
C/S是Client/Serverde缩写,即客户端/服务器结构。
在这种结构中,服务器通常采用高性能的PC或工作站,并采用大型数据库,客户端则需要安装专用的客户端软件。
B/S是Browser/Server的缩写,即浏览器/服务器结构。
在这种结构中,客户端不需要开发任何用户界面,而统一采用如IE和火狐等浏览器,通过Web浏览器想Web服务器发送请求,由Web服务器进行处理,并将结果逐级传回客户端。
3.ASP\cgi\isapi\jsp\php的全称是什么,各有什么特点?
答:
ASP(ActiveServerPage)通过在页面代码中嵌入VBScript或JavaScript脚本语言,来生成动态内容。
CGI(CommonGatewayInterface)允许使用不同的语言来编写适合的CGI程序,该程序被放在Web程序上运行。
ISAPI(InternetServerApplicationProgrammingInterface)可以利用服务器扩展DLL创建小型、快速的Internet服务器应用程序,并且允许在一个DLL中有多个命令,这些命令作为DLL中CHttpServer对象的成员函数来实现。
JSP(JavaServerPage)是以java为基础开发的,所以它沿用Java强大的API功能。
PHP(PHP:
HypertextPreprocessor)语法类似于C,并且混合了Perl,C++和Java的一些特性。
它是一种开源的Web服务器脚本语言,可以在页面中加入脚本来生成动态内容。
4.Tomcat服务器的默认端口是什么?
答:
8080
5.假设在本地机的helloapp应用中有一个hello.jsp,它的文件路径如下:
%CATALINA_HOME%/webapps/jsj13app/class/index.jsp
那么在浏览器端访问index.jsp的URL是什么?
答:
http:
//helloapp:
8080/webapps/jsj13app/class/index.jsp
6.JavaScript代码的开始标记和结束标记是什么?
答:
代码内容;
7.简述一下JSP的运行环境配置。
JDK的安装,Path、ClassPath环境变量的配置(Path中加入JDK安装路径\bin,ClassPath中加入JDK安装路径\lib的tools.jar和dt.jar)。
(2)Web服务器的配置和安装,如Tomcat。
第五、六章练习
一、选择
1.Page指示符的language属性的作用是。
(C)
A)定义JSP页面的字符编码(pageEncoding)B)定义JSP页面的MIME类型
C)定义JSP页面中使用的脚本语言D)定义JSP页面的描述信息
2.Giventhelogin.getName()returnsajava.lang.StringvalueandgiventheJSPcode:
Welcome<%=login.getName()%>
Whichisequivalent?
(A)
A)Welcome<%out.print(login.getName());%>
B)Welcome<%Writer.print(login.getName());%>
C)Welcome<%response.out.print(login.getName());%>
D)Welcome<%response.writer.print(login.getName());%>
E)Welcome<%response.getoutputstream().write(login.getName());%>
3.如果某一JSP页面的表单中,有几个复选框,name为“habit”,则该jsp提交后,通过下面(C)语句去获取用户选中复选框的值。
A)request.getAttribute(“habit”);B)request.getParameter(“habit”);
C)request.getParameterValues(“habit”);D)request.getHabit();
4.AJSPpage,current.jsp,iscreatedtodisplaythecurrentweatherreport.Theweatherreportiscontainedinaweather.htmlpagethatisrewritteneveryfiveminutes.
Whichline,appearingincurrent.jsp,ensuresthatthemostrecentversionofweather.htmlisincludedwhenevercurrent.jspisreferenced?
(D)
A)<%@includefile=”weather.html”%>B)<%@forwardfile=”weather.html”%>
C)<%@includepage=”weather.html”%>D)includepage=”weather.html”>
E)forwardpage=”weather.html”>
5.AJSPpageneedstoinstantiateaJavaBeantobeusedbyonlythatpage.Whichtwojsp:
useBeanattributesmustbeusedtoaccessthisattributeintheJSPpage?
(choosetwo)(AD)
A)idB)typeC)nameD)classE)scopeF)create
6.下面哪项是错误的设置Bean属性值的方法(D)
A)setPropertyname="beanInstanceName"
property="*"/>
B)setPropertyname="beanInstanceName"
property="propertyName"/>
C)setPropertyname="beanInstanceName"
property="propertyName"param="parameterName"/>
D)setPropertyname="beanInstanceName"
property="*"value="{string|<%=expression%>}"/>
7.使用getProperty>动作标记可以在JSP页面中得到Bean实例的属性值,并将其转换为什么类型的数据,发送到客户端。
(A)
A)String B)DoubleC)Object D)Classes
8.从HTTP请求中,获得请求参数,应该调用哪个方法?
(C)
A)调用HttpServletRequest对象的getAttribute()方法
B)调用ServletContext对象的getAttribute()方法
C)调用HttpServletRequest对象的getParameter()方法
9.在J2EE中,test.jsp文件中有如下一行代码:
useBeanid=“user ”scope=“”type=“com.userBean”/>
要使user对象中一直存在于对话中,直至其终止或被删除为止,下划线中应填入(C)
A)pageB)requestC)sessionD)application
10.设在表单中有一组复选钮标记,如下列代码:
请选择喜欢的城市:
长春
北京
大连
上海
如果在register.jsp是取city的值,最适合的方法为(C)
A)Stringcity=request.getParameter(“city”);
B)String[]cities=request.getParameter(“city”);
C)String[]cities=request.getParameterValues(“city”);
D)Stringcity=request.getAttribute(“city”);
11.在Jsp指令中errorPage(“url”)的意思是(C)
A)将本页面设置为错误的页面
B)将本页面中所有的错误的信息保存到url变量中
C)为本页面指定一个错误页面
D)没有具体的含义
12.下列(A)语句可以获取页面请求中一个文本框的输入(文本框的名称为title)
A)request.getParameter(“title”)B)request.getAttribute(“title”)
C)request.getParameterValues(“title”)D)request.getParameters(“title”)
13.Page指令用于定义JSP文件中的全局属性,下列关于该指令用法的描述不正确的是:
(D)
A)<%@page%>作用于整个JSP页面。
B)可以在一个页面中使用多个<%@page%>指令。
C)为增强程序的可读性,建议将<%@page%>指令放在JSP文件的开头,但不是必须的。
D)<%@page%>指令中的属性只能出现一次。
14.下面哪一个不是JSP本身已加载的基本类?
(B)
A)java.lang.*B)java.io.*C)javax.servlet.*D)javax.servlet.jsp.*
15.以下(AB)是JSP中正确的注释(多选题):
A)<%--comments--%>B)<%//comments%>
C)
-comments-->D)<%!
/*comments*/%>
16.下列变量声明在( C)范围内有效。
<%!
DatedateTime;
intcountNum;
%>
A)从定义开始处有效,客户之间不共享
B)在整个页面内有效,客户之间不共享
C)在整个页面内有效,被多个客户共享
D)从定义开始处有效,被多个客户共享
17.给定java程序User.java,代码如下:
packageuser;
publicclassUser{
privateStringpassword;
privateStringloginName;
publicStringgetLoginName(){
returnloginName;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetLoginName(StringloginName){
this.loginName=loginName;
}
publicvoidsetPassword(Stringpassword){
this.password=password;
}
}
给定user.jsp,代码片断如下:
____________
loginName:
getPropertyname=”user”property=”loginName”/>
password:
getPropertyname=”user”property=”password”/>
在浏览器上输入URL:
http:
//localhost/user,jsp?
loginName=sa&password=sa并回车,要使浏览器上显示:
loginName:
sapassword:
sa
在user.jsp中的下划线处应填入以下(D)代码.(选择一项)
A)useBeanid=”user”class=”user.User”scope=”page”/>
setPropertyname=”user”property=”loginName”value=”*”/>
setPropertyname=”user”property=”password”value=”*”/>
B)useBeanid=”user”class=”user.User”scope=”application”/>
setPropertyname=”user”property=”loginName”value=”*”/>
setPropertyname=”user”property=”password”value=”*”/>
C)useBeanid=”user”class=”user.User”scope=”application”/>
setPropertyname=”user”property=”*”/>
D)useBeanid=”user”class=”user.User”scope=”page”/>
setPropertyname=”user”property=”*”/>
二、判断
1.在JSP中,有代码:
<%=”2”+”4”%>,将输出6。
(错)
2.每个HttpSession对象都有惟一的ID。
(对)
3.被引用的Bean文件的文件名后缀为.java。
(错)
4.在JSP中,只有一行代码:
<%=A+B%>,运行将输出”AB”。
(错)
5.给定程序源码如下:
<%intCount=1;%>
Count:
<%=++Count%>
该JSP运行后输出的结果是Count:
1。
(错)
6.在JSP中,include指令用于将文件嵌入JSP页面。
(对)
7.Page指令用于定义JSP文件中的全局属性,可以在一个页面中使用多个<%@page%>指令。
(对)
8.在“<%!
”和“%>“标记之间声明的Java的变量在整个页面内有效,不同的客户之间不共享。
(错)
9.在一个JSP文件中,有表达式<%=2+3%>,它将输出23。
(错)
10.不同的用户窗口具有相同的session。
(错)
三、问答
1.在JSP中如何使用注释?
答:
隐藏注释:
<%----%>
动态注释:
---->
代码段注释:
///**/
2.在JSP参数请求时,中文传递会乱码,请分析原因并给出解决办法?
获取访问请求参数是乱码。
解决方案:
将获取到的数据通过String的构造方法使用utf-8或GBK编码重新构造一个string对象。
2.获取表单提交的信息乱码。
解决方案:
通过在page指令的下方加上调用requst对象的setcharacterencoding()方法将编码设置为utf-8或gbk
3.请写出JSP页面间三种参数传递和获取方式并简述。
4.JSP页面由哪些元素构成
答:
1.模板元素 html、xml
2.注释元素
(1)html注释,显示在客户端源码中
(2)jsp注释,不会显示在客户端源码,只在jsp中 (3)单行注释与多行注释 3.指令元素
(1)page指令
(2)include指令
(3)taglib标签前缀 找到标签描述文件和标签库的方式 4.脚本元素
被转换成servlet中的实例属性和实例方法
(2)表达式,世界");
转化成servlet中的out.print("你好,世界" );
(4)scriptlets多个scriptlets合成一个被包含在servlet的service方法中
5.JSP中的脚本标识包含哪些元素?
作用及语法格式是什么?
6.JSP中有哪些注释?
语法格式是什么?
答:
动态,隐藏,代码片段注释
格式:
隐藏注释:
<%----%>
动态注释:
---->
代码段注释:
///**/
7.简述一下JSP中include两种实现方式,如何实现应用include>指令包含需要传递参数的文件?
答:
include指令通过file属性来指定被包含的页面,include动作标识通过page属性来指定被包含的页面;include指令包含的文件为静态(静态包含),include动作标识包含的文件可以是动态文件也可以是静态文件(动态包含)。
8.表单的提交方式有哪几种,区别在哪里
答:
Post和Get都是表单属性Method的可选值,Method的默认值为Get,两者的主要区别在于:
在客户端,Get方式在通过URL提交数据,而Post提交后地栏不变;Get方式对提交的信息大小有限制,Post理论上没有限制。
。
9.useBean>动作的功能是什么
答:
jsp:
useBean:
寻找或者实例化一个JavaBean。
10.jsp主要内置对象有哪些,并简述其作用
Out对象代表提供输出流的访问,主要用来向客户端输出各种数据类型的类容,并且管理服务器上的输出缓冲区。
Request对象是从客户端向服务器发出请求,包括用户提交的信息以及客户端的一些信息。
Response对象和Request对象相对应,用于响应客户请求,向客户端输出信息。
允许直接访问HttpServletResponse对象。
11.简述Session与Application区别。
答:
两者区别在于Session对象是会话级,只要不关闭浏览器就可用,但如果客户端长时间不向服务器发出请求,Session会自动消失,每个客户端拥有自己的Session对象,不共享,Application对象为应用程序级,所有客户的Application对象都是同一个,即所有客户共享这个内置的Application对象。
四、编程
1.应用JSP脚本标识实现一个简单的网站计数器。
<% int counter=0;
int counterFunction() { return counter++; }%>
<%counterFunction();%>
网站计数器
你是第<%=counter %>位访问者
2.给定一个字符串数组classes={{"计算机13级1班","班长为张亮","学习委员为李克"},{"计算机13级2班","班长为罗科","学习委员为黄程发"}},在JSP页面中编写一个for循环或While循环从该数组中取值并输出到前台。
<% String [][] classes={{"计算机13级1班","班长为张亮","学习委员为李克"},{"计算机13级2班","班长为罗科","学习委员为黄程发"}}
for (int i=0 i