WEB复习题求答案

WEB复习题
1 在servlet的服务方法(如doPost())中,如何从请求获得”User-Agent”首部的值?(选出所有正确答案)
A String userAgent = request.getParameter(“User-Agent”);
B String userAgent = request.getHeader(“User-Agent”);
C String userAgent = request.getRequestHeader(“Mozilla”);
D String userAgent = getServletContext().getInitParameter(“User-Agent”);

2 假设request是一个HttpServletRequest, 以下哪一个代码会得到一个二进制输入流(选出所有正确答案)
A BinaryInputStream s = request.getInputStream();
B ServletInputStream s = request.getInputStream();
C BinaryInputStream s = request.getBinaryStream();
D ServletInputStream s = request.getBinaryStream();

3 servlet开发人员在扩展HttpSerlvet时如何处理HttpServlet的service()方法? (选出所有正确的答案)
A 大多数情况下应当覆盖service()方法
B 应当从doGet()或doPost()调用service()方法
C 应当从init()调用service()方法
D 应当至少覆盖一个doXXX()方法(如doPost())

4 关于ServletContext初始化参数,以下哪些说法是正确的? (选出所有正确答案)
A 应当用于很少改变的数据
B 应当用于经常改变的数据
C 可以使用ServletContext.getParameter()来访问
D 可以使用ServletContext.getInitParameter()来访问
E 应当用于一个特定servlet相关的数据
F 应当用于适用于整个Web应用的数据

5 关于监听者,以下哪些说法是正确的? (选出所有正确答案)
A 发送一个servlet响应时,ServletResponseListener可以用于完成一个动作
B HttpSession超时时,HttpSessionListener可以用于完成一个动作
C servlet上下文要关闭时,ServletContextListener 可以用于完成一个动作
D 从ServletRequest删除一个属性时,SerletRequestAttributeListener可以用于完成一个动作
E 已经创建servlet上下文,,而且可以为第一个请求服务时,ServletContextAttributeListener可以用于完成一个动作

6 哪些最适合存储为会话作用域的属性? (选出所有正确答案)
A 用户输入的查询参数的一个副本
B 直接返回个用户的数据库查询结果
C 系统所有Web组件使用的一个数据库连接对象
D 表示刚刚登录系统的一个用户对象
E 从ServletContext对象获取的初始化参数的一个副本

7 关于RequestDispatcher,以下哪些说法是正确的?(假设RequestDispatcher不是通过getNamedDispatcher()得到的, 选出所有正确答案)
A RequestDispatcher可以用于把请求转发到另一个servlet
B RequestDispatcher接口中只有一个方法,即forward()
C 查询串中指定用于创建RequestDispatcher的参数不会由forward()方法转发
D 接收转发请求的servlet可以通过调用ServletRequest上的getQueryString()方法转发
E 接收转发请求的servlet可以通过调用ServletRequet上的getAttribute(“javax.servlet.forward.query_string”)方法来访问原来的查询串

8 哪些说法准确的描述了servlet容器为每个Web应用实例化多少个servlet实例? (选出所有正确答案)
A 如果servlet实现了javax.servlet.SingleThreadModel, 容器会为每个请求创建一个实例
B 如果servlet没有实现SingleThreadModel, 容器会在同一个JVM中创建servlet的多个实例
C <load-on-startup> web.xml元素可以确定创建多少个实例
D 如果servlet没有实现SingleThreadModel, 容器会在每个JVM中仅创建一个实例

9 对于处理servlet和线程安全, 推荐以下哪种做法? (选出所有正确答案)
A 编写servlet代码来扩展ThreadSafeServlet
B 让servlet实现SingleThreadModel
C 为所有servlet方法调用建立日志纪录
D 完全使用局部变量, 如果必须使用实例变量, 则同步对实例变量的访问

10 关于HttpSession对象,以下哪些说法是正确的? (选出所有正确答案)
A 会话的超时时间设置为-1, 则永远不会到期
B 一旦用户关闭所有浏览器窗口, 会话就会立即无效
C 在servlet容器定义的超时时间之后, 会话会无效
D 可以调用HttpSession.invalidateSession()置会话无效


