一、 填空题
- 一个完整的JSP页面是由普通的HTML标记、JSP指令标记、JSP动作标记、 变量声明 与方法声明 、程序片 、表达式 、 注释 7种要素构成。
- JSP页面的基本构成元素,其中变量和方法声明(Declaration) 、 表达式 (Expression)和Java程序片(Scriptlet)统称为JSP脚本元素 。
- 指令标记、JSP动作标记统称为 JSP标记 。
- “<%!”和“%>”之间声明的方法在整个页面内有效,称为页面的成员方法 。
- 在“<%!”和“%>”之间声明的变量又称为 页面成员变量 ,其作用范围为整个JSP页面。
- JSP页面的程序片中可以插入 HTML 标记。
- 当JSP页面的一个客户线程在执行 synchronized 方法时,其他客户必须等待。
- JSP页面中,输出型注释的内容写在 “<!--” 和 “-->” 之间。
- .JSP声明函数时,如果在前面加上 synchronize 关键字,功能是当前一个用户在执行该方法时,其他用户必须等待,直到该用户完成操作。
- Page指令的属性Language的默认值是 java 。
- 在Error.jsp页面中,要使用Exception对象,必须设置的指令是 <%@page isErrorPage = “true”%>.
- 要使java bean在整个应用程序的声明周期中,被该应用程序中的任何JSP文件所使用,则该java bean的Scope属性必须设置为 application 。
- JSP的_ __session__ __对象用来保存单个用户访问时的一些信息。
- response对象的_ sendRedirect(URL url)_ _方法可以将当前客户端的请求转到其他页面去。
- 当客户端请求一个JSP页面时,JSP容器会将请求信息包装在__ _request__对象中。
- response.setHeader(“Refresh”, “5”)的含义是指 页面刷新时间为 5秒__。
- 在JSP中为内置对象定义了4种作用范围,即 Application Scope 、Session Scope 、Page Scope 和Request Scope 四个作用范围。
- 表单的提交方法包括___ get ___和___post_ _方法。
- 表单标记中的__ action _属性用于指定处理表单数据程序url的地址。
- JavaBean是一个 java 类,它必须有一个 无参的构造 方法。
- JSP的是内部对象可以直接使用,它是由 web容器 创建的。
- 在JSP中,页面间对象传递的方法: request 、 session 、 application 、 cookie 等方法。
- 在jsp页面中,可以用request对象的 getParameterValues() 方法来获取其他页面传递参数值的数组。
- 在JSP中使用JavaBean的标签是 <jsp:useBean class=BeanName id=Bean实例> ,其中id的用途是 实例化一个Bean对象 。
- JavaBean中用一组set方法设置Bean的私有属性值,get方法获得Bean的私有属性值。set和get方法名称与属性名称之间必须对应,也就是:如果属性名称为xxx,那么set和get方法的名称必须为 setXxx() 和 getXxx() 。
- 用户在实际Web应用开发中,编写Bean除了要使用import语句引入Java的标准类,可能还需要自己编写的其他类。用户自己编写的被Bean引用的类称之为 Bean的辅助类
- 创建JavaBean的过程和编写Java类的过程基本相似,可以在任何Java的编程环境下完成 编写、编译和发布 。
- 布置JavaBean要在Web服务目录的WEB-INF\classes文件夹中建立与 Bean的包名 对应的子目录,用户要注意目录名称的大小写。
- 使用Bean首先要在JSP页面中使用 import 指令将Bean引入。
- 要想在JSP页面中使用Bean,必须首先使用 <jsp:useBean> 动作标记在页面中定义一个JavaBean的实例。
- JSTL标签库中, c:forEach 标签用来循环输出集合中的数据。
- 获取request作用域中名为“uname”值的EL表达式是 ${uname} 。
- 编写过滤器类需要实现的 Filter 接口。
- Filter接口中最主要的方法是 doFilter 方法。
- 实现Filter接口的类需要重写doFilter方法、 init 方法、destroy方法。
二、 选择题
1. |
如果做动态网站开发,以下( A )可以作为服务器端脚本语言(选择一项) |
|
A. |
Java |
|
B. |
Jsp |
|
C. |
Javascript |
|
D. |
Html |
2. |
JSP中存在如下代码:<%="2"+"4" %>,运行该JSP后,以下说法正确的是( C )(选择一项) |
|
A. |
没有任何输出 |
|
B. |
输出6 |
|
C. |
输出24 |
|
D. |
指令将引发错误 |
3. |
在JSP中,使用( C )对象的( )方法可完成网页重定向(选择一项) |
|
A. |
request,getRequestDispatcher() |
|
B. |
request,forward() |
|
C. |
response,sendRedirect() |
|
D. |
response,setRequestDispatcher() |
4. |
在JSP中使用JDBC语句访问数据库,正确导入SQL类库的语句是( A )(选择一项) |
|
A. |
<%@ page import="java.sql.*" %> |
|
B. |
<%@ page import="sql.*" %> |
|
C. |
<% page import="java.sql.*" %> |
|
D. |
<%@ import="java.sql.*" %> |
5. |
对于分页查询, 以下说法不正确的是( B )(选择一项) |
|
A. |
可以减轻服务器压力 |
|
B. |
对于程序开销极大 |
|
C. |
以提高用户体验 |
|
D. |
对于不同数据库有不同的SQL指令 |
6 |
对于ServletRequest接口的getAttribute()方法,说法正确的是( A )(选择一项) |
|
A. |
获取指定名称的属性值 |
|
B. |
设置指定属性的值 |
|
C. |
删除指定属性的值 |
|
D. |
以上都不对 |
7. |
对JSTL说法中正确的是( AB )(选择二项) |
|
A. |
foreach用来循环输出集合中的数据 |
|
B. |
set标签用来定义变量 |
|
C. |
out标签只能输出session中的变量值 |
|
D. |
if标签主要用来执行数据库操 |
8. |
在JSP页面中,下列( A )表达式语句可以获取页面请求中名字为title的文本框的内容。(选择一项) |
|
A. |
<%=request.getParameter("title")%> |
|
B. |
<%=request.getAttribute("title")%> |
|
C. |
<%=request.getParameterValues("title")%> |
|
D. |
<%=request.getParameters("title")%> |
9. |
jsp在执行过程中经过()阶段,由web容器将之转换成java源代码( A )(选择一项) |
|
A. |
翻译 |
|
B. |
编译 |
|
C. |
执行 |
|
D. |
响应 |
10. |
jsp在执行过程中经过()阶段,会将java源码转换成class文件( B )(选择一项) |
|
A. |
翻译 |
|
B. |
编译 |
|
C. |
执行 |
|
D. |
响应 |
11. |
在JSP的小脚本中,使用以下( C)语句可以使浏览器重定向到另一个页面(选择一项) |
|
A. |
request.sendRedirect("http://www.jb-aptech.com.cn"); |
|
B. |
request.sendRedirect(); |
|
C. |
response.sendRedirect("http://www.jb-aptech.com.cn"); |
|
D. |
response.sendRedirect(); |
12. |
JSP文件test.jsp文件如下所示,运行时,将发生(D)。(选择一项) <html> <% String str = null;%> str is <%=str%> </html> |
|
A. |
编译阶段出现错误 |
|
B. |
翻译阶段出现错误 |
|
C. |
执行字节码时发生错误 |
|
D. |
运行后,浏览器上显示:str is null |
13. |
JSP页面的page指令主要用于设置该页面的各种属性,page指令的language属性的作用是( B )。(选择一项) |
|
A. |
将需要的包或类引入到JSP页面中 |
|
B. |
指定JSP页面使用的脚本语言,默认为Java |
|
C. |
指定JSP页面采用的编码方式,默认为text/html |
|
D. |
服务器所在国家编码 |
14. |
在java Web应用开发中,Servlet程序需要在( B )文件中配置。(选择一项) |
|
A. |
Jsp |
|
B. |
web.xml |
|
C. |
struts.xml |
|
D. |
servlet.xml |
15. |
在Java EE中,HttpServletResponse的( B )方法用于一个HTTP请求重定向到另一个资源。(选择一项) |
|
A. |
sendURL() |
|
B. |
sendRedirect() |
|
C. |
forward() |
|
D. |
redirectURL() |
16. |
在JSP页面中进行访问控制时,一般会使用JSP的( B )内置对象实现对用户的会话跟踪(选择一项) |
|
A. |
Request |
|
B. |
Session |
|
C. |
Response |
|
D. |
Application |
17. |
在JSP页面中有如下Java代码,一共存在( B)处错误(选择一项) <% String userName= (String)session.getParameter("userName"); if(userName==null) { %> 您尚未登录! <% } else { %> 欢迎您,<%=userName %> <% } %> |
|
A. |
0 |
|
B. |
1 |
|
C. |
2 |
|
D. |
3 |
18. |
在JSP中,以下哪个方法可以正确获取复选框的值( C )(选择一项) |
|
A. |
request.getParameterValue() |
|
B. |
response.setParameterValues() |
|
C. |
request.getParameterValues() |
|
D. |
request.getParameter() |
19. |
在一个jsp页面中包含了这样一种页面元素,<% int i = 10; %>这是( B )(选择一项) |
|
A. |
表达式 |
|
B. |
小脚本 |
|
C. |
指令 |
|
D. |
注释 |
20. |
在JSP中,以下( C )技术最适合实现购物车的存储(选择一项) |
|
A. |
Page |
|
B. |
Request |
|
C. |
Session |
|
D. |
Application |
21. |
以下JSP关键代码的运行效果为( A )。(选择一项) <% Map map=new HashMap(); map.put("a","Java"); map.put("b","JSP"); map.put("a","C#"); request.setAttribute("map",map); %> ${map.b}<br/> ${map["a"]} |
|
A. |
JSP C# |
|
B. |
JSP JAVA |
|
C. |
运行时出现错误 |
|
D. |
什么也不输出。 |
22. |
以下JSP代码片段的输出结果是( D )(选择一项) <% String getName(String name){ return name.subString(0,3); } %> 姓名:<%=getName("齐德龙东强")%> |
|
A. |
姓名: |
|
B. |
姓名:齐德 |
|
C. |
姓名:齐德龙 |
|
D. |
编译错误 |
23. |
index.jsp中代码如下,可以正确填写到横线处的代码为( AB )(选择二项) <%@ pae language="java" pageEncoding="ISO-8859-1" ______________%> <% Date date = new Date(); %> <%=date%> |
|
A. |
import="java.util.*" |
|
B. |
import="java.util.Date" |
|
C. |
package="java.util.*" |
|
D. |
package="java.util.Date" |
24. |
以下JSP代码运行后的结果为( B )。(选择一项) <%int i =8;%> <%=i+"8"%> |
|
A. |
i8 |
|
B. |
88 |
|
C. |
16 |
|
D. |
编译错误 |
25. |
在下JSP代码,用户访问login.jsp页面点击“登录”后的显示结果是( C )。(选择一项) login.jsp页面代码如下: <form action="display.jsp"> <input type="text" name="u1" value="admin1"/> <input type="text" name="u2" value="admin2"/> <input type="submit" value="登录"/> </form> display.jsp页面代码如下: <% request.setAttribute("x","admin3"); request.getRequestDispatcher("success.jsp").forward(request,response); %> success.jsp页面代码如下: <%=request.getParameter("u1")%> <%=request.getAttributer("x")%> |
|
A. |
admin1 admin2 |
|
B. |
admin1 null |
|
C. |
admin1 admin3 |
|
D. |
null admin3 |
26. |
如下JSP代码输出集合中各元素,横线处应填写( AC )。(选择二项) <% List<String> strs= new ArrayList<String>(); strs.add("北京"); strs.add("上海"); strs.add("浙江"); request.setAttribute("strs",strs); %> <c:forEach var="strList" items="___________"> <c:out value="________"></c:out> </c:forEach> |
|
A. |
${strs},${strList} |
|
B. |
${strList},${strs} |
|
C. |
${requestScope.strs},${strList} |
|
D. |
${strList}, ${requestScope.strs} |
27. |
假设当前为2013年4月15日,则如下JSP代码输出结果为( A )。(选择一项) <%@page import="java.util.Date"%> <%@ page import ="java.text.SimpleDateFormat"%> <% SimpleDateFormat formater=new SimpleDateFormat("yyyy年MM月dd日"); String strTime = formater.format(new Date()); %> <%=strTime%> |
|
A. |
2013年04月15日 |
|
B. |
2013年05月15日 |
|
C. |
13年4月15日 |
|
D. |
编译错误 |
28. |
以下JSP关键代码的功能为输出"姓名:陈小斌",横线处应填写( AC ).(选择二项) <% Map stus = new HashMap(); stus.put("stu1","王晓"); stus.put("stu2","黄青"); stus.put("stu3","陈小斌"); request.setAttribute("stuList",stus); %> 姓名:____________ |
|
A. |
${stuList.stu3} |
|
B. |
${stuList[stu3]} |
|
C. |
${stuList["stu3"]} |
|
D. |
${stuList."stu3"} |
29. |
如下JSP代码输出集合中各元素,横线处应填写( AC )。(选择二项) <% List<String> strs= new ArrayList<String>(); strs.add("北京"); strs.add("上海"); strs.add("浙江"); request.setAttribute("strs",strs); %> <c:forEach var="strList" items="___________"> <c:out value="________"></c:out> </c:forEach> |
|
A. |
${strs},${strList} |
|
B. |
${strList},${strs} |
|
C. |
${requestScope.strs},${strList} |
|
D. |
${strList}, ${requestScope.strs} |
30. |
在部署带有Servlet的Java Web程序时,( D )不是必需的。(选择一项) |
|
A. |
web.xml文件 |
|
B. |
WEB-INF文件夹 |
|
C. |
classes文件夹 |
|
D. |
csses文件夹 |
31. |
在JSP中,以下哪个方法可以正确获取复选框的值( C )(选择一项) |
|
A. |
request.getParameterValue() |
|
B. |
response.setParameterValues() |
|
C. |
request.getParameterValues() |
|
D. |
request.getParameter() |
32. |
JSP中的有很多内置对象可以方便程序开发,其中不包括( C )(选择一项) |
|
A. |
Out |
|
B. |
Request |
|
C. |
Redirect |
|
D. |
Response |
33. |
在一个jsp页面中包含了这样一种页面元素,<% int i = 10; %>这是( B )(选择一项) |
|
A. |
表达式 |
|
B. |
小脚本 |
|
C. |
JSP指令 |
|
D. |
注释 |
34. |
在JSP中,以下( C )技术最适合实现购物车的存储(选择一项) |
|
A. |
Page |
|
B. |
Request |
|
C. |
Session |
|
D. |
Application |
35. |
在使用表单提交数据时,如果<form>标签的method属性未指定的时候,则以下说法中正确的是( B )(选择一项) |
|
A. |
默认为POST请求 |
|
B. |
默认为GET请求 |
|
C. |
默认为Fast请求 |
|
D. |
编译错误 |
36. |
如果要把一个“accp”字符串信息放在session对象里,则下列正确的是( A )(选择一项) |
|
A. |
session.setAttribute("message","accp"); |
|
B. |
session.setAttribute(message,"accp"); |
|
C. |
session.setAttribute("accp","message"); |
|
D. |
session.setAttributes("message","accp"); |
37. |
在JSP中,假设表单的method="post",在发送请求时中文乱码处理的正确做法是( A )(选择一项) |
|
A. |
request.setCharacterEncoding("utf-8"); |
|
B. |
response.setCharacter("utf-8"); |
|
C. |
request.setContentType("text/html;charset=utf-8"); |
|
D. |
response.setContentType("text/html;charset=utf-8"); |
38. |
在JSP中,对于数据的共享可通过不同的作用域对象实现,如果该数据仅限当前页面有效,可选择的作用域对象( A )。(选择一项) |
|
A. |
PageContext |
|
B. |
Request |
|
C. |
Session |
|
D. |
Application |
39. |
jsp中,对ServletRequest接口提供的setAttribute()方法共享数据,对此,以下说法正确的是( A )(选择一项) |
|
A. |
其原型是setAttribute(String key,Object value),第一个参数表示变量名称,第二个参数表示要存入的数据 |
|
B. |
其原型是setAttribute(Object value,String key),第一个参数表示变量名称,第二个参数表示要存入的数据 |
|
C. |
其原型是setAttribute(String key,String value),第一个参数表示变量名称,第二个参数表示要存入的数据 |
|
D. |
其原型是setAttribute(String value,List value),第一个参数表示变量名称,第二个参数表示要存入的数据 |
40. |
在JSP中,pageContext、request、session、application均提供了存取数据的通用方法,假设已经在session中存入了名为"currentUser"的User对象,则取出该数据的正确语句是( BC )(选择二项) |
|
A. |
User user = session.getAttribute("currentUser"); |
|
B. |
User user = (User)session.getAttribute("currentUser"); |
|
C. |
Object user = session.getAttribute("currentUser"); |
|
D. |
String user = (String)session.getAttribute("currentUser"); |
三、 判断题
- JSP引擎执行字节码文件的主要人物之一是直接将HTML内容发给客户端。(T)
- JSP页面中的变量和方法声明(Declaration)、表达式(Expression)和Java程序片(Scriptlet)统称为JSP标记。(T)
- JSP页面中的指令标记、JSP动作标记统称为脚本元素。(F)
- 在“<%!”和“%>”标记之间声明的Java的变量在整个页面内有效,不同的客户之间不共享。(F)
- 在“<%!”和“%>”标记之间声明的Java的方法在整个页面内有效。(T)
- 页面成员方法不可以在页面的Java程序片中调用。(F)
- 程序片变量的有效范围与其声明位置有关,即从声明位置向后有效,可以在声明位置后的程序片、表达式中使用。(T)
- 程序片变量不同于在“<%!”和“%>”之间声明的页面成员变量,不能在不同客户访问页面的线程之间共享。(T)
- JSP中Java表达式的值由服务器负责计算,并将计算值按字符串发送给客户端显示。(T)
- 在Java程序片中可以使用Java语言的注释方法,其注释的内容会发送到客户端。(F)
- 不可以用一个page指令指定多个属性的取值。(F)
- jsp:include动作标记与include指令标记包含文件的处理时间和方式不同。(T)
- jsp:param动作标记不能单独使用,必须作为jsp:include、jsp:forward标记等的子标记使用,并为它们提供参数。(T)
- <jsp:forward...>标记的page属性值是相对的URL地址,只能静态的URL。(F)
- JSP页面只能在客户端执行。(F)
- JSP页面中不能包含脚本元素。(F)
- Page指令不能定义当前JSP程序的全局属性。(F)
- 在JSP中,<%!intc=5;out.print(c);%>此式正确.。(F)
- <jsp:getProperty>中的name及property区分大小写。(T)
- JSP主要的指令有page,import,include等三个(F)
- 当同时有多个请求发送到一个Servlet时,服务器将会为每个请求创建一个新的线程来处理客户端的请求。(T)
- HTML称为超文本元素语言,它是HypertextMarkedLanguage的缩写。(T)
- 一个HTML文档必须有<head>和<title>元素。(F)
- 超级链接不仅可以将文本作为链接对象,也可以将图像作为链接对象。(T)
- 表单域一定要放在<form>元素中。(T)
- 盒子模型中的top、right、bottom、left属性取值即可以是像素数,也可是百分比,并且只有父容器的position取值为非static值时才有效。(T)
- 用户在浏览器中输入http://127.0.0.1:8080/ch2/ch2_1.html即可访问本机上的该页面。(T)
- 在网页中图形文件与网页文件是分别存储的。(T)
- 绝度路径是文件名的完整路径;相对路径是指相对当前网页文件名的路径。(T)
- 超级链接<a>标记的target属性取值为链接的目标窗名,可以是parent、blank、self、top。(F)
- Tomcat服务器支持直接使用application对象。(F)
- out对象是一个输出流,它实现了javax.servlet.JspWriter接口,用来向客户端输出数据。(T)
- 利用response对象的sendRedirect方法只能实现本网站内的页面跳转,但不能传递参数。(F)
- JSP的Response对象作用是向客户端发送数据,但是一次会话过程,一个Response对象只能包含一个Coolie和一个HTTP文件头。否则抛出内存越界异常。(F)
- 在MVC模式中,因为Servlet负责创建JavaBean,所以JavaBean的构造函数可以带有参数,除了保留get和set规则外,还可以有其他功能的函数。(T)
- JSP是Servlet的升级版本,JSP出来后,Servlet也就退出了历史的舞台。(F)
- JSP输出表达式,正确的语法规则是<%=表达式%>。(T)
- JavaBean的属性可读写,编写时set方法和get方法必须配对。(F)
- JavaBean也是Java类,因此也必须有主函数。(F)
- 和过滤器相关的接口主要有:Filter、FilterConfig和FilterChain。(T)
四、 简答题
- 相比servlet,jsp的优势在哪里?
- 画图说明访问a.jsp的整个流程。
- <% %>是java代码块的语法。如果在jsp文件中写多个代码块,它们都是位于_jspService方法里吗?
- 看代码解决问题:
<%
a) int c = 10;
%>
<%
b) int d = c+10; //这个代码块能引用上个代码块的变量吗?说出理由。
%>
五、 编码题
1、编写程序实现登录功能
要求:
1)页面使用jsp表单提交,包含姓名和密码
2)提交目的地为Servlet,在Servlet中获得表单提交的数据
3)在Servlet中判断,如果姓名是“张三”,密码是“123”,返回客户登录成功
4)写出核心代码即可
JSP:
<form action="login" method="post">
<table>
<tr>
<td>姓名</td>
<td>
<input type="text" name="uname">
</td>
</tr>
<tr>
<td>密码</td>
<td>
<input type="text" name="pwd">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" value="登录">
</td>
</tr>
</table>
</form>
Servlet:
public class LoginServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
doPost(req, resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
req.setCharacterEncoding("utf-8");
String name = req.getParameter("uname");
String pwd = req.getParameter("pwd");
System.out.println(name + "=" + pwd);
resp.setContentType("text/html;charset=utf-8");
if (name.equals("张三") && pwd.equals("123"))
{
resp.getWriter().println("登录成功");
} else
{
resp.getWriter().println("登录失败");
}
}
}
web.xml配置
<servlet>
<servlet-name>login</servlet-name>
<servlet-class
>com.guangsoft.LoginServlet</servlet-class
>
</servlet>
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>