1下列有关 Servlet的生命周期,说法不正确的是
A、Servlet只能在容器初始化的时候被实例化,且一个容器有且仅有一个该 Servlet实例
B、在 Servlet生命周期的服务阶段,执行 service()方法,根据用户请求的方法,执行相应的 doGet()或是 doPost()方法
C、在 Servlet的生命周期中,init()、destroy()方法只能被容器调用一次。分别在容器启动加载 Servlet及停止卸载 Servlet时
D、在销毁阶段,执行destroy()方法后系统立刻进行垃圾回收(过一会在回收)
正确答案:D
2在web.xml中,下列哪些是合法的Servlet映射地址配置?
A、 (/)employee/main.do
B、 /employee/(.do之前不能有反斜杠).do
C、 employee/*
D、 /.do
E、 /employee/main.do
F、 employee/.do
正确答案:E
3下面给出的类中,与HttpServletRequest在结构上具有相似之处的是:
A、Vector
B、HashMap
C、ArrayList
D、Collection
正确答案:B
4以下是web.xml文档的一部分:
Display
com.ttc.DisplayServlet
2
Search
/search/search.jsp
1
5请问以上web.xml文档中的设置是指示服务器首先装载和初始化哪个servlet
(load-on-startup 的值越小越先启动)
A、 Display
B、 com.ttc.DisplayServlet
C、 由search.jsp生成的servlet
D、 search.jsp
正确答案:C
6JSP编译后Scriptlet会被插入到()方法中
A、_jspService() html加载
B、_jspInit() 初始化
C、doPost()distry
D、jspDestroy()
正确答案:A
7下边的说法哪一个是正确的
A、JSP中不能写Java语句
B、JSP可以写入到C++中
C、JSP技术是基于Java技术的基础上,因此它是平台独立的(平台指的的是操作系统)
D、JSP不能利用面相对象语言
正确答案:C
8当在JSP文件中要使用到ArrayList对象时,应在JSP文件中加入以下哪个语句
A、<%@ page import=”java.util.” />
B、
C、
D、<%@ page include=”java.util.
正确答案:A
9将Cookie对象保存到浏览器客户端的方法是
A、session.addCookie(cookie);
B、filterConfig.addCookie(cookie);
C、application.addCookie(cookie);
D、request.addCookie(cookie);
E、response.addCookie(cookie);
F、servletConfig.addCookie(cookie);
正确答案:E
10如果Tomcat安装后,想要修改它的端口号,可以通过修改
A、tomcat-user.xml
B、server-minimal.xml
C、server.xml
D、web.xml
正确答案:C
11下面哪一个选项不是HTTP响应的一部分
A、响应正文
B、响应头
C、协议版本号
D、状态行
正确答案:C
12如下哪些情况下会话对象HttpSession被销毁
A、404响应生成
B、执行会话对象的removeAttribute()方法
C、HTTP请求正常结束
D、使用response对象执行重定向
E、HTTP响应正常结束
F、关闭Web服务器
正确答案:F
13一个过滤器的过滤URL配置为”/admin/*”, 如下哪些URL请求会被过滤
A、/base/admin/main.jsp
B、/admin.do
C、/admin.jsp
D、/image/admin/tu.jpg
E、/admin/login.do
正确答案:E
14以下HTTP响应状态码的含义描述正确的是?
A、500 内部服务器错误,无法处理请求
B、400 不良请求表示服务器未发现与请求URI匹配的内容。
C、200 OK 表示请求成功
D、404 未发现表示由于语法错误而导致服务器无法理解请求信息
正确答案:C
15对于自己编写的Servlet1,以下对Servlet1的定义正确的是()
A、class Servlet1 extends javax.servlet.GenericServlet
B、class Servlet1 extends javax.servlet.ServletRequest
C、class Servlet1 extends javax.servlet.http.HttpServlet
D、class Servlet1 implements javax.servlet.Servlet
正确答案:C
16查看下列JSP内容:
<% for ( int i = 0 ; i < 3 ; i ++){ %>
out.print( i * 2);
<% } %>
当这个JSP运行时,其结果是什么:
A、 显示出 0246
B、 显示 out.print(i2); 一次
C、 显示出 024
D、 此JSP因为语法错误,无法运行'
E、 显示 out.print(i2); 三次
正确答案:E
17当在JSP文件中要使用到ArrayList对象时,应在JSP文件中加入以下哪个语句
A、
B、<%@ page import=”java.util.” />
C、<%@ page include=”java.util.” />
D、
正确答案:B
18下面哪个EL表达式能得到请求的URI:
A、{pageContext.request.requestURI} B、{requestScope.request.requestURI}
C、{request.requestURI} D、{requestScope.requestURI}
正确答案:A
问答题
1、 HttpServletRequest对象的getAttribute方法和getParameter方法有什么区别?
参考答案:
getAttribute方法用来获取请求作用域中的数据。
getParameter方法用来获取请求报文中的参数信息。
2、简述Servlet对象生命周期
参考答案:
1.加载
2.实例化
3.初始化init( )
4.处理客户请求
5.销毁destroy( )
题目解析:
3、 简述请求转发和请求重定向的java实现及两者区别。
参考答案:
相同点:都能实现资源调转。--1分
不同点:
1、重定向中,请求与响应的次数都是两次,而请求转发则为一次;
2、重定向会使客户端浏览器地址栏URL发生变化,而请求转发则不会改变地址栏的原有URL;
3、重定向可以跳转到其他web应用中的资源,而请求转发只能在本应用中资源中调转。
4、在性能上,请求转发要优于重定向,因为是由服务器端直接跳转;
4、 在服务器端如何设置可以使Cookie信息保存在客户端浏览器的缓存中,什么情况下保存在客户端的硬盘上?
参考答案:
在
在服务器端调用Cookie对象的setMaxAge(int time)方法,当参数time取值大于0时,cookie会被保存在客户端的硬盘上,当取值小于等于0时,cookie会被保存在浏览器的临时内存中,默认保存在浏览器临时内存。
5、JSP中都可以包含哪些元素?
参考答案:
静态内容(DHTML和数据)、脚本元素(指令、声明、Scriptlet、表达式、注释)、标准动作、EL表达式、JSP自定义标签。
6、 简述编写过滤器的步骤
参考答案:
1、声明过滤器类并让其实现Filter接口。
2、实现init()方法,读取过滤器的初始化参数。
3、实现doFilter()方法,实现对请求或响应的过滤操作。通常在过滤操作之后,会调用
该方法的FilterChain参数的doFilter()方法,来继续调用链上的下一个节点。
4、实现destory()方法,完成资源释放等操作。
7、HTTP是一种无状态的连接协议,web应用中,是采用什么手段,知道两次请求是同一个用户发出的?
参考答案:
可以临时使用cookie保存session id。如果客户端禁止cookie,可以使用URL重写,在URL中保存session ID。
8、 至少列举JSP中四种常用的内置对象,并说明该对象的作用。
参考答案:
1)request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。
2)response对象:response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。
3)session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。
4)out对象:out对象是JspWriter类的实例,是向客户端输出内容常用的对象.
5)page对象:page对象就是指向当前JSP页面本身,有点象类中的this指针.
6)application对象:application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。
7)exception对象:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。
8)pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
9)config对象:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
9 什么是XML?
参考答案:
XML 是可扩展标记语言,其中所有的东西都要被正确的标记,以产生形式良好的文档。
10 JSP中都可以包含哪些元素?
静态内容(DHTML和数据)、脚本元素(指令、声明、Scriptlet、表达式、注释)、标准动作、EL表达式、JSP自定义标签。
11 JSP中的<% %>和<%= %>有什么区别?
参考答案:
<% %>称为页面脚本,可以包含任何符合语法的Java代码,可以同时包含多行代码。而<%=%>称为输出脚本,=号后面是一个表达式,表达式后面不使用分号结束,表达式的值将被输出到浏览器中,每个<%= %>只能包含一个表达式。
12请描述HttpServletResponse对象的作用?列出两个常用方法和说明?
参考答案:
HttpServletResponse对象由服务器创建,映射Http响应报文的内容。
作用:
向客户端输出响应信息;
设置响实现请求重定向;
应报文实体部分的编码方式。
主要方法:
setContentType(String type):设置响应信息的内容类型。
setCharacterEncoding(String encode):设置响应报文实体部分的编码方式。
sendRedirect(String url):实现请求重定向。
13在服务器端如何设置可以使Cookie信息保存在客户端浏览器的缓存中,什么情况下保存在客户端的硬盘上?
参考答案:
在服务器端调用Cookie对象的setMaxAge(int time)方法,当参数time取值大于0时,cookie会被保存在客户端的硬盘上,当取值小于等于0时,cookie会被保存在浏览器的临时内存中,默认保存在浏览器临时内存。
14HTTP是一种无状态的连接协议,web应用中,是采用什么手段,知道两次请求是同一个用户发出的?
参考答案:
可以临时使用cookie保存session id。
编程题
读程序,按要求补全横线处代码。
要求如下:
1)、在input.jsp页面中提供一个可以输入姓名(name=username)、密码(name=pwd)、爱好(name=favorite,包括读书、游泳、爬山、听音乐、看电影)的表单。表单数据不能显示在浏览器地址栏中。
2)、创建InputServlet,用来获取input.jsp页面中用户输入的信息,并获取当前系统时间。
3)、创建output.jsp文件,使用请求转发的方式实现跳转,从InputServlet跳转到output.jsp文件。
4)、在output.jsp文件输出如下格式的信息:用户,您的爱好为、**,欢迎您于yyyy-MM-dd访问本页面!
5)、InputServlet的url mapping设置为:/process/input
6)、需处理中文乱码问题。
<%--如下为input.jsp文件参考代码--%>
<%@page language="java" contentType="____(1)_______" pageEncoding="____(2)________" %>
/* 如下为InputServlet.java参考代码 */
public class InputServlet extends ____(6)________{
protected void doGet(____(7)________,____(8)________)throws ServletException,IOException{
____(9)________
}
protected void doPost(____(7)________,____(8)________) throws ServletException,IOException{
//在读取信息之前,先进行编码转换
____(10)________
//读取表单参数:用户姓名
____(11)________
//读取表单参数:用户爱好
____(12)________
StringBuffer fa = new StringBuffer();
if(favorite!=null){
for(int i=0;i< favorite.length;i++){
fa.append(favorite[i]);
if(i< favorite.length-1)
fa.append("、");
}
}
//获取系统当前时间
Date d = new Date();
//格式化日期对象d
____(13)________
String date=sf.format(d);
//向请求对象中存入用户姓名
____(14)________
//向请求对象中存入用户爱好
____(15)________
//向请求对象中存入系统当前时间
____(16)________
//把请求转发到output.jsp
____(17)________
}
}
<%--如下为output.jsp文件参考代码--%>
<%@page language="java" contentType="(1)____" pageEncoding="UTF-8" %>
(1)____">
____(18)________用户,
您的爱好为____(19)________,
欢迎您于____(20)________访问本页面
参考答案:
- text/html;charset=UTF-8
、 - UTF-8
、 - /process/input
、 - post
、 - checkbox
、 - HttpServlet
、 - HttpServletRequest request
、 - HttpServletResponse response
、 - doPost(request,response);
、 - request.setCharacterEncoding(""UTF-8"");
、 - String username=request.getParameter("username");
、 - String[] favorite=request.getParameterValues("favorite");
、 - SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
、 - request.setAttribute("username",username);
、 - request.setAttribute("favorite",fa);
、 - request.setAttribute("now",date);
、 - request.getRequestDispatcher("/output.jsp").forward(request,response);
、 - <%=request.getAttribute("username") %>
、 - <%=request.getAttribute("favorite") %>
、 - <%=request.getAttribute("now") %>
2、在JSP/Servlet中,如果对项目中所有请求添加编码过滤器,设置编码为utf-8,需要编写两部分代码为:web.xml的配置文件和java代码。
1、 [ 问答题 ]
配置文件如下,补全过滤器部分即可:
.....
参考答案:
filter --1分
filter-mapping--1分
2、过滤器代码如下:
public class _______________________________________ {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//TODO
}
public void destroy() {
}
}
1、在横线处填入方法声明
2、在TODO处补全过滤器代码,实现将用户请求和相应的编码统一为UTF-8。
参考答案:
1、SetCharacterEncodingFilter implements Filter
方法名与上一问,配置文件一致1分
2、
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 传递控制到下一个过滤器
chain.doFilter(request, response);