11 关于会话跟踪,以下哪些说法是正确的? (选出所有正确答案)
A 服务器可以使用URL重写作为基础来完成会话跟踪
B SSL有一个内置的机制, servlet容器可以使用这个机制来得到定义会话所用的数据
C 使用cookie完成会话跟踪时, 对于会话跟踪cookie的名字没有任何限制
D 使用cookie完成会话跟踪时, 会话跟踪cookie的名字必须是JSESSIONID
E 如果用户在浏览器中禁用cookie, 容器可以使用javax.servlet.http.CookielessHttpSession对象来跟踪用户的会话

12 关于会话属性, 以下哪些说法是正确的? (选出所有正确答案)
A HttpSession.getAttribute(String)的返回类型是Object
B HttpSession.getAttribute(String)的返回类型是String
C 绑定到会话的属性可以由属于同一个ServletContext的其他servlet访问
D 在一个HttpSession上调用setAttribute(“keyA”,”valueB”)时, 如果这个会话中对应的键keyA已经有一个值,就会导致抛出一个异常
E 在一个HttpSession上调用setAttribute(“keyA”,”valueB”)时,如果这个会话中对应键keyA已经有一个值,则会导致这个属性原先的值被String valueB替换

13 哪些指令指定一个HTTP响应的类型是”image/svg”? (选出所有正确答案)
A <%@page type=”image/svg”%>
B <%@page mimeType=”image/svg”%>
C <%@page contextType=”image/svg”%>
D <%@page pageEncoding=”image/svg”%>
E <%@page language=”image/svg”%>

14 关于jspInit(), 以下哪些说法是正确的? (选出所有正确答案)
A 能访问ServletConfig
B 能访问ServletContext
C 只能调用一次
D 可以覆盖

15 有关JSP, 以下哪些说法是正确的? (选出所有正确答案)
A 只有jspInit()能覆盖
B 只有jspDestroy()能覆盖
C 只有_jspService()能覆盖
D jspInit()和jspDestroy()都能覆盖
E jspInit(),jspDestroy()和_jspService()都能覆盖

16 给定一个HTML表单,其中使用了复选框,以便用户为一个名为hobbies的参数选择多个值
以下哪个表达式能计算得到hobbies参数的第一个值? (选出所有正确答案)
A ${param.hobbies}
B ${paramValue.hobbies}
C ${paramValues.hobbies[0]}
D ${paramValues.hobbies[1]}
E ${paramValues[hobbies][0]}
F ${paramValues[hobbies][1]}

17 给定一个Web, 它把网站管理员的email地址存储在一个名为master-email的servlet上下文初始化参数中, 怎么得到这个值? (选出所有正确答案)
A <a href=’mailto:${initParam.master-email}’>email me </a>
B <a href=’mailto:${contextParam.master-email}’>email me </a>
C <a href=’mailto:${initParam[‘master-email’]}’>email me </a>
D <a href=’mailto:${contextParam[‘Param.master-email’]}’>email me </a>

18 有关<jsp:userBean>标准动作,以下哪些说法是正确的? (选出所有正确答案)
A id属性是可选的
B scope属性是必要的
C scope属性是可选的,默认为request
D class或type属性是可以指定的,但至少有一个
E 可以同时包括class属性和type属性, 不过它们的值可以不一样

19 关于TLD文件的哪个说法是正确的? (选出所有正确答案)
A TLD文件可以放在WEB-INF的任何子目录下
B TLD文件用于配置JSP环境属性,如scripting-invalid
C TLD文件可以放在war文件的META-INF目录中
D TLD文件可以声明简单和传统标记,但是TLD文件不能用来声明标记文件
E TLD文件能发在/WEB-INF/lib中的一个JAR文件的/META-INF目录下

20 JavaBean Person有一个名为address的性质. 这个性质的值是另一个JavaBean Address,它有以下串性质: street1, street2, city, stateCode和zip-Code. 一个控制器servlet创建了一个会话作用域属性,名为customer,这是Person bean的一个实例.
哪些JSP代码结构会把customer属性的city性质设置为city请求参数? (选出所有正确答案)

A ${sessionScope.customer.address.city=param.city}
B <c:set target=”${sessionScope.customer.address}”
property=”city” value=”${param.city}” />
C <c:set scope=”session” var=”${customer.address}”
property=”city” value=”${param.city}”>
D<c:set target=”${sessionScope.customer.address}”
Property=”city”>
${param.city}
</c;set>

