赞
踩
1、
下面选项中, 可用于获取Web应用的初始化参数的所有参数名的方法是(A)
1分
• A、getInitParameterNames()
• B、getInitParameter(String name)
• C、getInitParameter()
• D、getParameter(String name)
2、
下面关于客户端访问Tomcat服务器中的某个静态HTML文件时的说法中,正确的是(B)
1分
• A、直接访问HTML等静态资源
• B、先访问缺省Servlet,由缺省Servlet再决定定位静态资源
• C、先访问HTML静态资源,再访问缺省Servlet
• D、以上说法都不对
3、
HttpServlet类中,用来处理POST请求的方法是( C)
1分
• A、doHead
• B、doGet
• C、doPost
• D、doPut
4、
下面选项中, 配置整个Web应用的初始化参数名为companyName,值为itcast,写法正确的是(C)
1分
• A、 companyName itcast
• B、 companyName itcast
• C、 companyName itcast
• D、 itcast companyName
5、
下面选项中, 用于设置ServletContext的域属性的方法是(C)
1分
• A、setAttribute(String name,String obj)
• B、setParameter(String name,Object obj)
• C、setAttribute(String name,Object obj)
• D、setParameter (String name,Object obj)
6、
关于一个web.xml中可以配置的监听器的个数,正确的是(D)
1分
• A、0个
• B、1个
• C、0个或1个
• D、0个或多个
7、
下面选项中,与web应用有相同的生命周期的是(C)
1分
• A、Servlet
• B、ServletConfig
• C、ServletContext
• D、GenericServlet
8、
下面选项中, 用于根据指定名称获取ServletContext的域属性值的方法是(B)
1分
• A、String getAttibute(String name)
• B、Object getAttibute(String name)
• C、String getAttibute(Object name)
• D、Object getAttibute(Object name)
9、
下列类和接口中,哪个用于封装servlet的配置信息( C )
1分
• A、Servlet
• B、ServletContext
• C、ServletConfig
• D、GenericServlet
10、
下列关于作用的说法中,正确的是(A)
1分
• A、用于映射Servlet对外访问的虚拟路径
• B、指定Servlet类的路径
• C、设置Servlet名称
• D、以上都不对
11、
下面选项中, 用于根据指定名称删除ServletContext匹配的域属性的方法是(C)
1分
• A、void remove(String name)
• B、void removeAttribute(Object name)
• C、void removeAttribute(String name)
• D、Object removeAttribute(String name)
12、
下面选项中, 用于根据虚拟路径得到文件的真实路径的方法是(A)
1分
• A、String getRealPath(String path)
• B、URL getResource(String path)
• C、Set getResourcePaths(String path)
• D、InputStream getResourceAsStream(String path)
13、
在编写Servlet类时,可以继承父类并与协议无关的对象是(B)
1分
• A、Servlet
• B、GenericServlet
• C、HttpServlet
• D、ServletContext
14、
以下哪一个类可以获取Servlet的初始化参数(C)
1分
• A、Servlet
• B、ServletContext
• C、ServletConfig
• D、GenericServlet
15、
下面获取初始化参数encoding的写法中,正确的是(D)
1分
• A、Object obj = getInitParameter(String name)
• B、String encode = getInitParameterNames(String name)
• C、Enumeration enumers = getInitParameterNames()
• D、String encode = getInitParameter(String name)
16、
已知web.xml中存在如下配置:
2
下面的说法,正确的是(B)
1分
• A、在空闲状态下,2秒后将导致session对象销毁
• B、在空闲状态下,2分钟后将导致session对象销毁
• C、在空闲状态下,2毫秒后将导致session对象销毁
• D、在空闲状态下,2小时后将导致session对象销毁
17、
LoginServlet是一个Servlet类,代码如下
public class LoginServlet extends ___________ {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
…
}
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
…
}
}
在下划线处应填写(B)
1分
• A、Servlet
• B、HttpServlet
• C、GenericServlet
• D、Cookie
18、
开发中创建了一个Servlet,该Servlet重写了其父类的doGet()和doPost()方法,那么其父类可能是( D)
1分
• A、RequestDispatcher
• B、HttpServletResponse
• C、HttpServletRequest
• D、HttpServlet
19、
下面选项中,用于返回一个Enumeration对象并包含所有的初始化参数名的方法是(D)
1分
• A、String getInitParameter(String name)
• B、Object getInitParameter(String name)
• C、String getInitParameterNames(String name)
• D、Enumeration getInitParameterNames()
20、
下面选项中, 用于实现一个Web应用中的所有Servlet共享数据的对象是(B)
1分
• A、HttpSession
• B、ServletContext
• C、ServletConfig
• D、ServletRequest
21、
下面选项中,可以创建 ServletConfig对象的是(D)
1分
• A、客户端
• B、浏览器
• C、Servlet
• D、Web容器
22、
下面关于配置Web应用的缺省Servlet的说法中,正确的是(B)
1分
• A、可以将Servlet的映射路径配置为
• B、可以将Servlet的映射路径配置为/
• C、可以将Servlet的映射路径配置为
• D、可以将Servlet的映射路径配置为//
23、
在HttpServletRequest对象中,用于获取表单参数值的方法是( C )。
1分
• A、getQuaryString()
• B、getPathInfo()
• C、getParameter()
• D、getAttribute()
24、
下列关于ServletContext的说法中,错误的是( B )。
1分
• A、ServletContext对象用来保存当前Web应用中的所有信息
• B、在一个Web应用中可以有多个ServletContext对象。
• C、ServletContext接口封装了获取当前Web应用中资源文件的方法。
• D、ServletContext对象中保存的属性可以被Web应用中的所有Servlet访问。
25、
下面关于配置整个Web应用的初始化参数的说法中,正确的是(B)
1分
• A、使用来配置
• B、使用来配置
• C、使用来配置
• D、使用来配置
26、
下面选项中配置参数名为name,它的值为youjun,以下正确的配置是(C)
1分
• A、 name</param-name youjun
• B、 < name>name</name youjun
• C、 name</param-name youjun
• D、 name</param-name youjun </init- parameter>
27、
下面选项中,Servlet配置中代表当前Web应用程序的根目录的是(D)
1分
• A、
• B、//
• C、*
• D、/
28、
下列关于ServletConfig对象的说法中,正确的是( A )。
1分
• A、ServletConfig对象可以用来获取Servlet的配置信息。
• B、ServletConfig对象可以实现Servlet信息的共享。
• C、ServletConfig对象保存的信息是通过service()方法传递给Servlet的
• D、ServletConfig对象可以读取web.xml文件中所有的信息。
29、
下面关于Servlet配置信息的选项中,用来指定Servlet完整类名的是(B)
1分
• A、
• B、
• C、
• D、
30、
下面选项中,关于统计网站当前在线人数的计数器count变量应该保存的域范围是(C)
1分
• A、request
• B、session
• C、application
• D、page
多选题
31、
下面选项中, 属于元素的子元素是(CD)
2分
• A、
• B、
• C、
• D、
32、
下面方法中,用于获取ServletContext对象的方法是(AB)
2分
• A、getServletConfig().getServletContext()
• B、getServletContext()
• C、getServlet().getServletContext()
• D、response.getServletContext()
33、
下面选项中,属于web.xml文件中标签包含的子标签的是 (ABCD)
2分
• A、
• B、
• C、
• D、
34、
阅读下面的代码:
TestServlet01
cn.itcast.chapter04.servlet.TestServlet01
TestServlet01
/TestServlet01
TestServlet01
/Test01
下面选项中,可以访问chapter04应用下该Servlet的是(AC)
2分
• A、http://localhost:8080/chapter04/TestServlet01
• B、http://localhost:8080/chapter04/servlet/TestServlet01
• C、http://localhost:8080/chapter04/Test01
• D、http://localhost:8080/chapter04/servlet/Test01
35、
下面关于Servlet的多重映射的说法中,正确的是 (AB)
2分
• A、可以配置多个来实现
• B、可以在一个配置多个来实现
• C、可以在一个配置多个来实现
• D、以上都不正确
36、
下列选项中能正确实现一个servlet的方式有( ABC )(多选)
2分
• A、继承javax.servlet.http.HttpServlet类
• B、实现javax.servlet.Servlet接口
• C、继承javax.servlet. GenericServlet 类
• D、自定义一个类,命名为Servlet
37、
下面关于Servlet中url的配置方式,正确的是(ABD) (多选)
2分
• A、/my
• B、/my/*
• C、/.do
• D、.do
38、
下列关于servlet的说法中,正确的是(BC )(多选)
2分
• A、多个用户同时访问一个servlet时,也会为这个servlet创建多个实例
• B、当servlet对象被销毁时,由servlet容器调用destroy()方法释放资源
• C、servlet容器调用destroy()方法之后,它就再也不会调用这个servlet对象的service()方法了
• D、在servlet的一个生命周期中,service ()方法只会被调用一次
39、
下列选项中,可以填入横线处的是(BD) (多选)
LoginServlet
com.itcast.youjun.servlet.LoginServlet
LoginServlet
________
2分
• A、LoginServlet
• B、/LoginServlet/*
• C、loginServlet
• D、/loginServlet
40、
HttpServlet中定义的doGet和doPost方法的参数类型有哪些?(BC)
2分
• A、ServletRequest
• B、HttpServletRequest
• C、HttpServletResponse
• D、ServletResponse
56、
在web.xml文件中,/xxxxServlet中的第一个‘/’表示【当前Web应用程序的根目录】
57、
一个web.xml中可以配置监听器的个数是零个或【多个】
58、
在Servlet容器启动每一个web应用时,就会创建一个唯一的【ServletContext】对象,该对象和web应用具有相同的生命周期。
59、
ServletConfig对象是由 【Web容器(或Tomcat)】创建出来的。
60、
在RequestDispatcher接口中,实现请求转发的方法是【forward()】
61、
在Servlet开发中,实现了多个Servlet之间数据共享的对象是【ServletContext】
62、
已知监听器已配置好,工程部署并重新启动Web服务器,此时ServletContextListener中的 【contextInitialized()】方法将被调用。
63、
Servlet容器启动时,会为每个Web应用创建一个唯一的【ServletContext】对象代表当前Web应用。
64、
要配置Web应用的缺省Servlet,可以将Servlet的映射路径配置为。【/或正斜线】
65、
在web.xml文件中配置的初始化参数,可以通过 【ServletConfig】对象来读取。
1、
下列关于使用request.setAttribute()保存数据的说法中,正确的是(B )
1分
• A、不能共享
• B、可以在本次请求中共享
• C、可以在所有请求中共享
• D、不同客户端也可以共享
2、
如果请求消息中有多个指定名称的头字段,则有关getHeader(String name)方法返回值,说法正确的是( C )
1分
• A、多个指定名称头字段的一组值
• B、最后一个头字段所对应的值
• C、第一个头字段所对应的值
• D、将返回null
3、
访问如下的URL地址:
http://www.itcast.cn/HelloServlet?name=youjun&name=itcast&age=30
则在HelloServlet可以得到所有参数名的方法是( B )
1分
• A、request. getParameterMap();
• B、request. getParameterNames();
• C、request. getParameter ();
• D、request. getParameterValues();
4、
如果想要将页面传递来的用户名username为张三的数据存放在Requset对象中,以下哪种方式可以实现(C)
1分
• A、String username=request.getParameter(“张三”);
• B、String username=(String) request.getAttribute(“张三”);
• C、request.setAttribute(“username”, “张三”);
• D、request.removeAttribute(“张三”);
5、
下列关于HttpServletResponse对象的创建,说法正确的是( A )
1分
• A、由Servlet容器负责创建,对于每个HTTP请求的响应,Servlet容器都会创建一个HttpServletResponse对象
• B、由Java Web应用的Servlet或JSP组件创建,当Servlet或JSP组件响应HTTP请求时,先创建HttpServletResponse对象
• C、由程序员通过编码形式创建,以传递请求的数据
• D、以上都不对
6、
HttpServletRequest接口中用于获取某个指定名称的参数值的方法是( D )
1分
• A、Object getParameter(Object name)
• B、Object getParameter(String name)
• C、String getParameter(Object name)
• D、String getParameter(String name)
8、
HttpServletResponse接口中定义的SC_OK常量表示请求成功,其状态码是(D )
1分
• A、500
• B、400
• C、404
• D、200
9、
阅读下列的代码
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws
ServletException,IOException{
out.println(“hello kity!”);
}
若使Servlet运行的结果为hi kitty!,填写在空白处的代码为()
则应在此Servlet下划线处添加如下(A)代码。
1分
• A、PrintWriter out = response.getWriter();
• B、PrintWriter out request.getWriter();
• C、OutputStream out = response.getOutputStream();
• D、OutputStream out = request.getWriter();
10、
HttpServletResponse接口中表示状态码404,也就是没有找到资源的常量是(C)
1分
• A、SC_FORBIDDEN
• B、SC_OK
• C、SC_NOT_FOUND
• D、SC_CONFLICT
11、
下面关于实现重定向sendRedirect()方法的描述中,正确的是(B)
1分
• A、生成300响应码和Refresh响应头
• B、生成302响应码和Location响应头
• C、生成302响应码和Refresh响应头
• D、生成300响应码和Location响应头
12、
在HttpServletRequest接口中,getParameterValues(String name)方法的返回值类型是( B )
1分
• A、Object[]
• B、String[]
• C、String
• D、Object
13、
一次重定向过程中,浏览器会发出多少次服务器请求( B )
1分
• A、1次
• B、2次
• C、0次
• D、3次
15、
阅读下面代码片段:
Servlet1:
response.getWriter().write(“hello,servlet1”);
request.getRequestDispatcher().include(“Servlet2”);
Servlet2:
response.setHeader(“Refresh”,”1”);
response.getWriter().write(“,servlet2”);
下面选项中,关于运行结果说法正确的是( A )
1分
• A、正常显示:hello,servlet1,servlet2
• B、正常显示:hello,servlet1,servlet2,并且页面会不断刷新
• C、正常显示:,servlet2
• D、正常显示:hello,servlet1
16、
在HttpServletRequest接口中,用于获取所有请求头名称并返回Enumeration对象的方法是(D)
1分
• A、getMethod()
• B、getHeader(String name)
• C、getHeaders(String name)
• D、getHeaderNames()
17、
下面选项中,能实现转向另外一个Servlet的方法是( B )
1分
• A、运用javax.servlet.http.HttpServletRequest接口的 sendRedirect()方法
• B、运用javax.servlet.http.HttpServletResponse接口的sendRedirect()方法
• C、运用javax.servlet.RequestDispatcher接口的sendRedirect()方法
• D、运用javax.servlet.ResponseDispatcher接口的forward()方法
18、
HttpServletRequest接口中getParameterNames()方法的返回值类型是( C)
1分
• A、Object[]
• B、String[]
• C、Enumeration
• D、Object
7、
阅读下面代码片段:
Servlet1:
response.setContentType(“text/html;charset=gbk”);
response.getWriter().write(“传播智慧”);
request.getRequestDispatcher("/servlet/Servlet2")
.forward(request,response);
response.sendRedirect("/app/servlet/Servlet3");
Servlet2:
response.getWriter().write(“收获成长”);
请问当浏览器访问Servlet1时会有什么样的输出( D )
1分
• A、浏览器地址栏仍然保持为Servlet1,输出为“传播智慧收获成长”
• B、浏览器地址栏仍然保持为Servlet1,输出为“收获成长”
• C、浏览器地址栏仍然保持为Servlet1,输出为“传播智慧”
• D、服务器端报错
14、
阅读下面Servlet1类中的代码片段:
Servlet1:
response.getOutputStream().write(“传智”.getBytes(“gbk”));
response.getWriter().write(“播客”);
request.getRequestDispatcher("/Servlet2").forward(request,response);
如果使用浏览器访问Servlet1时会有什么结果( D )
1分
• A、浏览器输出 传智播客
• B、浏览器输出乱码
• C、浏览器输出播客
• D、服务器端报错
19、
阅读下面代码片段:
Servlet1:
response.setHeader(“Content-Type”,“text/html;charset=utf-8”);
response.getOutputStream().write(“传智”.getBytes(“utf-8”));
request.getRequestDispatcher(“/Servlet2”).forward(request,response);
Servlet2:
response.getOutputStream().write(“播客”.getBytes(“utf-8”));
当使用浏览器访问Servlet1时会什么结果( )
1分
• A、浏览器输出 “传智播客”均正常无乱码
• B、浏览器输出“传智”为乱码,输出“播客”正常
• C、浏览器输出“传智”正常,输出“播客”乱码
• D、浏览器输出“播客”正常
20、
在HttpServletRequest接口中, getContentType()方法的返回值类型为( B )
1分
• A、int
• B、String
• C、long
• D、double
21、
下面用于设置字符流输出文本采用UTF-8编码的选项中,正确的是( C )
1分
• A、response.setEncoding(“utf-8”);
• B、response.setCharacter (“utf-8”);
• C、response.setCharacterEncoding(“utf-8”);
• D、request.setCharacterEncoding(“utf-8”);
22、
在HttpServletRequest接口中,用于返回请求消息的实体部分的字符集编码的方法是( B )
1分
• A、getCharacter ()
• B、getCharacterEncoding()
• C、getEncoding()
• D、getHeader(String name)
24、
下列选项中,哪种请求方式的参数可以使用HttpServletRequest接口的getQueryString(D)方法获取到?
1分
• A、post
• B、delete
• C、put
• D、get
25、
HttpServletResponse接口中用于设置输出内容使用的字符编码的方法是( D )
1分
• A、setEncodingCharacter(String charset)
• B、setEncoding(String charset)
• C、setCharacter (String charset)
• D、setCharacterEncoding(String charset)
26、
在HttpServletRequest接口中,用于指定名称的头字段,并且返回结果为int类型的方法是(A)
1分
• A、getIntHeader(String name)
• B、getHeader(String name)
• C、getHeaders(String name)
• D、getHeaderNames()
27、
下列选项中,属于sendRedirect(java.lang.String url)方法所在接口的是( C )
1分
• A、HttpSession
• B、HttpServletRequest
• C、HttpServletResponse
• D、ServletResponse
28、
在HttpServletRequest接口中,用于获取一个指定头字段值的方法是( B )
1分
• A、getMethod()
• B、getHeader(String name)
• C、getHeaders(String name)
• D、getHeaderNames(String name)
• 输出
30、
在HttpServletRequest接口中,用于获取一个指定头字段的一组值的方法是( C )
1分
• A、getMethod()
• B、getHeader(String name)
• C、getHeaders(String name)
• D、getHeaderNames(String name)
31、
在HttpServletRequest接口中,用于获取请求行中资源名称的是( B )
1分
• A、getMethod()
• B、getRequestURI()
• C、getQueryString()
• D、getProtocol()
32、
下列选项中,属于HttpServletResponse接口中定义的表示请求成功的常量是( B )
1分
• A、SC_FORBIDDEN
• B、SC_OK
• C、SC_NOT_FOUND
• D、SC_CONFLICT
33、
在HttpServletRequest接口中,用于获取Servlet映射路径的方法是( D )
1分
• A、getMethod()
• B、getPathInfo()
• C、getContextPath()
• D、getServletPath ()
34、
RequestDispatcher接口中能实现请求包含的方法是( B )
1分
• A、forward(ServletRequest request,ServletResponse response)
• B、include(ServletRequest request,ServletResponse response)
• C、include(ServletResponse response,ServletRequest request)
• D、sendRedirect(String url)
35、
下列关于计算机中数据的存储形式,正确的是( B )
1分
• A、字符文本数据
• B、二进制数据
• C、字符文本数据和二进制数据都可以
• D、字符文本数据和二进制数据都不可以
36、
阅读下面代码片段:
Servlet1:
request.setAttribute("username", "张三");
String username=(String) request.getAttribute("username");
System.out.println("username:"+username);
request.setAttribute("username", null);
username=(String) request.getAttribute("username");
System.out.println("username:"+username);
当使用浏览器访问Servlet1时控制台会输出什么结果( B )
1分
• A、张三 张三
• B、张三 null
• C、null 张三
• D、null null
37、
下面选项中, 用于设置响应消息的实体内容大小的方法是( B )
1分
• A、setLength()
• B、setContentLength()
• C、setContentSize()
• D、setSize()
38、
在HttpServletRequest接口中,用于获取请求行中的协议名和版本的方法是(D)
1分
• A、getMethod()
• B、getRequestURI()
• C、getQueryString()
• D、getProtocol()
39、
下面=关于request. setCharacterEncoding()方法的描述中,正确的是( B )
1分
• A、设置request对象的解码方式只对get请求方式有效
• B、设置request对象的解码方式只对post请求方式有效
• C、设置request对象的解码方式对get与post请求方式有效
• D、设置request对象的解码方式只对get请求方式有效
40、
下面选项中,使用get方式提交name=“传智播客”时,得到结果中没有乱码的是( B )
1分
• A、String name = request.getParameter(“username”); request.setCharacterEncoding(“gbk”);
• B、String name = request.getParameter(“username”);name=new String(name.getBytes(“iso8859-1”),“gbk”);
• C、String name = request.getParameter(“username”); name=new String(name.getBytes("gbk "),“iso8859-1”);
• D、request.setCharacterEncoding(“gbk”); String name = request.getParameter(“name”);
41、
下面选项中,属于HttpServletResponse接口中定义的用于实现请求重定向的方法是( C )
1分
• A、Redirect()
• B、send ()
• C、sendRedirect()
• D、forward()
42、
在HttpServletResponse对象中,getWriter()方法直接输出的是( A )
1分
• A、字符文本数据
• B、二进制数据
• C、字符文本数据和二进制数据都可以
• D、字符文本数据和二进制数据都不可以
23、
阅读下面Servlet的doGet()方法中代码片段:
String data=“中国”;
response.setCharacterEncoding(“utf-8”);
response.setHeader(“Content-Type”,“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
out.println(data);
当打开浏览器直接访问时看到的结果,说法正确的是( A )
1分
• A、正常输出:中国
• B、输出乱码
• C、出现500异常
• D、页面没有任何输出
43、
阅读下面Servlet的doGet()方法中代码片段:
String data=“中国”;
response.setCharacterEncoding(“utf-8”);
PrintWriter out = response.getWriter();
out.println(data);
下列关于浏览器访问结果的描述中,正确的是(B)
1分
• A、正常输出:中国
• B、输出乱码
• C、出现500异常
• D、页面没有任何输出
44、
在HttpServletRequest接口中用于获取HTTP请求消息中的请求方式的方法是( A )
1分
• A、getMethod()
• B、getRequestURI()
• C、getQueryString()
• D、getProtocol()
45、
下面选项中,用于获取请求消息中所有头字段及对应值的代码片段是( )
1分
• A、List headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); String headerValue = request.getHeader(headerName); out.print(headerName + " : " +headerValue + “
”); }
• B、Enumeration headerNames = request.getHeaderName(); while (headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); String headerValue = request.getHeader(headerName); out.print(headerName + " : " +headerValue + “
”); }
• C、Enumeration headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); String headerValue = request.getHeader(headerName); out.print(headerName + " : " +headerValue + “
”); }
• D、Enumeration headerNames = request.getHeaders(); while (headerNames.hasMoreElements()) { String headerName = (String) headerNames.nextElement(); String headerValue = request.getHeader(headerName); out.print(headerName + " : " +headerValue + “
”); }
多选题
46、
下列选项中,属于RequestDispatcher接口中方法的有( )(多选)
2分
• A、sendRedirect()方法
• B、include()方法
• C、forward()方法
• D、dispatcher()方法
47、
下面选项中,能取到request.setAttribute(“name”,”itcast”)中值的有( )(多选)
2分
• A、重定向到另一个Servlet时,另一个Servlet中可以获取
• B、转发到另一个Servlet时,另一个Servlet中可以获取
• C、包含另一个Servlet时,另一个Servlet中可以获取
• D、转发与重定向到另一个Servlet时,都可以获取
48、
以下关于ServletRequest接口中操作属性的方法,说法正确的是()(多选)
2分
• A、setAttribute()方法用于将一个对象与一个名称关联后存储ServletRequest对象中
• B、getAttribute()方法用于从ServletRequest对象中返回指定名称的属性对象
• C、removeAttribute()方法用于从ServletRequest对象中删除指定名称的属性
• D、getAttributeNames()方法用于返回一个包含ServletRequest对象中的所有属性名的Eumeration对象,如果在请求中没有属性,这个方法将返回null
getAttributeNames()方法返回请求中所有可用的属性的名字。如果在请求中没有属性,这个方法将返回一个空的枚举集合
49、
服务器使用如下哪条语句发送数据有可能有乱码( )(多选)
2分
• A、response.getOutputStream().write(“中国”.getBytes(“utf-8”));
• B、response.getWriter().write(“中国”);
• C、response.setCharacterEncoding(“utf-8”); response.setHeader(“Content-Type”,”text/html;charset=utf-8”); response.getWriter().write(“中国”);
• D、response.setContentType(“text/html;charset=utf-8”); response.getWriter().write(“中国”);
50、
HttpServletResponse接口中可以有效解决乱码问题的方法是( )(多选)
2分
• A、addHeader()
• B、setContetType()
• C、setLoacale()
• D、setCharacterEncoding()
51、
下列关于请求与包含,说法正确的是( )(多选)
2分
• A、请求转发和请求包含都是服务器端技术,与浏览器没有任何关系
• B、请求包含可以实现将多个资源的数据合并后输出
• C、利用好请求包含,可以将多个输出内容中相同的部分提取出来,方便开发
• D、请求包含只能包含动态web资源,不能包含HTML文件
52、
下列关于乱码的描述中,正确的是( )(多选)
2分
• A、Content-Type可以设置浏览器打开页面时的编码。
• B、tomcat服务器默认使用ISO8859-1编码解码请求参数,如果浏览器发送请求参数时,使用的编码集不同,就会有乱码。
• C、request.setCharacterEconding方法只对请求体内容起作用,而ge方式提交的参数是附加在URL后的,所以此方法只能解决POST乱码
• D、对于get方式提交的请求参数,我们需要自己手动的经过将乱码先编码再解码的过程解决乱码
53、
下面关于response的说法中,正确的( )(多选)
2分
• A、response是代表响应的对象,当需要向浏览器输出数据时只能调用response中的getWriter()方法获取连接到浏览器的流
• B、利用Response输出数据的时候,并不是直接将数据写给浏览器,而是写到了Response的缓冲区中
• C、使用完流后要养成关闭流的习惯,所以在使用完Response获取的OutputStream或者Writer后必须将其关闭防止浪费资源
• D、service()方法返回后,服务器会自己检查Response获取的OutputStream或者Writer是否关闭,如果没有关闭,服务器自动帮你关闭,一般情况下不要自己关闭这两个流
54、
阅读下面代码片段:
response.setContentType(“text/html;charset=utf-8”);
下列选项中,与上述代码功能等效的是( )(多选)
2分
• A、response.setCharacterEncoding(“utf-8”);
• B、request.setCharacterEncoding(“utf-8”);
• C、response.setHeader(“Content-Type”,“text/html;charset=utf-8”);
• D、response.setHeader(“Content-Type”,“charset=utf-8”);
55、
下列关于request和response的说法中,错误的是( )
2分
• A、javaweb开发是基于HTTP协议进行的,javaweb中使用request代表请求对象,response代表响应对象
• B、request对象代表请求,response对象代表响应,这两个对象都是由浏览器创建后发送给服务器的
• C、HTTP协议只规定了浏览器和服务器之间如何通信,而request和response对象是由javaee规范规定的、由javaweb容器负责创建的
• D、HTTP协议是javaweb开发的基石,如response中提供的请求重定向的方法和request中提供的转发和包含方法就是基于HTTP协议进行的
56、
HttpServletResponse接口中用于设置各种头字段的方法是( )(多选)
2分
• A、addHeader()
• B、setHeader()
• C、addIntHeader()
• D、setIntHeader()
57、
下列关于请求转发和重定向的说法中,正确的是( ABCD )(多选)
2分
• A、请求转发和重定向都可以实现访问一个资源时转向当前应用资源
• B、请求转发是一次请求一次响应,而重定向为两次请求两次响应
• C、一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
• D、如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
58、
给定某Servlet程序的片段如下所示:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException,
ServletException {
RequestDispatcher rd =
request.getRequestDispatcher(“____________”);
rd.forward(request, response);
}
上面横线中填入以下路径,错误的有( )(多选)
2分
• A、/user/login.jsp
• B、/welcome.txt
• C、www.itcast.cn
• D、http:// www.itcast.cn
59、
下列选项中,属于HttpServletResponse类中发送状态码的方法是( )(多选)
2分
• A、setStatus(int status)
• B、setStatus(String status)
• C、setError(String status)
• D、setError(int status)
60、
下面选项中,服务器发送数据有可能产生乱码的是( )(多选)
2分
• A、response.getOutputStream().write(“中国”.getBytes(“utf-8”));
• B、response.getWriter().write(“中国”);
• C、response.setCharacterEncoding(“utf-8”); response.setHeader(“Content-Type”,”text/html;charset=utf-8”); response.getWriter().write(“中国”);
• D、response.setContentType(“text/html;charset=utf-8”); response.getWriter().write(“中国”);
单选题
1、
下面选项中,用于获取Cookie值的方法是(B)
1分
• A、Object getValue()
• B、String getValue ()
• C、String getValue (String str)
• D、Object getValue (String str)
2、
下列选项中,能够创建Cookie,并将当前时间作为值发送给客户端的代码是(D)
1分
• A、Cookie cookie = new Cookie(“lastAccess”,new Date().toLocaleString()); request.addCookie(cookie);
• B、Cookie cookie = request.getCookies()[0]; response.addCookie(cookie);
• C、Cookie cookie = request.getCookies()[0]; request.addCookie(cookie);
• D、Cookie cookie = new Cookie(“lastAccess”,new Date().toLocaleString()); response.addCookie(cookie);
3、
下面选项中,关于Cookie的说法正确的是(C)
1分
• A、Cookie一旦创建,名称和对应的值都不能更改
• B、Cookie一旦创建,名称和对应的值都可以更改
• C、Cookie一旦创建,名称不能更改,但值可以更改
• D、Cookie一旦创建,名称可以更改,但值不能更改
4、
下列选项中,能够使浏览器在访问chapter06工程资源时都会回送Cookie信息的正确写法是(A)
1分
• A、cookie.setPath("/chapter06")
• B、cookie.setPath(“chapter06”)
• C、cookie.seDomain("/chapter06")
• D、cookie.setDomain(“chapter06”)
5、
下面选项中,可以获取到代表当前会话的Session对象的方法是(A)
1分
• A、request.getSession();
• B、request.getSession(false);
• C、new HttpSession();
• D、HttpSession.newInstance(request);
6、
下列选项中,关于Cookie中保存的数据,说法正确的是( B )
1分
• A、保存在服务器中
• B、保存在客户端浏览器中
• C、保存在数据库中
• D、以上说法都不对
7、
下列选项中,哪个是设置Set-Cookie响应头字段正确的书写格式?( C)
1分
• A、Set-Cookie; user=itcast; Path=/;
• B、Set-Cookie user=itcast; Path=/;
• C、Set-Cookie: user=itcast; Path=/;
• D、Set-Cookie: user=itcast Path=/;
8、
阅读web.xml中下面配置代码:
30
可以得知,Tomcat服务器的默认会话超时时间是(B)
1分
• A、30秒
• B、30分钟
• C、30毫秒
• D、30小时
9、
下面选项中,当存在Session对象直接返回,否则返回null的方法是(C)
1分
• A、request.getSession();
• B、request.getSession(true);
• C、request.getSession(false);
• D、response.getSession();
10、
下面选项中,哪个方法可以用于获取Cookie的值(B)
1分
• A、Object getValue()
• B、String getValue ()
• C、String getValue (String str)
• D、Object getValue (String str)
11、
下面选项中,用于获取Cookie名称的方法是(B)
1分
• A、Object getName()
• B、String getName()
• C、String getName(String str)
• D、Object getName(String str)
12、
下面选项中,哪个方法可以生成一个Cookie对象?(A)
1分
• A、Cookie c = new Cookie(“name”,”itcast”);
• B、Cookie c = request.getCookie(“name”);
• C、Cookie c = response.getCookie(“name”);
• D、Cookie c = session.getCookie(“name”);
13、
下面选项中,用于返回Session创建的时间的方法是(C)
1分
• A、request.getSession();
• B、request. getCreationTime();
• C、session. getCreationTime();
• D、response. getCreationTime();
14、
下面关于setMaxAge(int expires)方法参数默认值的描述中,正确的是(B)
1分
• A、默认值是1
• B、默认值是-1
• C、默认值是0
• D、默认值是无穷大
15、
下面关于setMaxAge(int expires)方法参数的描述中,正确的是(C)
1分
• A、参数代表的是cookie过期的毫秒数
• B、参数代表的是cookie过期的分钟数
• C、参数代表的是cookie过期的秒数
• D、参数代表的是cookie过期的纳秒数
16、
下面选项中,用于返回客户端最后一次发送与Session相关请求的时间,的方法是(C)
1分
• A、request.getSession();
• B、request. getCreationTime();
• C、session. getLastAccessedTime();
• D、response. getLastAccessedTime();
17、
下面选项中,能够实现将用户会话中的“counter”计数器的值增加1的选项是(C)
1分
• A、HttpSession session = request.getSession(true); int ival = session.getAttribute(“counter”); if(ival == null){ ival = 1; }else{ Ival = ival + 1; } session.setAttribute (“counter”, ival);
• B、HttpSession session = request.getSession (true); Integer ival = (Integer) session.getAttribute (“counter”); Session.setAttribute (“counter”, ival + 1);
• C、HttpSession session = request.getSession (true); Integer ival = (Integer) session.getAttribute (“counter”); if(ival == null){ Ival = new Integer (1); } else { Ival = new Integer (ival.intValue () + 1); } session.setAttribute (“counter”, ival);
• D、HttpSession session = request.getSession (); int ival = session.getAttribute(“counter”); if (ival == null){ ival = 1; } else { ival = ival + 1; }session.setAttribute (“counter”, new Integer (ival));
18、
下列选项中,关于session保存数据的位置,说法正确的是(B)
1分
• A、数据保存在客户端
• B、数据保存在服务器端
• C、数据保存在客户端与服务器端各一份
• D、以上说法都不对
19、
下列选项中,重写URL的方法encodeURL(String url)所在的接口是(D)
1分
• A、HttpServletRequest
• B、HttpSession
• C、ServletContext
• D、HttpServletResponse
20、
下列选项中,能够正确创建Cookie对象的语句是(A)
1分
• A、Cookie c = new Cookie(“name”,”itcast”);
• B、Cookie c = request.getCookie(“name”);
• C、Cookie c = response.getCookie(“name”);
• D、Cookie c = session.getCookie(“name”);
21、
下列选项中,可以更改Cookie的存活时间的是(A)
1分
• A、cookie.setMaxAge(3600*24);
• B、cookie.setPath(“/app”);
• C、cookie.setDomain(“localhost”);
• D、cookie.setValue(“share”);
22、
在Java EE中,定义了getSession()方法的接口是(C)
1分
• A、HttpServlet
• B、HttpSession
• C、HttpServletRequest
• D、HttpServletResponse
23、
下列选项中,哪个是服务器向客户端发送Cookie的本质?( A )
1分
• A、在HTTP响应头字段中增加Set-Cookie响应头字段
• B、在HTTP响应头字段中增加Cookie响应头字段
• C、在HTTP请求头字段中增加Cookie响应头字段
• D、在HTTP请求头字段中增加Set-Cookie响应头字段
24、
给定servletA的代码片段如下所示:
public void doPost(HttpServletRequestrequest,
HttpServletResponse response) throws
ServletException,IOException{
String id=“itcast”;
}
Servlet B与servlet A同在一个有效的会话范围内,当把请求转发给Servlet B后,使B能够获得“itcast”值,下划线处应填入( A)。
1分
• A、request.getSession().setAttribute(“ID”,id);
• B、request.getSession().getAttribute(“ID”,id);
• C、request.getSession().setParameter(“ID”,id);
• D、request.getSession().getParameter(“ID”,id);
25、
下列选项中,用于对超链接和form表单中的action属性中设置的URL进行重写的方法是(A)
1分
• A、encodeURL(String url)
• B、encodeRedirectURL(String url)
• C、encodeForwardURL(String url)
• D、encodeRedirect (String url)
26、
下面选项中,用于设置当前HttpSession对象可空闲的以秒为单位的最长时间的方法是(D)
1分
• A、request. setMaxInactiveInterval ();
• B、request. getCreationTime();
• C、response. setMaxInactiveInterval ();
• D、session. setMaxInactiveInterval ();
27、
下列选项中,客户端在一次会话过程中可以发送的请求次数是(D)
1分
• A、1次
• B、0次
• C、2次
• D、多次
28、
下面选项中,用于判断当前HttpSession对象是否是新创建的方法是(D)
1分
• A、request. isNew();
• B、request. isTrue()
• C、response. isTrue();
• D、session. isNew();
29、
下面关于setMaxAge(0)方法的描述中,正确的是(B)
1分
• A、通知服务器立即删除这个Cookie信息
• B、通知浏览器立即删除这个Cookie信息
• C、通知浏览器再等1秒后删除这个Cookie信息
• D、通知服务器再等1秒后删除这个Cookie信息
30、
下面选项中,哪个方法用于设置Cookie的有效路径(B)
1分
• A、String setPath(String uri)
• B、void setPath(String uri)
• C、void setDomain(String uri)
• D、String setDomain(String uri)
31、
下列关于Cookie和Session的描述中,错误的是(D)
1分
• A、Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端是客户端技术,Session将数据保存在服务器端是服务器端技术
• B、HttpSession会话对象的默认保持时间可以修改
• C、HttpSession默认是基于Cookie运作的
• D、浏览器可以接受任意多个Cookie信息保存任意长的时间。
32、
下列选项中,能够返回与当前HttpSession对象关联的会话标识号的方法是(C)
1分
• A、request.getSession();
• B、request.getId();
• C、session.getId();
• D、response.getId();
33、
下列选项中,Cookie类所在的完整包的写法是(B)
1分
• A、javax.servlet.Cookie
• B、javax.servlet.http.Cookie
• C、java.servlet.http.Cookie
• D、java.servlet.Cookie
34、
下列对于setMaxAge(-1)方法的描述中,正确的是(C)
1分
• A、表示通知浏览器保存这个Cookie信息
• B、表示通知浏览器立即删除这个Cookie信息
• C、表示当浏览器关闭时,Cookie信息会被删除
• D、以上都不正确
35、
阅读下面代码:
Cookie cookie = new Cookie(“myCookie”,”xxxx”);
response.addCookie(cookie);
path为 / ,由localhost发送Cookie信息,则在下面选项中横线处填写下列哪段代码可以删除名称为myCookie的对象(C)
1分
• A、cookie.delete();
• B、cookie.setMaxAge(0);
• C、cookie.setPath(“/”);cookie.setMaxAge(0);
• D、cookie.setDomain(“localhost”);cookie.setPath(“/”);cookie.setMaxAge(0);
36、
下面关于Cookie的domain属性默认取值的说法中,正确的是(C)
1分
• A、默认值为localhost
• B、默认值为/
• C、默认值为当前主机名
• D、默认值为-1
37、
下面选项中,哪个方法可以用于设置Cookie的有效域(C)
1分
• A、String setPath(String pattern)
• B、void setPath(String pattern)
• C、void setDomain(String pattern)
• D、String setDomain(String pattern)
38、
下面选项中,用于返回当前HttpSession对象所属于的WEB应用程序对象的方法是(B)
1分
• A、request. getServletContext ();
• B、session. getServletContext ();
• C、response. getServletContext ();
• D、session. getApplication ();
39、
下面选项中,关于获得HttpSession对象的说法正确的是(B)
1分
• A、用new语句创建一个HttpSession对象
• B、调用ServletRequest对象的getSession()方法
• C、调用ServletConfig对象的getSession()方法
• D、以上说法都不对
40、
下面关于Cookie的path属性有效性的说法中,正确的是(B)
1分
• A、只对当前访问路径所属的目录有效
• B、只对当前访问路径所属的目录及其子目录有效
• C、只对当前访问路径所属的子目录有效
• D、只对其它目录有效(当前访问路径所属的目录及其子目录无效)
多选题
41、
下列选项中,属于Servlet常用会话技术的是( AB )
2分
• A、Cookie
• B、Session
• C、Application
• D、request
42、
下面选项中,关于SessionID的说法正确的是(ABD) (多选)
2分
• A、每个HttpSession对象都有唯一的Session ID
• B、SessionID 由Servlet容器创建
• C、SessionID必须保存在客户端的cookie文件中
• D、Servlet容器会把Session ID作为Cookie或者URL的一部分发送到客户端
43、
下列选项中,属于URL重写的方法是(AB) (多选)
2分
• A、encodeURL(String url)
• B、encodeRedirectURL(String url)
• C、encodeForwardURL(String url)
• D、encodeRedirect (String url)
44、
下面关于URL重写的说法中,正确的是(ABC) (多选)
2分
• A、URL重写可以解决浏览器禁用cookie导致的Session无法使用的问题
• B、URL重写会将sessionID附加在重写的URL后,当用户点击该超链接访问服务器时,request.getSession()方法可以从请求URL中分析出sessionID从而找到对应的Session
• C、如果服务器发现浏览器并没有禁用cookie,那么URL重写操作将不再进行
• D、调用URLEncoder.encode()方法可以进行URL重写操作
45、
下面选项中,最合适放在session域中的是(BC) (多选)
2分
• A、统计服务器中所有Servlet一共被访问过多少次的计数器
• B、当前用户的登录状态
• C、发送给浏览器的验证码信息,且需要在服务器端进行验证
• D、在Servlet中查询的结果,需要在JSP页面中进行数据展示
46、
下面关于HttpSession的说法,正确的是(AB) (多选)
2分
• A、Servlet容器负责创建HttpSession对象
• B、每个HttpSession对象都有唯一的ID
• C、客户端浏览器负责为HttpSession分配唯一的ID
• D、HttpSession对象的ID值,由程序进行分配
47、
下列关于HttpSession对象的描述中,说法正确的是(AC) (多选)
2分
• A、如果两次访问时间间隔超过session定义的非活动时间间隔,则HttpSession对象将失效
• B、用户每次做出请求时都会创建一个新的会话
• C、同一个浏览器做出的多个请求可以访问同一个会话对象
• D、SessionID保存在服务器端,HttpSession对象保存在客户的浏览器
48、
下列选项中,关于HttpSession的说法,正确的是(AD) (多选)
2分
• A、HttpSession.getAttribute(String param)方法的返回类型是Object
• B、HttpSession.getAttribute(String param)方式的返回类型是String
• C、调用HttpSession的setAttribute(“key”,”value”)方法时,如果这个会话中对应键key已经有一个值,就会导致抛出异常
• D、调用HttpSession的setAttribute(“key”,”value”)方法时,如果这个会话中对应键key已经有一个值,就会用新值替换原先的值
49、
下面选项中,HttpServletRequest定义了用于获取Session对象的方法是(AC) (多选)
2分
• A、req.getSession()
• B、req.getSession(false)
• C、req.getSession(true)
• D、req.createSession()
50、
给定一个Servlet的代码片段如下所示
Public void doGet(HttpServletRequest request,HttpServletResponse resonse)throws ServletException,IOException{
ArrayList list=new ArrayList();
HttpSession session =request.getSession();
Session.setAttribute(“list”,list);
}
要取出session中的值,下划线处的代码可以是(AC) (多选)
2分
• A、Object o=session.getAttribute(“list”);
• B、Object o=(ArrayList)session.getParameter(“list”);
• C、ArrayList list2=(ArrayList)session.getAttribute(“list”);
• D、ArrayList list2=session.getParameter(“list”)
51、
给定一个Servlet的代码片段如下所示:
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException{
String str = “world”;
HttpSession session = request.getSession();
session.setAttribute(“str”, str);
___________________
}
要取出session中的值,下划线处的代码可以是(BC) (多选)
2分
• A、String s = session.getParameter(“str”);
• B、String s = (String)session.getAttribute(“str”);
• C、Object o = session.getAttribute(“str”);
• D、Object o = (Object)session.getParameter(“str”);
52、
下列说法中正确的是(ABCD) (多选)
2分
• A、Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的
• B、浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的
• C、默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的
• D、一个浏览器可能保存着多个名称为JSESSIONID的Cookie
53、
下列选项中,关于会话的说法正确的是(BD) (多选)
2分
• A、浏览器开始访问一个网站时,会话就开始了,服务器立即就会创建代表当前会话的Session
• B、如果服务器端执行了HttpSession对象的invalidate()方法,那么这个会话被销毁
• C、当客户端关闭浏览器进程,服务器端会探测到客户端关闭浏览器进程的行为,从而立即销毁相应的HttpSession对象
• D、当一个会话过期,服务器端会自动销毁这个会话
54、
下面关于Session域的说法中,正确的是(ACD) (多选)
2分
• A、Session域的作用范围为整个会话
• B、Session域中的数据只能存在30分钟,这个时间不能修改
• C、可以调用HttpSession的invalidate方法,立即销毁Session域
• D、当web应用被移除出web容器时,该web应用对应的Session跟着销毁
55、
下列关于URL重写的描述中,正确的是(ABD) (多选)
2分
• A、URL重写可以在URL地址后跟上JSESSIONID,浏览器即使禁用cookie也能在访问服务器时带回JSESSIONID的值,从而可以使用session
• B、response.encodeRedirectURL(java.lang.String url)和response. encodeURL(java.lang.String url)都可以实现URL重写。
• C、URL重写不需要对所有地址都重写。
• D、response. encodeURL(java.lang.String url)一旦发现浏览器带来了任何cookie信息就认为浏览器没有禁用cookie,就不会再对传入的URL进行URL重写了
1、
下面选项中,处理以.jsp为扩展名的URL访问请求的是(A)
1分
• A、JspServlet
• B、HttpJspBase
• C、JspSourceDependent
• D、HttpServlet
2、
下列选项中,哪个是正确的JSP注释格式?(D)
1分
• A、
• B、<%! 注释信息 %>
• C、<%= 注释信息 %>
• D、<%-- 注释信息 --%>
3、
下列选项中,哪个属性可以指明编译JSP文件时所继承的类?(B)
1分
• A、language
• B、extends
• C、import
• D、session
4、
下面选项中,可以被发送到浏览器段的输出内容是(D)
<%-- 第一种 --%>
<% //第二种 %>
<% /*第三种 */ %>
1分
• A、第一种
• B、第二种
• C、第三种
• D、第四种
5、
下列是page指令中的一些属性,其中,用于指明是否运行缓存的属性是(C)
1分
• A、session
• B、buffer
• C、autoFlush
• D、isThreadSafe
6、
下面选项中,属于pageContext提供的用于从四个域对象中查找属性的方法是(D)
1分
• A、setAttribute
• B、getAttribute
• C、removeAttribute
• D、findAttribute
7、
下列选项中,关于page指令用法的描述,错误的是(D)
1分
• A、<%@ page %>作用于整个JSP页面
• B、可以在一个页面中使用多个<%@ page %>指令
• C、为增强程序的可读性,建议将<%@ page %>指令放在JSP文件的开头,但不是必须的
• D、<%@ page %>指令中的属性只能出现一次
8、
下面关于include指令和jsp:include标签的区别描述,错误的是(C)
1分
• A、jsp:include标签实现动态包含,而include指令实现静态包含
• B、jsp:include标签运行时起作用,而include指令编译时起作用
• C、jsp:include标签被包含页面可以改变响应头,而include指令不改变响应头
• D、jsp:include标签被包含页面不可以改变响应头,而include指令可以改变响应头
9、
下列选项中,哪个属性可以指定JSP翻译成Servlet源文件中导入包或类?(C)
1分
• A、language
• B、extends
• C、import
• D、session
10、
下面选项中,关于jsp文件翻译后的Servlet源码中,它所继承的父类是(C)
1分
• A、HttpServlet
• B、JspServlet
• C、HttpJspBase
• D、HttpBase
11、
下列是page指令中的一些属性,其中,用于指定线程是否安全的属性是(D)
1分
• A、session
• B、buffer
• C、autoFlush
• D、isThreadSafe
12、
下面选项中,用于向客户端发送文本形式实体内容的JSP隐式对象是(B)
1分
• A、response
• B、out
• C、request
• D、print
13、
下列选项中,哪些是Tomcat服务器中jsp配置文件的存放目录(B)
1分
• A、Tomcat安装目录\ conf\server.xml
• B、Tomcat安装目录\ conf\web.xml
• C、Tomcat安装目录\ webapps\web.xml
• D、Tomcat安装目录\ conf\context.xml
14、
阅读下面JSP代码片段:
<%@ page language=“java” contentType=“text/html; charset=UTF-8” buffer=”none” %>
<%
out.println(“first line”);
response.getWriter().println(“second line”);
%>
上述代码的输出结果是(A)
1分
• A、second line first line
• B、first line second line
• C、first line
• D、second line
15、
访问如下jsp页面将会出现什么输出:(D)
<%@ page session=“false”%>
<%
session.setAttribute(“name”,“itcast”);
application.setAttribute(“name”,“itheima”);
%>
<%= session.getAttribute(“name”) %>
1分
• A、itcast
• B、itheima
• C、无输出
• D、Jsp不能被正确翻译,访问时服务器报错
16、
下列是page指令中的一些属性,其中,用于指定一个错误页面的属性是(B)
1分
• A、session
• B、errorPage
• C、isErrorPage
• D、isThreadSafe
17、
访问如下jsp时,浏览器得到的输出结果是(D)
<% int i = 0; %>
<%=i %>
1分
• A、0
• B、1
• C、11
• D、100
18、
下面选项中,用于封装JSP中抛出的异常信息的隐式对象是(D)
1分
• A、page
• B、out
• C、request
• D、exception
19、
要想在Tomcat服务器配置jsp文件,则需要在以下哪个目录中配置(B)
1分
• A、Tomcat安装目录\ conf\server.xml
• B、Tomcat安装目录\ conf\web.xml
• C、Tomcat安装目录\ webapps\web.xml
• D、Tomcat安装目录\ conf\context.xml
20、
下面选项中,属于jsp:forward标签中的属性的是(D)
1分
• A、file
• B、url
• C、path
• D、page
21、
下面 pageContext对象的作用范围值中,表示Web应用程序范围的是(D)
1分
• A、PAGE_SCOPE
• B、REQUEST_SCOPE
• C、SESSION_SCOPE
• D、APPLICATION_SCOPE
22、
下面JSP标签中,具有转发功能的是(B)
1分
• A、jsp:include
• B、jsp:forward
• C、jsp:param
• D、jsp:redirect
23、
将jsp翻译成的Servlet源码后,用户访问JSP文件时会被调用的方法是(C)
1分
• A、_jspInit()
• B、_jspDestroy()
• C、_jspService()
• D、Serivce()
24、
阅读下面代码: a.jsp代码: <%@ page contentType=“text/html;charset=UTF-8”%> <%Thread.sleep(5000);%> a.jsp内的中文
b.jsp代码: <%@ page contentType=“text/html;charset=UTF-8”%> b.jsp内的中文
下面选项中,关于访问时输出结果的描述中,正确的是(B)
1分
• A、同时输出两个页面的内容
• B、先输出b.sjp页面的内容,等待5秒,再输出a.jsp页面中的内容
• C、先输出a.sjp页面的内容,等待5秒,再输出b.jsp页面中的内容
• D、先等待5秒,再同时输出两个页面中的内容
25、
阅读下面JSP代码片段:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”%>
<%
out.println(“first line
”);
response.getWriter().println(“second line
”);
%>
上述代码的输出结果是(A)
1分
• A、second line first line
• B、first line second line
• C、first line
• D、second line
26、
在JSP中, out隐式对象所对应的类是(C)
1分
• A、Writer
• B、PrintWriter
• C、JspWriter
• D、Print
27、
下面关于include指令的语法格式中,正确的是(B)
1分
• A、<%@ include path=“relativeURL”%>
• B、<%@ include file=“relativeURL”%>
• C、<%# include path=“relativeURL”%>
• D、<%# include file=“relativeURL”%>
28、
jsp文件翻译后的Servlet源码和class文件所存放的目录是(B)
1分
• A、Tomcat安装目录/conf/Catalina/localhost/应用名/
• B、Tomcat安装目录/work/Catalina/localhost/应用名/
• C、Tomcat安装目录/lib/Catalina/localhost/应用名/
• D、Tomcat安装目录/webapps/Catalina/localhost/应用名/
29、
下面关于JSP声明的描述中,错误的是(C)
1分
• A、一次可声明多个方法
• B、一个声明仅在一个页面中有效
• C、声明的方法可以直接使用JSP内置对象
• D、声明可以放在JSP的任何位置
30、
下面关于JSP作用域对象的描述,错误的是(C)
1分
• A、request对象可以得到请求中的参数
• B、session对象可以保存用户信息
• C、application对象可以被多个应用共享
• D、作用域范围从小到大是request、session、application
31、
下列是page指令中的一些属性,其中,用于告知客户端浏览器采用什么文档类型的属性是(B)
1分
• A、session
• B、contentType
• C、content
• D、isThreadSafe
32、
下列选项中,哪个是page指令中language属性的默认取值?(B)
1分
• A、english
• B、java
• C、jsp
• D、html
33、
JSP隐式对象pageContext所对应的类是(B)
1分
• A、javax.servlet.http.PageContext
• B、javax.servlet.jsp.PageContext
• C、javax.servlet.http.jsp.PageContext
• D、javax.servlet.jsp.http.PageContext
34、
下面关于JSP注释的说法中,正确的是(B)
1分
• A、JSP注释语法格式:
• B、JSP注释不会发送到客户端
• C、JSP注释会在服务器端翻译
• D、JSP注释与HTML注释是一样的
35、
在JSP页面中有如下代码:
<%@page import=“java.util.Date”%>
<%@page import=“java.io."%>
下面选项中,与之功能相同的是(C)
1分
• A、<%@page import="java.util.Date java.io.”%>
• B、<%@page import=“java.util.Date;java.io."%>
• C、<%@page import="java.util.Date,java.io.”%>
• D、<%@page import="java.util.Date!java.io."%>
36、
下列选项中,哪个是application隐式对象所属的类?(D)
1分
• A、ServletConfig
• B、HttpServletResponse
• C、HttpServletRequest
• D、ServletContext
37、
下列选项中,page指令语法格式正确的是(B)
1分
• A、<%! page 属性名= “属性值”%>
• B、<%@ page 属性名= “属性值”%>
• C、<%@ page 属性名:“属性值”%>
• D、<%! page 属性名:“属性值”%>
38、
阅读下列JSP代码片断:
<% int x=5; %>
<%! private int m(int a){ return a+1;} %>
<% x=3; %>
x=<%=x%>,<%=m(x)%>
其运行结果是( B)
1分
• A、x=3,6
• B、x=3,4
• C、x=5,4
• D、编译错误
39、
已知JSP页面中存在如下代码:
<% session.setAttribute(“pageContext”, “itcast”); %>
${pageContext}
则以下说法,正确的是(D)
1分
• A、将出现语法错误,因为pageContext是保留字
• B、运行时存在异常
• C、不出现异常,输出null
• D、不出现异常,输出pageContext对象
40、
新建一个index.jsp页面(位于test项目WebContent目录下的jsp文件夹),然后将test项目发布到Tomcat中并启动项目,请问在浏览器上输入下列哪个地址可以正常访问index.jsp页面( )(在本机上并使用默认端口号)(C)
1分
• A、http://localhost/test/index.jsp
• B、http://localhost:8080/test/WebContent/index.jsp
• C、http://localhost:8080/test/WebContent/jsp/index.jsp
• D、http://localhost:8080/test /index.jsp
多选题
41、
以下通过JSP的include指令来引入这些抽取出的JSP页面方式正确的是(AC)(多选)
2分
• A、<%@include file=“head.jsp”%> …省略
• B、<% @include file=“head.jsp”%> …省略
• C、<%@ include file=“head.jsp”%> …省略
• D、< %@include file=“head.jsp”% > …省略
42、
下列选项中,属于JSP指令的有(ABC)
2分
• A、page指令
• B、include指令
• C、taglib指令
• D、forward指令
43、
编写书城注册页面register.jsp,然后浏览器访问该注册页面,出现了中文乱码问题,在查阅资料后再在register.jsp顶部补充以下page指令:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
再次访问该页面,仍然出现乱码情况,以下分析合理的是(ACD)(多选)
2分
• A、浏览器缓存未刷新
• B、该引入的page指令方法格式有错误
• C、Jsp页面和浏览器编码格式不统一
• D、服务器未重新启动
44、
下列选项中,可以在JSP中直接使用的类有哪些(ABCD)
2分
• A、java.lang.
• B、javax.servlet.*
• C、javax.servlet.jsp.*
• D、javax.servlet.http.*
45、
以下对JSP隐式对象exception的说法,正确的是(ACD)(多选)
2分
• A、JSP页面中有一个内置的exception对象,这个exception对象是Throwable的实例
• B、exception对象可以在出现异常的界面抛出并显示
• C、exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage=”true”%>的页面
• D、exception对象常用方法getMessage():返回错误信息。
46、
下面选项中,当jsp页面出现异常时,为避免出现500异常页,可以采取的措施是(AC)
2分
• A、在page指令中配置errorPage属性指定处理错误的提示页
• B、在page指令中配置isErrorPage属性指定处理错误的提示页
• C、在当前应用的web.xml中配置元素指定错误处理页
• D、在当前应用的web.xml中配置元素指定错误处理页
47、
当jsp页面出现异常时, 如果page指令和web.xml中都配置了错误处理页,那么下面说法正确的是(BC)
2分
• A、在page指令中配置errorPage属性不起作用
• B、在page指令中配置的errorPage属性将会起作用
• C、在当前应用的web.xml中配置元素不起作用
• D、在当前应用的web.xml中配置元素起作用
48、
阅读下面代码:
a.jsp:
<%
______.setAttribute(“itcast”,“youjun”);
%>
b.jsp:
<%= ______.getAttribute("itcast ") %>
若想在访问b.jsp时取到正确值,横线处可以填入的隐式对象有(AB)
2分
• A、session、 session
• B、application、 application
• C、request、 request
• D、application、 session
49、
下面关于JSP的说法中,正确的是( ABCD )
2分
• A、它是建立在Servlet规范之上的动态网页开发技术
• B、它的代码由html代码与java代码组成
• C、jsp文件中, HTML代码用来实现网页中静态内容的显示
• D、jsp文件中, Java代码用来实现网页中动态内容的显示
50、
下列选项中,哪些是JSP文件在被访问前需要经历的阶段?(AC)
2分
• A、翻译
• B、访问
• C、编译
• D、运行
单选题
1、
下列选项中,可得到 PreparedStatement对象的是(C)
1分
• A、PreparedStatement pstmt = connection.createStatement(“sql”);
• B、PreparedStatement pstmt =connection.createStatement();
• C、PreparedStatement pstmt =connection.prepareStatement(sql);
• D、PreparedStatement pstmt =connection.prepareStatement();
2、
下面选项中,用于创建Statement对象的方法是( D )
1分
• A、getMetaData()
• B、getConnection(String url,String user,String pwd)
• C、registerDriver(Driver driver)
• D、createStatement()
3、
下面选项中,能够将游标移动到最后一行的下一个位置的方法是( A )
1分
• A、afterLast()
• B、absolute(int row)
• C、previous()
• D、last()
4、
下面关于executeQuery(String sql)方法,说法正确的是( C)
1分
• A、可以执行insert语句
• B、可以执行update语句
• C、可以执行select语句
• D、可以执行delete语句
5、
已知SQL语句: select count() from customer;
则下面Handler中,最适合转换的是(D)
1分
• A、BeanListHandler
• B、ArrayHandler
• C、BeanMapHandler
• D、ScalarHandler
6、
下面选项,用于设置dbcp连接池最小闲置连接数目的方法是(B)
1分
• A、setMaxActive (int maxIdle)
• B、setMinIdle(int minIdle)
• C、setInitialSize(int initialSize)
• D、setInitial(int initialSize)
7、
下列选项中,能把结果集中的第一行数据转成对象数组的Handler是(B)
1分
• A、BeanListHandler
• B、ArrayHandler
• C、BeanMapHandler
• D、ScalarHandler
8、
下面选项中,属于QueryRunner类的query()方法可执行的操作语句是(A )
1分
• A、SELECT语句
• B、DELETE语句
• C、UPDATE语句
• D、INSERT语句
9、
下面选项中,用于返回表示数据库元数据的方法是( A )
1分
• A、getMetaData()
• B、getConnection(String url,String user,String pwd)
• C、registerDriver(Driver driver)
• D、createStatement()
10、
JDBC API主要位于下列选项的那个包中(A)
1分
• A、java.sql.
• B、java.util.*
• C、javax.lang.*
• D、java.text.*
11、
数据源所实现的标准接口是(B)
1分
• A、java.sql.DataSource
• B、javax.sql.DataSource
• C、javax.sql.Connection
• D、java.sql.Connection
12、
下面选项中,属于QueryRunner类中用于执行增删改语句的方法是(B)
1分
• A、insert
• B、update
• C、delete
• D、query
13、
下面选项中,用于将参数化的SQL语句发送到数据库的方法是( B)
1分
• A、prepareCall(String sql)
• B、prepareStatement(String sql)
• C、registerDriver(Driver driver)
• D、createStatement()
14、
使用C3P0数据源时,当传入的参数为空或者不存在时,则会出现的问题是(C)
1分
• A、语法错误
• B、会出现异常
• C、使用默认的配置方式创建数据源
• D、以上说法都有误
15、
下面选项中,能将游标移动到结果集最后一行的方法是(D )
1分
• A、next()
• B、absolute(int row)
• C、previous()
• D、last()
16、
下列选项,可用于存储结果集的对象是(A)
1分
• A、ResultSet
• B、Connection
• C、Statement
• D、PreparedStatement
17、
下面关于自定义ResultSetHandler接口实现类的描述,正确的是(A)
1分
• A、通过重写handle()方法,从而实现结果集的处理
• B、通过重写update()方法,实现结果集的处理
• C、通过重写query()方法,实现结果集的处理
• D、通过重写delete()方法,实现结果集的处理
18、
下列选项中,关于Statement描述错误的是(B)
1分
• A、Statement是用来执行SQL语句的
• B、Statement是PreparedStatement的子接口
• C、获取Statement实现需要使用Connection的createStatement()方法
• D、PreparedStatement能使用参数占位符,而Statement不行
19、
已知,存在 QueryRunner对象 runner , SQL语句:
String sql = “select * from user where id=?”;
下面操作中,能实现查询指定记录的选项是(D)
1分
• A、User user=(User)runner.query(sql, new BeanListHandler(User.class), new Object[]{id});
• B、User user=(User)runner.query(sql, new BeanHandler(User.class));
• C、User user=(User)runner.query(sql, new BeanListHandler(User.class), id);
• D、User user=(User)runner.query(sql, new BeanHandler(User.class), new Object[]{id});
20、
下列选项中,能够创建CallableStatement对象的方法是( C )
1分
• A、createStatement()
• B、prepareStatement()
• C、prepareCall()
• D、createCallableStatement ()
21、
下面选项中,关于DBUtils类中用于装载并注册JDBC驱动程序的方法是( D )
1分
• A、close()方法
• B、closeQuietly()方法
• C、commitAndCloseQuietly()方法
• D、loadDriver()方法
22、
下列关于JDBC驱动的说法中,正确的是(D)
1分
• A、用JDBC连接数据库,必须使用连接池
• B、用JDBC连接数据库,使用连接池就不需要导入数据库驱动
• C、操作不同的数据库可以使用相同的驱动
• D、无论如何,只要使用JDBC,那么就要使用JDBC驱动
23、
下面选项中,能够将游标从当前位置向下移一行的方法是(A )
1分
• A、next()
• B、absolute(int row)
• C、previous()
• D、last()
24、
下面选项中,属于DataSource接口实现类的是(B)
1分
• A、DBCPDataSourc
• B、BasicDataSource
• C、DataSourceBasic
• D、DataSourceFactory
25、
下面选项中,主要用于执行DML和DDL语句的是(B )
1分
• A、ResultSet rs = stmt.executeDDL(sql);
• B、ResultSet rs = stmt.executeUpdate(sql);
• C、ResultSet rs = stmt.executeDelete(sql);
• D、ResultSet rs = stmt.executeDML(sql);
26、
在使用C3P0数据源时,默认的配置文件名字是(B)
1分
• A、c3p0-config.properties
• B、c3p0-config.xml
• C、c3p0.xml
• D、c3p0.properties
27、
Statement接口中executeQuery()方法的返回值是( A)
1分
• A、ResultSet
• B、int
• C、Boolean
• D、Result
28、
下列选项中,能够实现预编译的是(C)
1分
• A、Statement
• B、Connection
• C、PreparedStatement
• D、DriverManager
29、
C3P0数据源中最主要的核心类是(C)
1分
• A、BasicDataSource
• B、BasicDataSourceFactory
• C、ComboPooledDataSource
• D、DataSourceFactory
30、
已知,存在 QueryRunner对象 runner ,SQL语句:
String sql = “delete from user where id=?”;
下面操作中,能实现删除记录id=1的操作是(B)
1分
• A、int num =runner.delete(sql, 1);
• B、int num =runner.update(sql, 1);
• C、Object num =runner.delete(1, sql);
• D、Object num =runner.update(1, sql);
31、
JDBC驱动器API的主要接口是(B )
1分
• A、java.sql.DriverManager类
• B、java.sql.Driver接口
• C、javax.sql. Driver接口
• D、javax.sql.DriverManager类
32、
JDBC驱动管理器的主要实现类是( A )
1分
• A、java.sql.DriverManager类
• B、java.sql.Driver接口
• C、javax.sql. Driver接口
• D、javax.sql.DriverManager类
33、
下面Statement接口的方法中,用于执行各种SQL语句的是( C)。
1分
• A、executeUpdate(String sql)
• B、executeQuery(String sql)
• C、execute(String sql)
• D、executeDelete(String sql)
34、
下列选项中,能够防止重复注册数据库驱动的选项是(B)
1分
• A、DriverManager.registerDriver(new com.mysql.jdbc.Driver());
• B、Class.forName(“com.mysql.jdbc.Driver”);
• C、class.forName(“com.mysql.jdbc.Driver”);
• D、DriverManager.getDriver(new com.mysql.jdbc.Driver());
35、
下面关于连接mysql下的mydb数据库的url,编写正确的是(B)
1分
• A、jdbc:mysql//:localhost:3306/mydb
• B、jdbc:mysql://localhost:3306/mydb
• C、mysql:jdbc//:localhost:3306/mydb
• D、mysql:jdbc://localhost:3306/mydb
多选题
36、
下面选项中,关于DBUtils类中可用于关闭数据连接的方法是( ABC)
1分
• A、close()方法
• B、closeQuietly()方法
• C、commitAndCloseQuietly()方法
• D、loadDriver()方法
37、
下列选项中,属于回收数据库资源时进行的操作有(ABD)
1分
• A、关闭ResultSet
• B、关闭Statement
• C、关闭应用程序
• D、关闭Connection
38、
下列关于编写JDBCUtils工具需要包含的操作有(ABC)
1分
• A、加载数据库驱动
• B、建立数据库连接
• C、关闭数据库连接
• D、得到结果集
39、
下面选项中,属于DBUtils类中提供的方法是(ABCD )
1分
• A、close()方法
• B、closeQuietly()方法
• C、commitAndCloseQuietly()方法
• D、loadDriver()方法
40、
使用DBCP数据源需要导入的jar包是(AC)
1分
• A、commons-dbcp.jar包
• B、commons-io.jar包
• C、commons-pool.jar包
• D、commons-lang.jar包
41、
下面关于DBUtils类中closeQuietly ()方法的作用,描述正确的是(ABCD )
1分
• A、关闭Connection
• B、关闭Statement
• C、关闭ResultSet
• D、该方法可以隐藏程序中抛出的SQL异常
42、
下面选项中,可以作为QueryRunner类中query()方法的参数的是(ABC )
1分
• A、Connection conn
• B、String sql
• C、Object[] params
• D、DataSource ds
43、
下面关于使用DBUtils框架的优势,描述正确的是(ABC)
1分
• A、减少JDBC开发时的代码量
• B、增加了JDBC开发代码的规整性
• C、增加了JDBC代码易读性
• D、增加了JDBC开发代码的规整性,但代码更加难读了
44、
下面选项中,能够正确创建BasicDataSource对象的代码是(ABD)
1分
• A、BasicDataSource ds = new BasicDataSource();
• B、DataSource ds = new BasicDataSource();
• C、BasicDataSource ds = BasicDataSourceFactory.createDataSource();
• D、DataSource ds = BasicDataSourceFactory.createDataSource(Properties p);
45、
下面关于 ResultSet接口中getXXX()方法的描述正确的是(ABC )
1分
• A、可以通过字段的名称来获取指定数据
• B、可以通过字段的索引来获取指定的数据
• C、字段的索引是从1开始编号的
• D、字段的索引是从0开始编号的
46、
下面关于DBCP的描述,正确的是(ABC)
1分
• A、DBCP是数据库连接池(DataBase Connection Pool)的简称
• B、DBCP是Apache组织下的开源连接池实现
• C、DBCP 是Tomcat服务器使用的连接池组件
• D、使用DBCP连接池技术不需要导入jar包
47、
在使用C3P0数据源时,能够正确得到DataSource实例对象的代码是(AB)
1分
• A、DataSource ds = new ComboPooledDataSource();
• B、DataSource ds = new ComboPooledDataSource(String name);
• C、ComboPooledDataSource ds = new DataSource (String name);
• D、ComboPooledDataSource ds = new DataSource ();
48、
下列选项中,属于 javax.sql.DataSource接口中提供的方法有(CD)
1分
• A、getConnection( String username)
• B、getConnection( String password)
• C、getConnection(String username, String password)
• D、getConnection()
49、
已知C3P0配置文件中结点名为mysql,则得到数据源的正确写法是(AB)
1分
• A、DataSource ds = new ComboPooledDataSource(“mysql”);
• B、ComboPooledDataSource ds = new ComboPooledDataSource(“mysql”);
• C、ComboPooledDataSource cpds = new ComboPooledDataSource();
• D、DataSource cpds = new ComboPooledDataSource();
50、
下面选项中,属于QueryRunner类的update()方法可执行的操作语句是(BCD )
1分
• A、SELECT语句
• B、DELETE语句
• C、UPDATE语句
• D、INSERT语句
51、
下列选项中,属于Statement接口提供的方法有(ABC )
1分
• A、executeUpdate(String sql)
• B、executeQuery(String sql)
• C、execute(String sql)
• D、query(String sql)
52、
下面关于QueryRunner类的构造方法,描述正确的是(AB )
1分
• A、可以使用默认的构造方法进行构造
• B、使用javax.sql.DataSource DataSource作为参数的构造方法
• C、不能直接构造
• D、可以使用QueryRunnerFactory工厂类来进行构造
53、
下面选项中,属于QueryRunner类中定义的方法是( BC)
1分
• A、delete()
• B、query()
• C、update()
• D、insert()
54、
下列选项中,属于ResultSetHandler接口实现类的是(ACD)
1分
• A、BeanListHandler
• B、BeanSetHandler
• C、BeanMapHandler
• D、ScalarHandler
55、
以下有关ResultSetHandler接口的常用实现类说法正确的是(ABCD)(多选)
1分
• A、BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
• B、BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,并存放到List里。
• C、ScalarHandler:将结果集中某一条记录的其中某一列的数据存储成Object对象。
• D、ArrayHandler:把结果集中的第一行数据转成对象数组
1. 简述请求转发与重定向的异同?(至少写3点)
2. JSTL标签库实际上是由5个不同功能的标签库共同组成,请列出这5个标签库,并分别简述它们的作用。
3. 请按照以下要求设计一个购物车的类PurchaseServlet。
书籍数据如下:
public class BookDB {
private static Map<String, Book> books = new LinkedHashMap<String, Book>();
static {
books.put(“1”, new Book(“1”, “javaweb开发”));
books.put(“2”, new Book(“2”, “jdbc开发”));
books.put(“3”, new Book(“3”, “java基础”));
books.put(“4”, new Book(“4”, “struts开发”));
books.put(“5”, new Book(“5”, “spring开发”));
}
// 获得所有的图书
public static Collection getAll() {
return books.values();
}
// 根据指定的id获得图书
public static Book getBook(String id) {
return books.get(id);
}
要求如下:
创建一个PurchaseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用request.getSession()实现购物车。
将session的id保存到cookie中
重定向到/chapter06/CartServlet
4. 请按照以下要求写出下面Servlet的配置信息。
在cn.itcast包中有HelloServlet类。
在浏览器输入http://localhost:8080/myapp/servlet/HelloServlet访问到Servlet。
写出在web.xml中关于该Servlet的配置信息。
5. 简述什么是EL保留字。
6. 在编写传智书城注册页面时,使用get方式提交数据,你觉得是否合适,请给出理由。
7. 简述什么是Cookie及其它的作用。
8. 请描述HTML文档中注释标记的作用。
9. 简述什么是JavaScript以及JavaScript的作用。
10. 简述你对内嵌式CSS样式表中关于“层叠性”的理解。
11. 阅读下面代码片段:
Book book = BookDB.getBook(id);
HttpSession session = req.getSession();
1_______
if (cart == null) {
cart = new ArrayList();
session.setAttribute(“cart”, cart);
}
cart.add(book);
要能实现购物车功能,请分析出1处应当填入什么代码?
12. 请编写一个格式良好的XML文档,要求里面包含
足球队一支,队名为Madrid,球员5人:Ronaldo、Casillas、Ramos、Modric、Benzema;
篮球队一支,队名为Lakers,队员2人:Oneal,Bryant。
里面要求含有注释,注释内容自定。
13. 请按照以下要求设计一个实现文件上传的类UploadServlet。
要求如下:
1)已知form.html文件中的form表单内定义了一个名为name的文本框及名为myfile的文件域,具备文件上传的前提条件。
2)在UploadServlet类的doPost()方法中,写出文件上传的相关代码。
3)上传的文件保存在当前应用程序的upload文件夹下。
14. XML和HTML的区别
15. 请列举出三个HttpServletResponse常用的响应状态码,并说出它们的意义
16. 请简述MVC模式中3个核心模块的作用。
17. 请按照以下要求设计监听器类。
已知web.xml中存在如下配置:
cn.itcast.listener.MyListener
设计一个监听器用于实现对HttpSession域对象创建及销毁的监听。
在HttpSession对象初始化时在控制台输出”HttpSession对象被创建了”。
在HttpSession对象销毁时在控制台输出” HttpSession对象被销毁了”。
18. 请按照以下要求设计用于获取多个参数及值的类ParameterServlet。
要求如下:
创建一个ParameterServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用HttpServletRequest对象的getParameterMap()方法得到所有参数名及值的Map集合。(这样可以不再关注参数名过多的问题了)
遍历Map集合并输出到控制台。
19. 请阅读下面的程序,在空白处填写正确的代码。______我是一个一级标题喔!______我是一段文字。
20. 列举出常用的单标记和双标记。
21. 请按照以下要求设计一个向页面输出中文的类ChineseServlet。
要求如下:
创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用HttpServletResponse对象的setContentType()方法将浏览器编码改为utf-8。
使用HttpServletResponse对象获取输出流,向浏览器输出“传智播客欢迎您”的中文字样。
22. 请编写一个简单的JSP文件test.jsp,使用taglib指令引入Core标签库,并在该文件中使用<c:out>标签输出“Hello World!”。
23. 请写出,监听域对象创建和销毁的事件监听器所实现的接口。
24. 简述什么是Session
25. 阅读下列程序,在空白处填写正确的代码,使程序能读取该servlet的配置信息,从中获得参数名为encoding对应的参数值,并输出到页面上。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
ServletConfig config = __________;
String param = config.getInitParameter(“encoding”);
out.println(“encoding=” + param);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
26. 简述监听域对象属性变更的接口中具有的方法及它们的作用。
27. 简述MVC设计模式中视图(view)的作用?(写出3点)
28. 简述配置文件中,Filter的元素的作用。
29. 请按照如下要求编写JDBC程序,用于读取数据库中的users表信息,并将结果输出。
要求如下:
编写一个类Example01
数据库连接url=” jdbc:mysql://localhost:3306/chapter01”
用户名及密码都为root
在控制台输出user表信息如下:
| id | name | password | email |
| 1 | zs | 123456 | zs@sina.com |
| 2 | lisi | 123456 | lisi@sina.com |
| 3 | wangwu | 123456 | wangwu@sina.com|
±—±-------±---------±----------------+
30. 请按照下列要求设计一个Cookie实现用户上次访问时间显示的类LastAccessServlet。
要求如下:
创建一个LastAccessServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用request.getCookies()得到所有cookie形成的cookie数组,并进行遍历。
如果遍历过程中找到cookie信息中存在lastAccess属性则输出,否则创建cookie对象设置值为当前时间并发送给客户端。
cookie的存活时间为1小时,访问当前应用中的所有资源客户端都回送cookie信息。
31. 简述XML Schema与DTD相比有哪些优点? (列举至少3点)
32. 简述MVC设计模式中控制器的作用?(至少写出3点)
33. 简述Cookie与Session的区别?(至少写出3点)
34. 在一个完整的XML文档中,必须包含一个XML文档的声明,请写出XML声明的基本语法结构?并列举出3个常用属性及它的作用?
35. 简述JSP开发模型Model1的优点?(写出3点)
36. 请阅读下列的XML文档,其中有6处错误,请一一指出并改正。
<?XML version="1.0" standalone="no" encoding="gb2312"?><联系人>
张三
001
<公司>
<子公司1>北京分公司</子公司1>
</公司>
zhangsan@itcast.cn
<电话><010>62345678</电话>
<地址>
<省份>北京</省份>
<城市>北京市</城市>
<街道>海淀区上地五街1234号</街道>
</地址>
</联系人>
37. 请简述JSP Model1模型的工作原理。
38. 简述文件上传时必须具备的三个前提条件。
39. 在Schema文档中,使用XSD限定定义带有一个限定且名为 “age” 的元素。要求age 的值不能低于 0 或者高于 120。
40. 在XML Schema文档中,定义一个雇员的年龄时,要求是18~58周岁之间。请写出相应的元素声明?
41. 简述命名XML元素应该遵守的规范?(至少写4点)
42. 如何将单独的CSS文件引入到HTML页面中?
43. 下面有一些DTD的语句,请将它转化为Schema语言。
<!ELEMENT book (title,author,price)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT price (#PCDATA)>44. 在HTML语言中,
标记的常用属性有哪些?45. 阅读下面代码片段:
<c:if test=“true” >
true
</c:if>
<c:if test=“false” >
false
</c:if>
请使用其他标签进行替换。
46. 请简要说明什么是无序列表?
47. 请阅读下面的程序,根据注释中的要求填写代码。
_____________________
_____________________
48. 请阅读下面的代码,在空白处填写正确的代码, 实现使用BeanUtils工具访问JavaBean的属性的功能。
public class BeanUtilsDemo {
public static void main(String[] args) throws Exception {
//获取指定JavaBean的Class对象
Class cs = Class.forName(“cn.itcast. javabean.Person”);
//创建对象
Person p = (Person)__________;
//创建map集合,用于存放属性及其属性值
Map<String, Object> map = new HashMap<String, Object>();
map.put(“name”, “Tom”);
map.put(“age”, 30);
//使用populate()方法为对象的属性赋值
___________________;
//打印赋值后对象的信息
System.out.println§;
}
}
49. 简述include指令和jsp:include标签实现包含的区别?
50. 简述JSP的九个内置对象及它们分别所对应的类。
51. 在XML Schema文档中,要限定一个letter的元素,要求可接受的值只能是字母a-z其中一个,请写出相应的元素声明?
52. 请按照以下要求设计实现查询指定记录的方法。
要求如下:
1.指定表为users,包括id,name,password三个字段。
2.已提供JDBCUtils工具类实现获取连接,关闭资源等相关方法。
3.编写findById方法,实现根据id查询指定的记录,并将数据封装到User类的对象中。
53. 请问在chapter02应用的web.xml文件中进行哪些配置,可以将welcome.html页面配置成该应用的默认页面。
54. 简述Commons-FileUpload组件实现文件上传的优点。(至少写3点)
55. 请列举可以获得ServletContext的方法。
56. 请阅读下面无序列表搭建的结构,根据注释中的要求填写代码。
<li___________________>裤子
57. 请按照以下要求设计监听器类。
已知web.xml中存在如下配置:
cn.itcast.listener.MyListener
要求如下:
1)设计一个监听器用于实现对HttpSession域对象创建及销毁的监听。
2)在HttpSession对象初始化时在控制台输出”HttpSession对象被创建了”。
3)在HttpSession对象销毁时在控制台输出” HttpSession对象被销毁了”。
58. 请在web.xml文件中使用元素为整个Web应用程序设置错误处理页面。已知:处理状态码为404的页面为404.jsp, 处理状态码为500的页面为500.jsp。
59. 阅读下面的代码,并按照要求填写代码。HTML代码:
我是一个段落
我是li里的p
60. 请阅读下面的代码,根据注释中的要求填写代码。
<img src=“pic.jpg”
alt=“传智播客”
width=“200”
height=“200”
______________________;/> /设置3px的边框效果/
_____________________;/> /设置鼠标悬停时显示"传智播客LOGO"的文本提示效果/
61. 编写一个servlet,实现统计网站被访问次数的功能。
步骤:
1.新建一个类ShowTimesServlet继承HttpServlet,重写doGet和doPost方法
2.在doPost方法中调用doGet方法,在doGet方法中实现统计网站被访问次数的功能,用户每请求一次servlet,使访问次数times加1
3.获取ServletContext,通过它的功能记住上一次访问后的次数
62. 在XML Schema文档中,要限定一个car的元素,可接受的值只有:Audi、Golf、BMW。请写出相应的元素声明?
63. 使用taglib指令导入Core标签库,具体代码如下:
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core”
prefix=“c”%>
请简述您对上述taglib指令中uri和prefix属性的理解。
64. 简述ServletContext接口的三个主要作用。
65. 表单构成中的表单控件、提示信息和表单域是什么?请具体解释。
66. 请简述HTML在Web标准中属于哪个分层?并简述其作用。
67. 请简述MVC模式中的M、V和C各代表什么。
68. 简述Servlet事件监听器的分类。(写出三点)
69. 阅读下列XML文档,并反向推导该XML文档符合的DTD约束book.dtd的内容。
<?xml version="1.0" encoding="gb2312" standalone="no"?><书架>
<书 编号=“book01”>
<书名>Java就业培训教程</书名>
<作者>张孝祥</作者>
<售价>58.00元</售价>
</书>
<书 编号=“book02”>
<书名>EJB3.0入门经典</书名>
<作者>黎活明</作者>
<售价>39.00元</售价>
</书>
</书架>
70. 简述JSPModel2所具有的优点?(至少写出3点)
71. IE浏览器打开exception对象处理的异常信息时,如果不能够显示出结果并且报出500错误,请简述处理方法。
72. 请按照以下要求写出C3P0获取数据源的代码。
要求如下:
1)已存在src/c3p0-config.xml配置文件,并且配置好默认的配置信息,默认配置结点为itcast。
2)编写Example05类,进行测试
73. 阅读下面代码片段,请说明它的作用,如果代码有错,请指出原因。
String[] names = request.getParameterNames(“name”);
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]+" ");
}
74. 请按照以下要求设计一个处理文件下载的类DownloadServlet。
要求如下:
1)要下载的图片资源位于应用的”/download/1.jpg”目录下
2)实现该文件下载,下载的文件名为1.jpg
3)编写一个Servlet实现文件下载功能
75. 请阅读下面的程序,根据注释中的要求填写代码。
76. 请参考传智书城首页展示图,并结合已学习的网页知识,分析该首页面可以划分为哪几个部分?
77. 请按照以下要求设计实现删除指定记录的方法。
要求如下:
1.指定表为users。
2.已提供JDBCUtils工具类实现获取连接,关闭资源等相关方法。
3.编写deleteById方法,实现根据id删除指定的记录。
78. 简述ResultSetHandler接口常用的实现类及其作用(写出三个)。
79. 请阅读下面的代码,并按照要求作答。
HTML中的代码如下:
文字
使用内嵌式CSS样式,对应代码如下:
认真分析以上代码,写出页面中的“文字”是什么颜色?
80. 简述什么是CSS以及CSS的作用。
81. 列举出Servlet事件监听器可以监听的对象?(至少写出三个)
82. ChineseServlet。
创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用HttpServletResponse对象的setContentType()方法将浏览器编码改为utf-8。
使用HttpServletResponse对象获取输出流,向浏览器输出“传智播客欢迎您”的中文字样。
83. 简述HTTP协议的无状态性的特点?
84. 简述网页中常用字号的长度单位都有哪些?
85. 简述PageContext.forward()方法和jsp:forward标签的区别。
86. 请按照以下要求设计一个实现下载资源防盗链的类DownManagerServlet。
要求如下:
创建一个DownManagerServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中,使用HttpServletRequest对象的getHeader(“referer”)方法得到关字段referer的值,并判断是否可以进行资源下载。
如果不能下载,则进入下载页。
87. 简述什么是URL重写
88. 简述数据库连接池的优点。
89. 简述Servlet事件监听器的作用。(写出三点)
90. 已知存在一个datetime.jap能够显示当前时间。请设计一个jsp文件,可以在浏览器中显示“欢迎来到传智播客,现在的时间是:”后面显示出当前时间。
91. 简述Javabean规范都有哪些?(至少写出2点)
92. 简述HttpServletResponse接口中addHeader()与sertHeader()方法的区别。
93. 请简述什么是缺省Servlet,以及缺省Servlet的作用。
94. 创建一个用post请求连接到student@itcast.cn的表单,表单名称为itcastmail。
95. 请按照以下要求设计一个自动登录的Filter程序。
已知在客户端保存好了名为” autologin”的cookie用户信息,形式:username_password,即用户名与密码形式,之间用”_”分隔。
假定登录用户信息为:username的值”itcast”,password的值为”123456”。
编写AutoLoginFilter.java的过滤器,实现自动登录功能。
96. 简述DriverManager和DataSource中的getConnection()方法的区别。
97. 请按照以下要求设计一个程序,使用BeanUtils工具为Person对象赋值:
class Person {
private String name;
private int age;
//getter与setter省略
}
要求如下:
1.直接生成User对象
2.使用BeanUtils工具为name属性赋值”youjun”,age赋值为31。
3.使用BeanUtils工具取出属性值,并在控制台输出。
98. 简述什么是JSP Model2?
99. 请按照以下要求设计一个能处理以get方式提交表单,并包含(username=张三&password=123&hobby=游戏&hobby=踢球)的类ChineseServlet。
要求如下:
创建一个ChineseServlet类,使其继承HttpServlet类并重写该类的doGet()方法。
在doGet()方法中接收参数并解决乱码,并进行输出到控制台。
doPost()调用doGet()进行类似处理。
100. 简述过滤器的基本功能。
101. 简述HttpServletResponse接口的sendRedirect()方法实现重定向的原理?
102. 简述文件下载的实现原理。
103. 简单介绍一下request.getAttribute()和request.getParameter()的区别
104. 简述数据库连接池的工作机制是什么?
105. 创建一个用get请求连接到test.php的表单,表单名称为test。
106. 请简述什么是JSP模板元素及它的作用?
107. 简述什么是JSPModel。
108. 请写出,用于监听绑定到HttpSession域中某个对象状态的事件监听器所应实现的接口。
109. 简述什么是预编译。
110. 请阅读下面的代码,根据注释中的要求填写代码。
111. 运用Dreamweaver工具创建一个简单网页,并用火狐浏览器进行测试,具体要求如下:1、 网页标题为“传智播客网页平面设计学院”2、网页相应的文本内容为“课程涵盖Photoshop 图像处理、Illustrator 图形设计、平面广告创意设计、字体设计与标志设计、网页设计与制作”。显示 效果为:字号为“7”、文字颜色为“蓝色”、字体为“微软雅黑”
112. 简述POST请求和GET请求有什么不同?(至少2点)
113. 简述MVC设计模式中模型(Model)模块的作用?(至少写出3点)
114. 简述ServletContextListener接口中定义的方法及方法的作用。
115. 请简要概述什么是Servlet的多重映射,并列出Servlet多重映射的实现方式。
116. 请写出,监听域对象属性增加和删除的事件监听器所实现的接口
117. 简述定义EL标识符的规范。
118. 简述什么是重定向。
119. 简述include指令实现静态包含的特点。(写出3点)
120. 请按照以下要求写出下面Servlet的配置信息。
在cn.itcast.chapter04.servlet包中有HelloServlet类。
写出在web.xml中关于该Servlet的配置信息。
121. 阅读下列web.xml文件中的代码片段,根据它编写一个servlet,实现获取该文件中参数信息的功能。
TestServlet
cn.itcast.chapter04.servlet.TestServlet
encoding</param-name
UTF-8
TestServlet
/TestServlet
122. 简述什么是过滤器链。
123. 请写出DBUtils工具类的常用类和接口(写出三个)。
124. 简述MVC设计模式的工作流程?
125. 请叙述创建JSP页面的步骤。
126. 简述事件监听器的工作步骤。
127. RedirectServlet时,会产生哪种情况。(5分)
public class RedirectServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.sendRedirect("http://www.itcast.cn ");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
128. 简述JDBC编程的6个开发步骤。
129. 简述什么是内置对象,以及内置对象的作用?
130. 简述pageContext对象的作用?(至少写出2点)
131. 简述什么是MVC设计模式?
132. 简述FilterConfig接口中getFilterName()方法的作用。
133. 简述HttpSessionListener接口中定义的方法及方法作用。
134. 请写出,监听域对象属性增加和删除的事件监听器所实现的接口
135. 请列举出Tomcat安装目录下的子目录,并对其进行简要说明?(至少列出5个)
136. 简述FilterConfig接口中getInitParameterNames()方法的作用。
137. 简述BeanListHandler的作用。
138. 简述什么是会话技术?
139. 简述什么是数据库连接池。
140. 简述ServletRequestListener接口中定义的方法及方法作用。
141. 简述.运算符和[]运算符的区别与联系。
142. 简述FilterConfig接口中getInitParameter()方法的作用。
答案
简答题(每题1分,共计142分)
1. 正确答案:1.请求转发和重定向都可以实现访问一个资源时转向当前应用资源
2.请求转发是一次请求一次响应,而重定向为两次请求两次响应
3.一般情况下应该使用请求转发,减少浏览器对服务器的访问,减轻服务器压力
4.如果需要改变浏览器的地址栏,或更改浏览器的刷新按钮的功能时需要使用重定向
2. 正确答案:Core是一个核心标签库","它包含了实现Web应用中通用操作的标签。
I18N是一个国际化/格式化标签库","它包含实现Web应用程序的国际化标签和格式化标签。
SQL是一个数据库标签库","它包含了用于访问数据库和对数据库中的数据进行操作的标签。
XML是一个操作XML文档的标签库","它包含对XML文档中的数据进行操作的标签。
Functions是一个函数标签库",“它提供了一套自定义EL函数”,"包含了JSP网页制作者经常要用到的字符串操作。
3. 正确答案:public class PurchaseServlet extends HttpServlet {
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException {
// 获得用户购买的商品
String id = req.getParameter(“id”);
if (id == null) {
// 如果id为null,重定向到ListBookServlet页面
String url = “/chapter06/ListBookServlet”;
resp.sendRedirect(url);
return;
}
Book book = BookDB.getBook(id);
// 创建或者获得用户的Session对象
HttpSession session = req.getSession();
// 从Session对象中获得用户的购物车
List cart = (List)
session.getAttribute(“cart”);
if (cart == null) {
// 首次购买,为用户创建一个购物车(List集合模拟购物车)
cart = new ArrayList();
// 将购物城存入Session对象
session.setAttribute(“cart”, cart);
}
// 将商品放入购物车
cart.add(book);
// 创建Cookie存放Session的标识号
Cookie cookie = new Cookie(“JSESSIONID”, session.getId());
cookie.setMaxAge(60 * 30);
cookie.setPath("/chapter06");
resp.addCookie(cookie);
// 重定向到购物车页面
String url = “/chapter06/CartServlet”;
resp.sendRedirect(url);
}
}
4. 正确答案:
helloServlet
cn.itcast.HelloServlet
helloServlet
/servlet/HelloServlet
5. 正确答案:保留字是就是编程语言里事先定义好并赋予了特殊含义的单词,和其它语言一样,EL表达式中也定义了许多保留字,如false、not等。
6. 正确答案:使用get方式提交注册页面数据不合适。
主要理由:1,安全性,post比get请求提交数据方式安全性高,而该设计用于提交用户注册信息,通常会有用户名和密码,所以一定要保证安全性;
2,传输数据量大小,post比get请求提交数据方式传输数据量大的多,get传送的数据量较小,不能大于2KB ,而该设计用户提交用户注册信息,信息量较大,使用get方式可能会出现丢失问题。
7. 正确答案:Cookie是一种会话技术,它用于将会话过程中的数据保存到用户的浏览器中,从而使浏览器和服务器可以更好地进行数据交互。
8. 正确答案:如果需要在HTML文档中添加一些便于阅读和理解但又不需要显示在页面中的注释文字","就需要使用注释标记。应用注释标记方便查找、对比及理解代码。
9. 正确答案:JavaScript是Web页面中的一种脚本语言",“通过JavaScript可以将静态页面转变成支持用户交互并响应相应事件的动态页面。在网站建设中”,“HTML用于搭建页面结构”,“CSS用于设置页面样式”,"而JavaScript则用于为页面添加动态效果。
10. 正确答案:关于内嵌式CSS样式表中“层叠性”","有两层意思:
(1)所谓层叠性是指多种CSS样式的叠加。一个HTML标签","可以通过id、class、标签选择器来获得不同的样式。即多个CSS可以同时作用于一个HTML标签上。
(2)当作用在HTML标签上的CSS有“冲突”的时候",“这时就会出现优先级的问题。遵循的规则大致是:对于由多个基础选择器构成的复合选择器(并集选择器除外)”,“其权重为这些基础选择器权重的叠加。权重相同时”,“CSS遵循就近原则。如果是通过继承关系影响的”,"继承样式的权重为0。
11. 正确答案:因为cart没有声明,而new ArrayList()也说明了cart的类型是List,另外判断后再将cart放入session,也说明了cart应当先从session中取出来,所以代码是List cart = (List) session.getAttribute(“cart”);
12. 正确答案:<?xml version="1.0" encoding="gb2312" standalone="yes"?>
<球队列表>
<球队 类型=“足球队”>
<队名>Madrid</队名>
<队员>
<姓名>Ronaldo</姓名>
<姓名>Casillas</姓名>
<姓名>Ramos</姓名>
<姓名>Modric</姓名>
<姓名>Benzema</姓名>
</队员>
</球队>
<球队 类型=“篮球队”>
<队名>Lakers</队名>
<队员>
<姓名>Oneal</姓名>
<姓名>Bryant</姓名>
</队员>
</球队>
</球队列表>
13. 正确答案:public class UploadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
try {
// 创建工厂
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(“e:\Target”));
// 创建 fileupload 组件
ServletFileUpload fileupload = new ServletFileUpload(factory);
fileupload.setHeaderEncoding(“utf-8”);
// 解析 request
List fileitems = fileupload.parseRequest(request);
PrintWriter writer=response.getWriter();
// 遍历集合
for (FileItem fileitem : fileitems) {
// 判断是否为普通字段
if (fileitem.isFormField()) {
// 获得字段名和字段值
String name = fileitem.getFieldName();
String value = fileitem.getString(“utf-8”);
} else {
// 上传的文件路径
String filename = fileitem.getName();
writer.print(“文件来源:”+filename+"
");
// 截取出文件名
filename = filename
.substring(filename.lastIndexOf("\") + 1);
writer.print(“成功上传的文件:”+filename+"
");
// 文件名需要唯一
filename = UUID.randomUUID().toString() + “_” + filename;
// 在服务器创建同名文件
String webPath = “/upload/” + filename;
String path = getServletContext().getRealPath(webPath);
// 创建文件
File file = new File(path);
file.getParentFile().mkdirs();
file.createNewFile();
// 获得上传文件流
InputStream in = fileitem.getInputStream();
// 获得写入文件流
OutputStream out = new FileOutputStream(file);
// 流的对拷
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > 0)
out.write(buffer, 0, len);
// 关流
in.close();
out.close();
// 删除临时文件
fileitem.delete();
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
14. 正确答案:HTML中的标记是用来显示数据的,而XML中的标记用来描述数据的性质和结构。
HTML是不区分大小写的,而XML是严格区分大小写的。
HTML可以有多个根元素,而格式良好的XML有且只能有一个根元素。
HTML中,属性值的引号是可用可不用的,而XML中,属性值必须放在引号中。
HTML中,空格是可用自动过滤的,而XML中,空格部分则不会自动删除。
HTML中的标记是预定义的,而XML中的标记是可以随便定义的,并且可扩展。
15. 正确答案:200:表示请求成功
404:表示没有找到资源
302:表示临时使用其它资源处理当前请求,但是,之后的请求还应该使用原来的地址
500:表示服务器内部发生了错误
505:表示服务器不支持或拒绝支持请求行中给出的HTTP版本
400:表示客户端发送的请求语法有误
16. 正确答案:模型负责管理应用程序的业务数据以及定义访问控制和修改这些数据的业务规则;视图负责与用户进行交互,它从模型中获取数据向用户展示,同时也能将用户请求传递给控制器进行处理;控制器是负责应用程序中处理用户交互的部分,它负责从视图中读取数据,控制用户输入,并向模型发送数据。
17. 正确答案:public class MyListener implements HttpSessionListener, {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println(“HttpSession对象被创建了”);
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println(“HttpSession对象被销毁了”);
}
}
18. 正确答案:public class ParameterServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Map<String, String [] > map = request.getParameterMap();
for(Map.Entry<String, String []> item :map.entrySet()){
//参数名
String paramName = item.getKey();
//这个参数名所对应的一组值
Object[] paramValue = item.getValue();
System.out.println (paramName +" "+paramValue );
}
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
19. 正确答案:
我是一段文字。
20. 正确答案:双标记:
单标记:
21. 正确答案:public class ChineseServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String data=“传智播客欢迎您”;
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
out.println(data);
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
22. 正确答案:<%@ page language=“java” contentType="text/html;
charset=utf-8" pageEncoding=“utf-8”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core”
prefix=“c”%>
<c:out value=“Hello World!”></c:out>
23. 正确答案:ServletContextListener接口。
HttpSessionListener接口。
ServletRequestListener接口。
24. 正确答案:Session是一种将会话数据保存到服务器端的技术,需要借助Cookie技术来实现。
25. 正确答案:this.getServletConfig()或者getServletConfig()
26. 正确答案:1.attributeAdded()方法,它用于当被监听域对象中添加属性时,该方法被调用。
2.attributeRemoved ()方法,它用于当被监听域对象中删除属性时,该方法被调用。
3.attributeReplaced ()方法,它用于当被监听域对象中替换属性时,该方法被调用。
27. 正确答案:1.负责与用户进行交互
2.从模型中获取数据向用户展示
3.将用户请求传递给控制器进行处理
28. 正确答案:在web.xml文件中, 元素用于配置一个Filter所负责拦截的资源。
29. 正确答案:public class Example01 {
public static void main(String[] args) throws SQLException {
// 1. 注册数据库的驱动
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
// 2.通过DriverManager获取数据库连接
String url = “jdbc:mysql://localhost:3306/chapter01”;
String username = “root”;
String password = “itcast”;
Connection conn = DriverManager.getConnection(url, username, password);
// 3.通过Connection对象获取Statement对象
Statement stmt = conn.createStatement();
// 4.使用Statement执行SQL语句。
String sql = “select * from users”;
ResultSet rs = stmt.executeQuery(sql);
// 5. 操作ResultSet结果集
System.out.println("id | name | password | email |”);
while (rs.next()) {
int id = rs.getInt(“id”); // 通过列名获取指定字段的值
String name = rs.getString(“name”);
String psw = rs.getString(“password”);
String email = rs.getString(“email”);
System.out.println(id + " | " + name + " | " + psw + " | " + email);
}
6.回收数据库资源
rs.close();
stmt.close();
conn.close();
}
}
30. 正确答案:package cn.itcast.chapter06.cookie.example;
import java.io.IOException;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request,
HttpServletResponse response)throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
/*
设定一个 cookie 的name : lastAccessTime
读取客户端发送cookie 获得用户上次的访问时间显示*/
String lastAccessTime = null;
// 获取所有的cookie,并将这些cookie存放在数组中
Cookie[] cookies = request.getCookies();
for (int i = 0; cookies != null && i < cookies.length; i++) {
if (“lastAccess”.equals(cookies[i].getName())) {
// 如果cookie的名称为lastAccess,则获取该cookie的值
lastAccessTime = cookies[i].getValue();
break;
}
}
// 判断是否存在名称为lastAccess的cookie
if (lastAccessTime == null) {
response.getWriter().print(“您是首次访问本站!!!”);
} else {
response.getWriter().print(“您上次的访问时间”+lastAccessTime);
}
// 创建cookie,将当前时间作为cookie的值发送给客户端
Cookie cookie = new Cookie(“lastAccess”,new Date().toLocaleString());
cookie.setMaxAge(60*60);//保存1小时
//访问chapter06下资源时回送cookie
cookie.setPath("/chapter06");
// 发送 cookie
response.addCookie(cookie);
}
}
31. 正确答案:1.XML Schema采用的是XML语法格式,而且它本身也是一种XML文档,因此,XML Schema语法格式比DTD更好理解。
2.XML Schema则采用与XML文档相同的合法性验证机制。
3.XML Schema对名称空间支持得非常好,而DTD几乎不支持名称空间。
4.XML Schema比XML DTD支持更多的数据类型,包括用户自定义数据类型。
5.XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
32. 正确答案:1.负责应用程序中处理用户交互的部分
2.负责从视图中读取数据
3.控制用户输入
4.向模型发送数据
33. 正确答案:1.Cookie和HttpSession是保存会话相关数据的技术,其中Cookie将信息存储在浏览器端是客户端技术,Session将数据保存在服务器端是服务器端技术
2.Cookie是基于HTTP协议中的Set-Cookie响应头和Cookie请求头进行工作的
3.默认情况下HttpSession是基于一个名称为JSESSIONID 的特殊Cookie工作的
4.浏览器对Cookie具有严格的限制,一个网站能在浏览器中保存多少Cookie是有限制的
5.HttpSession默认是基于Cookie运作的
34. 正确答案:XML声明的基本语法结构为:<?xml版本信息[编码信息][文档独立性信息]?> ,需要注意的是,在“<”和“?”之间、“?”和“>”之间以及第一个“?”和xml之间不能有空格,另外,中括号([])中的部分是可选的。
version属性表示XML的版本。目前,最常用的XML版本是1.0。
encoding属性来说明编码,默认情况下,XML文档使用的是UTF-8编码方式。更改编码为gbk,<?xml version="1.0" encoding="gb2312"?>
standalone="yes"来声明这个文档是独立的文档。如果文档依赖于外部文档,可以通过standalone="no"来声明,默认情况下,standalone属性的值为no。
35. 正确答案:1.简单轻便
2.适合小型Web项目的快速开发
3.设计实现了数据、业务逻辑和页面显示的分离,在一定程度上实现了程序开发的模块化,降低了程序修改和维护的难度。
36. 正确答案:1、共有6处错误,具体如下:
(1)文档声明时,XML应该小写。
(2)文档声明时,如果同时设置了encoding和standalone属性,standalone属性要位于encoding属性之后。
(3)XML文档没有根元素, 要加上<联系人列表>------</联系人列表>
(4)XML文档中引入DTD文档时,引入的“联系人.dtd”文档应该用英文引号(单引或双引)引起来。
(5)XML文档元素区分大小写,因此“张三”中元素名是错的,应该统一大小写。
(6)“<电话><010>62345678</电话>”电话元素内容中的特殊字符“<”和“>”,应该用预定义实体“<”和“>”代替。
2、改正后的XML文档如下:
<?xml version="1.0" encoding="gb2312" standalone="no"?><联系人列表>
<联系人>
张三
001
<公司>
<子公司1>A公司</子公司1>
</公司>
zhang@aaa.com
<电话><010>62345678</电话>
<地址>
<省份>北京</省份>
<城市>北京市</城市>
<街道>海淀区上地五街1234号</街道>
</地址>
</联系人>
</联系人列表>
37. 正确答案:JSP Model1采用JSP+JavaBean的技术,其中,JSP实现流程控制和页面控制;JavaBean封装数据和业务逻辑。
38. 正确答案:1.表单的method属性设置为post方式。
2.表单的enctype属性设置为“multipart/form-data”类型。
3.添加文件的input标签类型设置为file类型。
39. 正确答案:<?xml version="1.0"?>
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>
<xs:element name=“age”>
xs:simpleType
<xs:restriction base=“xs:integer”>
<xs:minInclusive value=“0” />
<xs:maxInclusive value=“120” />
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:schema>
40. 正确答案:<xs:element name=“age”>
xs:simpleType
<xs:restriction base=“xs:integer”>
<xs:minInclusive value=“18”/>
<xs:maxInclusive value=“58”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
41. 正确答案:1.区分大小写,例如:
和
是两个不同的标记。
2.元素名称中,不能包含空格、冒号、分号、逗号和尖括号等,元素不能以数字开头,否则XML文档会报错。
3.建议不要使用“.”,因为在很多程序语言中,“.”用于引用对象的属性。
4.建议不要用减号(-),而以下划线(_)代替,以避免与表达式中的减号(-)运算符发生冲突。
5.建议名称不要以字符组合xml(或XML、或Xml等)开头。
6.建议名称的大小写尽量采用同一标准,要么全部大写,要么全部小写。
7.名称可以使用非英文字符,例如中文,但有些软件可能不支持非英文字符以外的字符,在使用时应考虑这种情况。
42. 正确答案:链入式可以将所有的样式放在一个或多个以.css为扩展名的外部样式表文件中",“通过标记将外部样式表文件链接到HTML文档中”,"其基本语法格式如下:
标记需要放在头部标记中","并且必须指定标记的三个属性:l href:定义所链接外部样式表文件的URL",“可以是相对路径”,"也可以是绝对路径。
l type:定义所链接文档的类型",“在这里需要指定为“text/css””,"表示链接的外部文件为CSS样式表。
rel:定义当前文档与被链接文档之间的关系",“在这里需要指定为“stylesheet””,"表示被链接的文档是一个样式表文件。
43. 正确答案:<?xml version="1.0"?>
<xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema”>
<xs:element name=“book”>
xs:complexType
xs:sequence
<xs:element name=“title” type=“xs:string” />
<xs:element name=“author” type=“xs:string” />
<xs:element name=“price” type=“xs:decimal” />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
44. 正确答案:在HTML语言中","table标记的常用属性有:border、cellspacing、cellpadding、width、height、align、bgcolor、background。
45. 正确答案:<c:choose>
<c:when test=“true”>
true
</c:when>
<c:otherwise>
false
</c:otherwise>
</c:choose>
46. 正确答案:无序列表是网页中最常用的列表",“之所以称为“无序列表””,“是因为其各个列表项之间没有顺序级别之分”,“通常是并列的。例如传智播客官网的导航栏结构清晰”,“各项之间(如“网页平面”与“java培训”)排序不分先后”,"这个导航栏就可以看做一个无序列表。
47. 正确答案:1、
2、
48. 正确答案:cs.newInstance()
BeanUtils.populate(p, map)
49. 正确答案:1.jsp:include标签中要引入的资源和当前JSP页面是两个彼此独立的执行实体,即被动态引入的资源必须能够被Web容器独立执行。而include指令只能引入遵循JSP格式的文件,被引入文件与当前JSP文件需要共同合并才能翻译成一个Servlet源文件。
2.jsp:include标签中引入的资源是在运行时才包含的,而且只包含运行结果。而include指令引入的资源是在编译时期包含的,包含的是源代码。
3.jsp:include标签运行原理与RequestDispatcher.include方法类似,即被包含的页面不能改变响应状态码或者设置响应头,而include指令没有这方面的限制。
50. 正确答案:1.out javax.servlet.jsp.JspWriter 用于页面输出
2.request javax.servlet.http.HttpServletRequest 得到用户请求信息,
3.response javax.servlet.http.HttpServletResponse 服务器向客户端回应信息
4.config javax.servlet.ServletConfig 服务器配置,可以取得初始化参数
5.session javax.servlet.http.HttpSession 用来保存用户的信息
6.application javax.servlet.ServletContext 所有用户的共享信息
7.page java.lang.Object 指当前页面转换后的Servlet类的实例
8.pageContext javax.servlet.jsp.PageContext JSP的页面容器
9.exception java.lang.Throwable 表示JSP页面所发生的异常,在错误页中才起作用
51. 正确答案:<xs:element name=“letter”>
xs:simpleType
<xs:restriction base=“xs:string”>
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
52. 正确答案:public User findById(int id) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 获得数据的连接
conn = JDBCUtils.getConnection();
// 获得Statement对象
stmt = conn.createStatement();
// 发送SQL语句
String sql = “SELECT * FROM users WHERE id=” + id;
rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
User user = new User();
user.setId(rs.getInt(“id”));
user.setName(rs.getString(“name”));
user.setPassword(rs.getString(“password”));
return user;
}
return null;
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
return null;
}
53. 正确答案:在web-app标签中进行如下配置即可:
welcome.html
54. 正确答案:1.可以方便地读取“multipart/form-data”类型请求中的数据。
2.可实现一个或多个文件的上传。
3.可以限制上传文件的大小。
4.性能优异,并且使用极其简单。
55. 正确答案:获得ServletContext有三种方法,具体如下:
1)通过getServletContext()方法直接获得。
例如:ServletContext context = getServletContext();
2)通过ServletConfig对象获得。
例如:ServletConfig servletConfig = getServletConfig();
ServletContext context = servletConfig.getServletContext();
3)通过Session获得。
例如:HttpSession session = request.getSession();
ServletContext context = session.getServletContext();
56. 正确答案:1、type=“circle”
2、type=“square”
57. 正确答案:public class MyListener implements HttpSessionListener, {
public void sessionCreated(HttpSessionEvent arg0) {
System.out.println(“HttpSession对象被创建了”);
}
public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println(“HttpSession对象被销毁了”);
}
}
58. 正确答案:
404
/404.jsp
500
/500.jsp
59. 正确答案:.all ul .myli p(或者.myli p);
60. 正确答案:border=“3”
title=“传智播客LOGO”
61. 正确答案:import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ShowTimesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ServletContext context = getServletContext();
Integer times = (Integer) context.getAttribute(“times”);
if (times == null) {
times = new Integer(1);
} else {
times = new Integer(times.intValue() + 1);
}
//设置编码,不然中文会变成乱码
resp.setContentType(“text/html;charset=GB2312”);
//得到输出流对象
PrintWriter out=resp.getWriter();
out.println("
out.println(“页面访问统计”);
out.println("");
out.println(“当前页面被访问了”);
out.println(""+times+“次”);
//设置属性,将times保存到当前的上下文中
context.setAttribute(“times”,times);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}
62. 正确答案:<xs:element name=“car”>
xs:simpleType
<xs:restriction base=“xs:string”>
<xs:enumeration value=“Audi”/>
<xs:enumeration value=“Golf”/>
<xs:enumeration value=“BMW”/>
</xs:restriction>
</xs:simpleType>
</xs:element>
63. 正确答案:在上述代码中",“taglib指令的uri属性用于指定引入标签库描述符文件的URI”,“prefix属性用于指定引入标签库描述符文件的前缀”,“在JSP文件中使用这个标签库中的某个标签时”,"都需要使用这个前缀。
64. 正确答案:1.获取Web应用程序的初始化参数
2.实现多个Servlet对象共享数据
3.读取Web应用下的资源文件
65. 正确答案: 表单控件:包含了具体的表单功能项","如单行文本输入框、密码输入框、复选框、提交按钮、重置按钮等。
提示信息:一个表单中通常还需要包含一些说明性的文字","提示用户进行填写和操作。
表单域:它相当于一个容器",“用来容纳所有的表单控件和提示信息”,“可以通过他定义处理表单数据所用程序的url地址”,“以及数据提交到服务器的方法。如果不定义表单域”,"表单中的数据就无法传送到后台服务器。
66. 正确答案:HTML是超文本标记语言的简称",“在网页三层中属于结构层”,“负责用HTML标签对儿为页面元素施加语义”,"不负责样式和行为。
67. 正确答案:MVC模式分别表示模型(Model)、视图(View)和控制器(Controller)。
68. 正确答案:1.用于监听域对象创建和销毁的事件监听。
2.用于监听域对象属性增加和删除的事件监听器。
3.用于监听绑定到HttpSession域中某个对象状态的事件监听器。
69. 正确答案:<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 售价 (#PCDATA)> <!ATTLIST 书 编号 ID #REQUIRED>70. 正确答案:1.JSP Model 2模型是一种MVC模式
2.MVC模式中的功能模块相互独立
3.使用该模式的软件具有极高的可维护性、可扩展性和可复用性
4.MVC开发模式的Web应用越来越受到欢迎
71. 正确答案:可以点击浏览器菜单栏中的【工具】(IE11可以点击右上角的齿轮图标)→【Internet 选项】→【高级】,将“显示友好错误HTTP错误信息”复选框中的“√”去掉,然后点击窗口的【确认】按钮并刷新页面即可。
72. 正确答案:public class Example05 {
public static DataSource ds = null;
// 初始化C3P0数据源
static {
// 使用c3p0-config.xml配置文件中的named-config节点中name属性的值
ComboPooledDataSource cpds = new ComboPooledDataSource(“itcast”);
ds = cpds;
}
public static void main(String[] args) throws SQLException {
System.out.println(ds.getConnection());
}
}
73. 正确答案:用于实现得到参数name所对应的一组值,并输出到控制台。
74. 正确答案:public class DownloadServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
// 通知浏览器以下载的方式打开
response.addHeader(“Content-Type”, “application/octet-stream”);
response.addHeader(“Content-Disposition”, “attachment;filename=1.jpg”);
// 通过文件流读取文件
InputStream in = getServletContext().getResourceAsStream(
“/download/1.jpg”);
// 获取response对象的输出流
OutputStream out = response.getOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
out.write(buffer, 0, len);
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
75. 正确答案:1、target="_blank"; 2、border=“0”
76. 正确答案:可以分为以下5个大的部分:
77. 正确答案:public boolean deleteById(int id) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 获得数据的连接
conn = JDBCUtils.getConnection();
// 获得Statement对象
stmt = conn.createStatement();
// 发送SQL语句
String sql = “DELETE FROM users WHERE id=” + id;
int num = stmt.executeUpdate(sql);
if (num > 0) {
return true;
}
return false;
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtils.release(rs, stmt, conn);
}
return false;
}
78. 正确答案:1.BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。
2.BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。
3.ScalarHandler:将结果集中某一条记录的其中某一列的数据存储成Object对象。
79. 正确答案:蓝色
80. 正确答案:CSS通常称为CSS样式或样式表",“主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。CSS以HTML为基础”,“提供了丰富的功能”,“如字体、颜色、背景的控制及整体排版等”,"而且还可以针对不同的浏览器设置不同的样式。
81. 正确答案:1.ServletContext域对象的创建及销毁
2.HttpSession域对象的创建及销毁
3.ServletRequest域对象的创建及销毁
82. 正确答案:public class ChineseServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String data=“传智播客欢迎您”;
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
out.println(data);
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
83. 正确答案:HTTP无状态性是指协议对于事务处理没有记忆能力,如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大
84. 正确答案:网页中常用字号的长度单位有两种:
(1)相对长度单位px、em。 px:像素; em:相对于当前对象内文本的字体尺寸。
(2)绝对长度单位in、cm、mm、pt。in:英寸;cm:厘米;mm:毫米;pt:点。
85. 正确答案:1.调用PageContext.forward()方法,当forward()方法后还有语句需要执行时,程序会发生IllegalStateException异常。
2.使用jsp:forward标签,由于jsp:forward标签翻译的Servlet程序会使用return语句终止执行后面的语句,因此,程序会避免报错。
86. 正确答案:public class DownManagerServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=utf-8”);
PrintWriter out = response.getWriter();
// 获取referer头的值
String referer = request.getHeader(“referer”);
// 获取访问地址
String sitePart = “http://” + request.getServerName();
if (referer != null && referer.startsWith(sitePart)) {
// 处理正在下载的请求
out.println(“dealing download …”);
} else {
// 非法下载请求跳转到download.html页面
RequestDispatcher rd = request.getRequestDispatcher("/download.html");
rd.forward(request, response);
}
}
}
87. 正确答案:所谓URL重写,指的是将Session的会话标识号以参数的形式附加在超链接的URL地址后面。对于Tomcat服务器来说,就是将JsessionID关键字作为参数名,会话标识号的值作为参数值附加到URL地址后面。
88. 正确答案:1.允许应用程序重复使用现有的数据库连接,而不是重新建立。
2.当连接完毕后,连接池会将该连接回收,并交付其他的线程使用
3.减少创建和断开数据库连接的次数,提高数据库的访问效率
89. 正确答案:1.监听Web应用程序中ServletContext、HttpSession和ServletRequest等域对象的创建和销毁过程。
2.监听ServletContext、HttpSession和ServletRequest等域对象属性的修改。
3.感知绑定到HttpSession域中某个对象的状态。
90. 正确答案:<%@page language=“java” contentType=“text/html; charset=UTF-8”%>
欢迎来到传智播客,现在的时间是:
<%@ include file=“datetime.jsp”%>
91. 正确答案:1.它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的缺省构造方法。
2.它提供公共的setter方法和getter方法让外部程序设置和获取JavaBean的属性。
3.它是一个公有类。
4.通常可以实现java.io.Serializable用于序列化。
92. 正确答案:两个方法都是用来设置HTTP协议的响应头字段,addHeader()方法可以增加同名的响应头字段,而setHeader()方法则会覆盖同名的头字段。
93. 正确答案:如果某个Servlet的映射路径仅仅是一个正斜线(/),那么这个Servlet就是当前Web应用的缺省Servlet。缺省Servlet的作用是:Servlet服务器在接收到访问请求时,如果在web.xml文件中找不到匹配的元素的URL,就会将访问请求交给缺省Servlet处理,也就是说,缺省Servlet用于处理其他Servlet都不处理的访问请求。
94. 正确答案:
//…
95. 正确答案:public class AutoLoginFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {}
public void doFilter(ServletRequest req, ServletResponse response,FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
// 获得一个名为 autologin 的cookie
Cookie[] cookies = request.getCookies();
String autologin = null;
for (int i = 0; cookies != null && i < cookies.length; i++) {
if (“autologin”.equals(cookies[i].getName())) {
// 找到了指定的cookie
autologin = cookies[i].getValue();
break;
}
}
if (autologin != null) {
// 做自动登录
String[] parts = autologin.split("-");
String username = parts[0];
String password = parts[1];
// 检查用户名和密码
if (“itcast”.equals(username)&& (“123456”).equals(password)) {
// 登录成功,将用户状态 user 对象存入 session域
User user = new User();
user.setUsername(username);
user.setPassword(password);
request.getSession().setAttribute(“user”, user);
}
}
放行
chain.doFilter(request, response);
}
public void destroy() {
}
}
96. 正确答案:1.DriverManager每次调用getConnection方法都会初始化一个新的连接,而DataSource的getConnection只是从池中取出一个已存在的连接
2.DriverManager的close()是释放Connection,而DataSource的close()只会把Connection归还给连接池
97. 正确答案:package cn.itcast.chapter08.beanutils;
import org.apache.commons.beanutils.BeanUtils;
import cn.itcast.chapter08.javabean.Person;
public class BeanUtilsDemo01 {
public static void main(String[] args) throws Exception{
Person p = new Person();
//使用BeanUtils为属性赋值
BeanUtils.setProperty(p, “name”, “youjun”);
BeanUtils.setProperty(p, “age”, 31);
//使用BeanUtils获取属性值
String name = BeanUtils.getProperty(p, “name”);
String age = BeanUtils.getProperty(p, “age”);
System.out.println(“名字是”+name+",今年"+age+“岁”);
}
}
98. 正确答案:1.JSP Model 2架构模型采用JSP+Servlet+ JavaBean的技术。
2.实际上JSP Model2模型就是MVC(模型Model-视图View-控制器Controller)设计模式。
3.其中控制器的角色是由Servlet实现,视图的角色是由JSP页面实现,模型的角色是由JavaBean实现。
99. 正确答案:public class ChineseServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding(“gbk”);
String name = request.getParameter(“username”);
String password = request.getParameter(“password”);
System.out.println(“用户名:” + name);
System.out.println(“密 码:” + password);
String[] hobbys= request.getParameterValues(“hobby”);
System.out.print(“爱好:”);
for (int i = 0; i < hobbys.length; i++) {
System.out.print(hobbys[i]+" ");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
100. 正确答案:Filter被称作过滤器或者拦截器,其基本功能就是对Servlet容器调用Servlet的过程进行拦截,从而在Servlet进行响应处理前后实现一些特殊功能。
101. 正确答案:1.sendRedirect()方法的实质是生成302响应码和Location响应头,并发送给客户端。
2.302用于告知客户端要进行重定向。
3.Location用于告知客户端重定向的地址,即重定向到哪去。
102. 正确答案:1.获取下载文件的地址。
2.根据该地址创建用于流读取该下载文件的字节输入流
3.设置相应的响应头消息
4.将读取的内容通过输出流写到目标文件中
103. 正确答案:得到的都是String类型的。或者是http://a.jsp?id=123中的123,或者是某个表单提交过去的数据。getAttribute则可以是对象。
getParameter()是获取POST/GET传递的参数值;getAttribute()是获取对象容器中的数据值request.getParameter()是接受从浏览器上发出的请求,返回的一定是一个String。request.getAttribute()一般是取从Servlet上setAttribute()的对象,返回可以是 各种形式(Object)
104. 正确答案:数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而是向连接池“申请”一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率
105. 正确答案:
//…
106. 正确答案:JSP页面可以按照编写HTML页面的方式来编写,其中可以包含HTML文件的所有静态内容,在静态的HTML内容之中可以嵌套JSP的其他各种元素来产生动态内容和执行业务逻辑。JSP页面中的静态HTML内容称之为JSP模版元素。JSP模版元素定义了网页的基本骨架,即定义了页面的结构和外观。
107. 正确答案:JSPModel 即JSP的开发模型,在Web开发中,为了更方便地使用JSP技术,Sun公司为JSP技术提供了两种开发模型:JSP Model1和JSP Model2。
108. 正确答案:1.HttpSessionBindingListener接口。
2.HttpSessionActivationListener接口。
109. 正确答案:所谓预编译,就是说当相同的SQL语句再次执行时,数据库只需使用缓冲区中的数据,而不需要对SQL语句再次编译,从而有效提高数据的访问效率。
110. 正确答案:font-size:12px; line-height:16px;
111. 正确答案:
课程涵盖Photoshop 图像处理、Illustrator 图形设计、平面广告创意设计、字体设计与标志设计、网页设计与制作
112. 正确答案:1.POST传输数据大小无限制
2.POST比GET请求方式更安全
113. 正确答案:1.管理应用程序的业务数据
2.定义访问控制和修改这些数据的业务规则
3.为视图提供查询模型状态的方法
114. 正确答案:1.contextInitialized()方法,它的作用是实现ServletContext对象的初始化工作。
2.contextDestroyed()方法,它的作用是实现ServletContext对象的销毁工作。
115. 正确答案:Servlet的多重映射指的是同一个Servlet可以被映射成多个虚拟路径。也就是说,客户端可以通过多个路径实现对同一个Servlet的访问。Servlet多重映射的实现方式有两种,具体如下:
1)、配置多个元素。
2)、在一个元素下配置多个子元素。
116. 正确答案:1.ServletContextAttributeListener接口。
2.HttpSessionAttributeListener接口。
3.ServletRequestAttributeListener接口。
117. 正确答案:1.可以由任意顺序的大小写字母、数字和下划线组成
2.不能以数字开头
3.不能是EL中的保留字,如and、or、gt;
4.不能是EL隐式对象,如pageContext;
5.不能包含单引号(’)、双引号(")、减号(-)和正斜线等特殊字符
118. 正确答案:所谓请求重定向,指的是Web服务器接受到客户端的请求后,又再次引导客户端重新发送请求,指定了一个新的资源路径。
119. 正确答案:1.被引入的文件必须遵循JSP语法,其中的内容可以包含静态HTML、JSP脚本元素和JSP指令等普通JSP页面所具有的一切内容。
2.除了指令元素之外,被引入的文件中的其它元素都被转换成相应的Java源代码,然后插入进当前JSP页面所翻译成的Servlet源文件中,插入位置与include指令在当前JSP页面中的位置保持一致。
3.file属性的设置值必须使用相对路径,如果以“/”开头,表示相对于当前WEB应用程序的根目录(注意不是站点根目录),否则,表示相对于当前文件。
120. 正确答案:
TestServlet01
cn.itcast.chapter04.servlet.TestServlet01
TestServlet01
/TestServlet01
TestServlet01
/Test01
121. 正确答案:import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
// 获得ServletConfig对象
ServletConfig config = this.getServletConfig();
// 获得参数名为encoding对应的参数值
String param = config.getInitParameter(“encoding”);
out.println(“encoding=” + param);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
122. 正确答案:在一个Web应用程序中如果多个Filter程序都对同一个URL进行拦截,那么这些Filter就会组成一个Filter链(也叫过滤器链)
123. 正确答案:dbutils的核心是两个类org.apache.commons.dbutils.DbUtils、org.apache.commons.dbutils.QueryRunner和一个接口org.apache.commons.dbutils.ResultSetHandler
124. 正确答案:1.控制器接收到用户的请求。
2.根据请求信息调用模型组件的业务方法,控制器调用模型组件处理相应业务操作。
3.根据模型的返回结果选择相应的视图组件,显示处理结果和模型中的数据。
125. 正确答案:右击WebContent目录→【new】→【Other】,在弹出的窗口中找到JSP文件,选择JSP File后,点击【Next】按钮,在新窗口的File name文本框中填写JSP文件名称HelloWorld.jsp,然后点击【Finish】按钮,完成了HelloWorld.jsp文件的创建。
126. 正确答案:1.将监听器绑定到事件源,也就是注册监听器。
2.事件发生时会触发监听器的成员方法,即事件处理器,传递事件对象。
3.事件处理器通过事件对象获得事件源,并对事件源进行处理。
127. 正确答案:访问该Servlet后,页面重定向到www.itcast.cn页面
128. 正确答案:1.加载并注册数据库驱动
2.通过DriverManager获取数据库连接
3.通过Connection对象获取Statement对象
4.使用Statement执行SQL语句
5.操作ResultSet结果集
6.回收数据库资源
129. 正确答案:所谓内置对象也称为隐式对象,它们是由JSP默认创建的,可以直接在JSP页面使用,以减轻开发者的编码工作量。
130. 正确答案:1.用于得到其它8个隐式对象
2.默认直接操作page域中的数据
3.可以用它操作其它三个域对象(request,session.application)中的数据
4.提供的findAttribute也是后续要学习的EL表达式的实现原理
131. 正确答案:MVC模式将软件程序分为3个核心模块:模型(Model)、视图(View)和控制器(Controller)
132. 正确答案:getFilterName()方法用于返回在web.xml文件中为Filter所设置的名称,也就是返回元素的设置值。
133. 正确答案:1.sessionCreated()方法,它的作用是实现HttpSession对象的初始化工作。
2.sessionDestroyed ()方法,它的作用是实现HttpSession对象的销毁工作。
134. 正确答案:ServletContextAttributeListener接口。
HttpSessionAttributeListener接口。
ServletRequestAttributeListener接口。
135. 正确答案:bin:用于存放Tomcat的可执行文件和脚本文件(扩展名为.bat的文件),如tomcat7.exe、startup.bat;
conf:用于存放Tomcat的各种配置文件,如web.xml、server.xml;
lib:用于存放Tomcat服务器和所有Web应用程序需要访问的JAR文件;
logs:用于存放Tomcat的日志文件;
temp:用于存放Tomcat运行时产生的临时文件;
webapps:Web应用程序的主要发布目录,通常将要发布的应用程序放到这个目录下;
work:Tomcat的工作目录,JSP编译生成的Servlet源文件和字节码文件放到这个目录下。
136. 正确答案:getInitParameterNames()方法用于返回一个Enumeration集合对象,该集合对象中包含在web.xml文件中为当前Filter设置的所有初始化参数的名称。
137. 正确答案:将结果集的每一行封装到javaBean对象中,再将此javaBean对象加入到List集合中
138. 正确答案:会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程。在Servlet技术中,提供了两个用于保存会话数据的对象,分别是Cookie和Session。
139. 正确答案:数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
140. 正确答案:1.requestInitialized ()方法,它的作用是实现ServletRequest对象的初始化工作。
2.requestDestroyed ()方法,它的作用是实现ServletRequest对象的销毁工作。
141. 正确答案:1.点运算符和方括号运算符在某种情况下可以互换
2.方括号运算符和点运算符可以相互结合使用
3.方括号运算符还可以访问List集合或数组中指定索引的某个元素
4.方括号运算符的功能比点运算符功能更强大
正确答案:getInitParameter(String name)方法用于返回在web.xml文件中为Filter所设置的某个名称的初始化参数值,如果指定名称的初始化参数不存在,则返回null。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。