21 给定以下scriptlet代码
<select name=”styleId”>
<% BeerStyles[] styles = beerService.getStyles();
for( int i=0; i< styles.length; i++){
BeerStyle style = styles[i];
%>
<option value=’<%=style.getObjectID() %>’>
<%= style.getTitle()%>
</option>
<%
}
%>
</select>
哪个JSTL代码段会生成同样的结果?

A <select name=”styleId”>
<c:for array=’${beerService.styles}’>
<option value=’${item.objectID}’>${item.title}</option>
</c:for>
</select>
B <select name=”styleId”>
<c:forEach var=”style” items=’${beerService.styles}’>
<option value=’${style.objectID}’>${style.title}</option>
</c:forEach>
</select>
C <select name=”styleId”>
<c:for var=”style” array=’${beerService.styles}’>
<option value=’${style.objectID}’>${style.title}</option>
</c:for>
</select>
D <select name=”styleId”>
<c:forEach var=”style” array=’${beerService.styles}’>
<option value=’${style.objectID}’>${style.title}</option>
</c:forEach>
</select>
22 部署描述文件(DD)的作用是什么? (选出所有正确答案)
A 允许代码生成工具根据一个XML文件动态地创建servlet
B 从开发人员把Web应用配置信息传递个应用组装人员和部署人员
C 配置应用中特定于开发商的方面
D 只配置对Web应用的数据库和EJB访问
23 关于过滤器,哪些说法是正确的? (选出所有正确答案)
A 过滤器只能过滤请求或响应对象,但不能二者同时应用
B destory方法始终是容器回调方法
C doFilter方法始终是容器的回调方法
D 过滤器只能通过一种途径调用,就是通过DD中的声明
E 过滤器链中的下一个过滤器可以由前一个过滤器指定,或在DD中指定
24 给定一个过滤器实现中的以下方法: (这个过滤器实现的定义可能正确,也可能不正确)
Public void doFilter(ServletRequest req, ServletResponse response
FilterChain chain)
Throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpSession session = request.getSession();
Object user = sessioin.getAttribute(“user”);
if(user != null){
UserRequest ureq = new UserRequest(request,user);
chain.doFilter(ureq,response);
}
else{
RequestDispatcher rd = request.getRequestDispatcher(“/login.jsp”);
rd.forward(request,response);
}
}
哪些说法是正确的?
A 如果执行第31行, 总会抛出一个异常
B 第28行不对, 因为必须把request作为第一参数传递
C 必须把chain.doFilter(request,response)插入到else块中的某个位置
D 这个方法没有正确的实现Filter.doFilter(), 因为方法签名是错误的
E 以上都不对
25 下面这句话描述了一种设计模式可能带来的好处
对于Web应用中到来的请求和发出的响应,这些组件可以完成预处理或后处理,如果应用需要这些组件的特定功能,能够”干净利索”地将它们插入到应用中.这里描述的是哪一种设计模式?
A 传输对象
B 拦截过滤器
C 模型—视图—控制器
D 业务委托
E 前端控制器
26 给定部署描述文件的以下部分
<context-param>
<param-name>email</param-name>
<param-value>foo@bar.com</param-value>
</context-param>
<servlet>
<servlet-name>a</serlvet-name>
<serlvet-class>com.bar.Foo</serlvet-class>
<init-param>
<param-name>email</param-name>
<param-value>baz@bar.com</param-value>
</init-param>
</servlet>
假设scfg是一个ServletConfig对象, sctx是一个ServletContext对象,以下哪个说法是正确的?
A sxtx.getInitParameter(“email”)会返回baz@bar.com
B scfg.getInitParameter(“email”)会返回foo@bar.com
C 会出现一个错误,因为email参数定义了两次
D scfg.getServletContext().getInitParameter(“email”)会返回baz@bar.com
E scfg.getServletContext().getInitParameter(“email”)会返回foo@bar.com
F 会产生一个错误,因为servlet上下文初始化参数应当使用inti-param定义,而不是context-param
27 关于EL隐式对象,以下哪些说法是正确的? (选出所有正确答案)
A ${param.name}能得到参数name的值
B ${inti.foo}能得到名为foo的上下文初始化参数的值
C 隐式对象param是一个Map, 它将参数名映射到各个String参数值
D pageContext, param, header和cookie隐式对象都能在JSP页面的EL表达式中使用
E page, request, session和application隐式对象都将属性名映射到相应作用域中的值
28你把完成web数据库工作的SQL源文件放在Web应用的顶层sql目录,但不希望HTTP请求直接访问这个目录,如何配置Web应用来禁止直接请求这个目录? (选出所有正确答案)
A 用一个防火墙保护服务器
B 在部署描述文件中用一个<security-role>元素指定目录
C 把该目录移到WEB-INF下面,WEB-INF目录下的内容不允许应用用户直接访问
D 在部署描述文件中创建一个<security-constrain>元素,禁止访问sql目录
29 会话一旦置为无效, 在该会话上还能正常调用哪个HttpSession方法而不会抛出IllegalStateException? (选出所有正确答案)
A invalidate
B getAttribute
C setAttribute
D getServletContext
E getAttributeNames
30 关于置一个servlet的doGet()方法为同步,以下哪些说法是正确的? (选出所有正确答案)
A 这样访问ServletRequest属性就是线程安全的
B 不能保证访问HttpSession属性是线程安全的
C 可能会对性能有负面影响,因为servlet一次只能处理一个请求
D 如果方法要使用HttpSession.getAttribute()或HttpSession.setAttribute(),这就是必须的
E 如果方法要使用ServletContext.getAttribute()或ServletContext.setAttribute(),这就是必须的

31 给定以下URL
http://www.example.com/userConfig/searchByName.do?first=Bruce&middle=W&last=Peery
对于一个服务方法(例如doPost()), 以下哪个servlet代码片段能获取所有查询串参数的值
A String value = request.getParameter(“Bruce”);
B String value = getServletContext().getInitParameter(“first”);
C String value = getServletConfig().getInitParameter(“first”);
D java.util.Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){
String name = (String) enum.nextElement();
String value = request.getParameter(name);
}
E java.util.Enumeration enum = request.getParameterNames();
while(enum.hasMoreElements()){
String value = (String) enum.nextElement();
32 给定以下TLD片段:
<tag>
<name>getTitle</name>
<tag-class>com.example.taglib.GetTitleTagHandler</tag-class>
<body-content>empty</body-content>
<attribute>
<name>story</name>
<required>false</required>
</attribute>
</tag>
<tag>
<name>printMessage</name>
<tag-class>com.example.taglib.PrintMessageTagHandler</tag-class>
<body-content>JSP</body-content>
<attribute>
<name>section</name>
<required>true</required>
</attribute>
</tag>
在JSP中,哪些是合法的标记调用? (选出所有正确答案)
A <my:getTitle>
<my:printMessage />
</my:getTitle>
B <my: printMessage section=”47”>
<my:getTitle />
</my:printMessage>
C <my:getTitle story=””>
<my: printMessage section=”47” />
</my:getTitle>
D <my:printMessage section=”47”>
<my: getTitle story=”Shakespear_RJ”></my:getTitle>
</my:printMessage>
(BD)
32 调用jspInit()之前要有哪些步骤? (选出所有正确答案)
A 对类实例化
B 编译Java源文件
C 调用_jspService()方法
D JSP页面转换为源文件
E 调用jspCreate()方法
F 容器提供一个ServletConfig引用
(ABDF)
33 你购买了一个订单Web应用, 它采用程序方式实现授权机制, 但是你的公司并没有其中所用的安全角色, 要让这个Web应用在你的公司里运行起来, 必须使用哪个部署描述文件元素?
A <login-config>
B <security-role>
C <security-role-ref>
D <security-constraint>
(C)

34 容器将一个会话从一个VM迁移到另一个VM时会发生什么?
A sessionWillPassivate() 会在所有实现了HttpSessionActivatioinListener 接口而且当前绑定到会话的对象上调用
B sessionWillPassivate() 会在所有实现了HttpSessionPassivationListener接口而且当前绑定到会话的对象上调用
C sessionWillPassivate() 会在所有实现了HttpSessionListener 接口的对象上调用
D sessionWillPassivate() 会在所有实现了HttpSessionBindingListener 接口的对象上调用
(A)

35 可以使用哪种类型的监听者在用户登录系统是纪录用户名? (选出所有正确答案)
A HttpSessionListener
B ServletContextListener
C HttpSessionAttributeListener
D ServletContextAttributeListener
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值