第三部分:JavaWeb
3.1 Web基础
【题目描述】
在 DHTML 中把整个文档的各个元素作为对象处理的技术是:()
【选项】
A.HTML B.CSS C.DOM D.Script(脚本语言)
【正确答案】 C
【解释】
DOM:文档对象模型
【题目描述】
在不指定特殊属性的情况下,哪几种 HTML 标签可以手动输入文本:()
【选项】
A. <TEXTAREA></TEXTAREA>
B. <INPUT type=”text”/>
C. <INPUT type=”hidden”/>
D. <DIV></DIV>
【正确答案】 AB
【题目描述】
关于 IFrame 表述正确的有:()
【选项】
A. 通过 IFrame,网页可以嵌入其他网页内容,并可以动态更改
B. 在相同域名下,内嵌的 IFrame 可以获取外层网页的对象
C. 在相同域名下,外层网页脚本可以获取 IFrame 网页内的对象
D. 可以通过脚本调整 IFrame 的大小
【正确答案】 CD
【解释】
IFRAME 元素也就是文档中的文档,或者好像浮动的框架(FRAME)。通过 iframe 对象所在页面的对象模型,你可以访问 iframe 对象的属性,但不能访问其内容。
【题目描述】
关于表格表述正确的有:()
【选项】
A. 表格中可以包含 TBODY 元素
B. 表格中可以包含 CAPTION 元素
C. 表格中可以包含多个 TBODY 元素
D. 表格中可以包含 COLGROUP 元素
E. 表格中可以包含 COL 元素
【正确答案】 ACDE
【解释】
caption 标签用于定义一个表格标题。<caption>标签只能出现在 table 标签中,且必须紧随 table标签之后。每个表格只能定义一个标题。使用 <tbody> 标签,可以将表格分为一个单独的部分。<tbody> 标签可将表格中的一行或几行合成 一组。 利用<colgroup>标签可以把表格按列划分为若干组,每组可包含一列或几列,然后可以对各组分别设 置格式。 通常一个列组的各列格式是相同的,如果列与列有差异,可通过在组内加入<col>标签进行设置。<col> 标签只能在<table>标签和<colgroup>标签中使用。
【题目描述】
下面属于 javascript 对象的有:( )
【选项】
A. Window B. Document C. Form D. String E. Navigator
【正确答案】 ACE
问答
【题目描述】
请写出一个超链接,错误!超链接引用无效。送电子邮件。
【正确答案】
<a href=”mailto: zhangsan@d-heaven.com”>发邮件</a>
【题目描述】
请说明 meta 标签的作用。
【正确答案】
meta 是用来在 HTML 文档中模拟 HTTP 协议的响应头报文。meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。meta 的属性有两种:name 和 http-equiv。name 属性主要用于描述网 页,对应于 content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使 用网上机器人自动查找 meta 值来给网页分类)。这其中最重要的是 description(站点在搜索引擎上 的描述)和 keywords(分类关键词),所以应该给每页加一个 meta 值。比较常用的有以下几个: name 属性
1).<meta name="Generator" contect="">用以说明生成工具(如 Microsoft FrontPage 4.0)等;
2).<meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词;
3).<meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容;
4).<meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者;
5).<meta name="Robots" contect= "all|none|index|noindex|follow|nofollow"> 其中的属性说明如下:
设定为 all:文件将被检索,且页面上的链接可以被查询; 设定为 none:文件将不被检索,且页面上的链接不可以被查询; 设定为 index:文件将被检索;
设定为 follow:页面上的链接可以被查询;
设定为 noindex:文件将不被检索,但页面上的链接可以被查询; 设定为 nofollow:文件将不被检索,页面上的链接可以被查询。
6).http-equiv 属性
A. <meta http-equiv="Content-Type" contect="text/html";charset=gbk">和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言;
B. <meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时 间 n 内,跳转到页面 http;//yourlink;
C. <meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定 网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用 GMT 时间格式;
D. <meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存 中调阅页面内容,设定后一旦离开网页就无法从 Cache 中再调出;
E. <meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie 设定, 如果网页过期,存盘的 cookie 将被删除。需要注意的也是必须使用 GMT 时间格式;
F. <meta http-equiv="Pics-label" contect="">网页等级评定,在 IE 的 internet 选项中有 一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过 meta 属性来设置的; G. <meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个 frame 页调用;
H. <meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion=50)">和<meta http-equiv="Page-Exit" contect="revealTrans(duration=20,transtion=6)">设定进入和离开页面时的特殊效果,这个功能即 FrontPage 中的“格式/网页过渡”,不 过所加的页面不能够是一个 frame 页面。
【题目描述】
请写出一个隐藏控件。
【正确答案】
<input type=”hidden” name=”userId” value=”10001”>
【题目描述】
请写出 JavaScript 中常用的三种事件。
【正确答案】
onclick,onblur,onChange
【题目描述】
请写出一段 JavaScript 代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用户点击的是“确认”还是“取消”。
【正确答案】
<HTML> <HEAD> <TITLE>click</TITLE> <Script > function validateForm() { if(confirm("你确认提交这个表单么?")) { alert(“确定”); }else{ alert(“取消”); } } </Script> </HEAD> <BODY> <FORM NAME="TEST" action="FirstJS.htm"> <INPUT TYPE="button" NAME="SUB" VALUE="提交" onClick="JavaScript:validateForm()"> </FORM> </BODY> </HTML> |
【题目描述】
JavaScript 如何实现计时功能。
【正确答案】
<script> window.setTimeout( "window.location = 'http://www.csdn.net ';
", 35000); </script>
【题目描述】
JavaScript 能否操作 cookie 和 session?
【正确答案】
JavaScript 可以操作 cookie,但是不能操作 session
【题目描述】
JS 中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
【正确答案】
Alert confirm prompt
【题目描述】
如何获得<div id=”div1”>This is first layer</div>中的值?
【正确答案】
<script> var div1=Document.getElementById(“div1”); alert(div1.innerHTML) </script>
|
3.2 Servlet与JSP
【题目描述】
以下哪些接口能够实现对 Web 访问者的身份认证( )?
【选项】
A. Http Servlet Request
B. Http Servlet Response
C. Http Session
D. Http Servlet
【正确答案】 C
【解释】
Web访问者身份验证主要靠session进行身份识别,获得session的方法如下:HttpSession session = request.getSession();
【题目描述】
从以下哪一个选项中可以获得 Servlet 的初始化参数( )。
【选项】
A.Servlet
B.ServletContext
C.ServletConfig
D.GenericServlet
【正确答案】 C
【解释】
servlet 的生命周期的方法中有一个 init 方法,其中一个重载的 init 方法的参数为 ServletConfig可以获取初始化参数。
【题目描述】
下列哪个为JSP 的隐含对象( )。
【选项】
A.env B.page C.jspinfo D.context
【正确答案】 B
【解释】
JSP 有九个隐藏对象。
request 对象:保存了很多客户端请求的信息;
response 对象:生成服务器端响应,然后将响应结果发送到客户端;
out 对象:表示输出流,此输出流将作为请求发送到客户端;
session 对象:我们写个对象放在这个 session 对象中,这个对象就在我们的会话中都存在;
application 对象:我们写个对象放在这个 application 对象中,这个对象就在整个应用程序中都存在;
pageContext 对象:相当于当前页面的容器,可以访问当前页面的所有对象;
paget 对象:一般我们使用 Page 指令来替代使用这个对象;
exception 对象:用来处理异常的;
config 对象:一样的我们在页面中是使用很少的,一般会在 Servlet 中使用这个。
【题目描述】
哪一个不是 EL 定义的隐式对象? ( )
【选项】
A.cookie B. pageContext C. attributes D. initParam
【正确答案】 C
【解释】
1)pageContext:JSP 页的上下文。它可以用于访问 JSP 隐式对象。
2)Param:将请求参数名称映射到单个字符串数(通过调用 ServletRequest.getParameter (String name) 获得)。getParameter (String) 方法返回带有特定名称的参数。表达式 $(param.name)相当于 request.getParameter (name)。
3)paramValues:将请求参数名称映射到一个数值数组(通过调用 ServletRequest.getParameter (String name) 获得)。它与 param 隐式对象非常类似,但它检索一个字符串数组而不是单个值。表达式 ${paramvalues.name) 相当于 request.getParamterValues(name)。
4)header 将请求头名称映射到单个字符串头值(通过调用 ServletRequest.getHeader(String name)获得)。表达式 ${header.name} 相当于 request.getHeader(name)。
5)headerValues 将请求头名称映射到一个数值数组(通过调用 ServletRequest.getHeaders(String) 获 得 )。 它 与 头 隐 式 对 象 非 常 类 似 。 表 达 式 ${headerValues.name} 相 当 于 request.getHeaderValues(name)。
6)cookie 将 cookie 名称映射到单个 cookie 对象。向服务器发出的客户端请求可以获得一个或多个 cookie。表达式 ${cookie.name.value} 返回带有特定名称的第一个 cookie 值。如果请求包含多个 同名的 cookie,则应该使用 ${headerValues.name} 表达式。
7)initParam 将上下文初始化参数名称映射到单个值
(通过调用ServletContext.getInitparameter(String name) 获得)。
8)pageScope 将页面范围的变量名称映射到其值。
例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope.objectName.attributeName} 访问对象的属性。
9)requestScope 将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL表达式可以使用 ${requestScope.objectName} 访问一个JSP请求范围的对象,还可以使用${requestScope.objectName.attributeName} 访问对象的属性。
10)sessionScope 将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例
11)applicationScope 将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。
【题目描述】
下面哪些属于 JSTL 中的表达式操作标签。
【选项】
A.<c:out> B.<c:if> C.<c:url> D.<c:catch>
【正确答案】 A
【题目描述】
在 Servlet 处理请求的方式为。
【选项】
A. 以进程的方式
B. 以程序的方式
C. 以线程的方式
D. 以响应的方式
【正确答案】 C
【解释】
Servlet 采用多线程来处理多个请求同时访问,Servlet 容器维护了一个线程池来服务请求。
【题目描述】
javax.Servlet 的包中,属于类的是( )。
【选项】
A. Servlet B. GenericServlet C. ServletRequest D. ServletContext
【正确答案】 B
【解释】
ServletContext 和 ServletRequest 是该包下的接口
【题目描述】
如果没有指定 Cookie 的时效,那么默认的时效是。
【选项】
A.一天 B. 永不过期 C.会话级别 D.一分钟
【正确答案】 C
【解释】
这是 API 的原文:By default, -1 indicating the cookie will persist until browser shutdown.
【题目描述】
实现下列哪一种接口的对象,并不需要在 web.xml 文件内进行额外的设定,Servlet 容器就能够回应该对象加入 HTTP 会话所发生的事件?
【选项】
A.ServletContextListener
B.HttpSessionListener
C.HttpSessionAttributeListener
D.HttpSessionBindingListener
【正确答案】 D
【解释】
HttpSessionListener 只 需 要 设 置 到 web.xml 中就可以监听整个应用中的所 有 session 。HttpSessionBindingListener 必须实例化后放入某一个 session 中,才可以进行监听
【题目描述】
以下不属于 JSP 的标准指令的是。
【选项】
A.Taglib B.Include C.Import D.Page
【正确答案】 C
【解释】
import 是 page 指令的一个属性。
【题目描述】
对于每一个网站访问用户都要访问的变量,应该将它设为变量( )。
【选项】
A. Session B. Reques C. Response D. Application
【正确答案】 D
【解释】
Application 应用程序级变量
【题目描述】
察看下列 JSP 内容
<html><body> <% for (int i=0;i<3;i++){ %> out.print(i*2); <% } %> </body></html> |
当这个 JSP 被运行时,其结果是什么?
【选项】
A.此 JSP 因为语法错误,无法运行
B.显示出 0,2,4
C.显示出 0,2,4,6
D.显示出 out.print(i*2) out.print(i*2) out.print(i*2)
【正确答案】 D
【题目描述】
假设 A.jsp 内设定一个<jsp:useBean>元素:
<jsp:useBean id=”bean1” class=”myBean” /> 下列哪一个为真?
【选项】
A.bean1 的存取范围(scope)默认为 application
B.在 HTTP 会话内可以存取 bean1
C.只有在 A.jsp 内可以存取 bean1
D.在 A.jsp 所属的 Web 应用程序内均可存取 bean1
【正确答案】 C
【解释】
bean1 的存取范围(scope)默认为 page;(题有一点问题 javabean 的规则是要放在一个包中)
【题目描述】
有关 Servlet 的生命周期说法正确的有( )。
【选项】
A.Servlet 的生命周期由 Servlet 实例控制。
B .init() 方法在创建完Servlet实例后对其进行初始化,传递的参数为实现ServletContext 接口的对象。
C.service()方法响应客户端发出的请求。
D.destroy()方法释放 Servlet 实例 。
【正确答案】 C
【解释】
Servlet 生命周期就是指创建 Servlet 实例后响应客户请求直至销毁的全过程。 Serlvet 生命周期的三个方法:init()-->service()-->destroy(),Servlet 生命周期的各个阶段: 实例化:Servlet 容器创建Servlet 类的实例对象;初始化:Servlet 容器调用 Servlet 的 init()方法;服务:如果请求 Servlet,则容器调用 service()方法;销毁:销毁实例之前调用 destroy()方法。
【题目描述】
以下 web.xml 片断( )正确地声明 servlet 上下文参数
【选项】
A
<init-param>
<param-name>MAX</param-name>
<param-value>100</param-value>
</init-param>
B
<context-param>
<param name="MAX" value="100" />
<context-param>
C
<context>
<param name="MAX" value="100" />
<context>
D
<context-param>
<param-name>MAX</param-name>
<param-value>100</param-value>
<context-param>
【正确答案】 A
【题目描述】
考虑下面两个 JSP 文件代码片断:
test1.jsp: <HTML> <BODY> <% pageContext.setAttribute(”ten”,new Integer(10));%> //1 </BODY> </HTML> test2.jsp: 数字为:<%= pageContext.getAttribute(”ten”)%> |
以下( )放置在 test1.jsp 中的//1 处,当请求 test1.jsp 时正确输出 test2.jsp 中的内容。
【选项】
A.<jsp:include page=”test2.jsp” />
B.<jsp:forword page=”test2.jsp” />
C.<%@ include file=”test2.jsp” %>
D.由于 pageContext对象的scope属性为page,所以test2.jsp不能访问test1.jsp定义的属性
【正确答案】 C
【解释】
pageContext setAttribute(”ten”,new Integer(10));能取到的范围是 page,也就是当前页面。<%@includefile=””%>:编译时包含,静态的,JSP 引擎将对所包含的文件进行语法分析。
<jsp:include page=””/>:运行时包含,静态和动态的都可以,JSP 引擎不对所包含的文件进行语法分析,只获得处理的结果
【题目描述】
考虑下面 JSP 文件代码片断:
<HTML> <BODY> <jsp:include page=”test2.jsp”> <jsp:param name=”username” value=”accp”/> </jsp:include> </BODY> </HTML> |
以下( )代码片断放置在 test2.jsp 中不会导致错误。
【选项】
A.<jsp:getParam name=”username”/>
B.<jsp:include param =”username”/>
C.<%=request.getParameter(“username”)%>
D.<%=request.getAttribute(“username”)%>
【正确答案】 C
【题目描述】
以下是 login.jsp 文件的代码片断:
<%@ page isELIgnored="false"%> <html> <body> <FORM action="login.jsp" method="GET"> <input type="text" name="name" value="${param['name']}"> <input type="submit" value="提交"> </FORM> <P> 用户名为: ${param.name} </body> </html> |
以下( )描述正确。
【选项】
A.发生运行错误
B.页面会出现一文本框,并且文本框中内容为${param['name']}
C.当用户输入名字并单击“提交”按钮时,在同一页面中的“用户名为:”字样后面会显示用户输入 的内容
D.当用户输入名字并单击“提交”按钮时,在同一页面中的“用户名为:”字样后面会显示${param.name}
【正确答案】 C
【解释】
在每个 JSP 中也可以指定是否该 JSP 使用 EL。在 page directive 中的 isELIgnored 属性用来指定是 否忽略。格式为:<%@ page isELIgnored="true|false"%> 如果设定为真,那么 JSP 中的表达式被当成字符串处理。
【题目描述】
下面代码片断在浏览器中输出结果为( )。
<c:set var=”myVar” scope =”session”> 2+3 </c:set> <c:out value=”${myVar}”/> |
【选项】
A.0 B.5 C.2+3 D.无输出
【正确答案】 C
【解释】
<c:set>标签主要用来将变量保存到 JSP 的会话中或 JavaBean 的属性中。<c:set>的语法格式为:<c:set value="value" var="varName"[scope="{ page|request|session|application }"]/>
上述的表达式实现的功能是将value 的值储存至范围为scope的varName变量之中,还可以将value的值储存至target对象的属性中.如果题中 2+3 改成${2+3}那么结果就是5.
【题目描述】
下面的哪个方法在 servlet 的 response 的输出流在 URL 中保存 Session ID。( )【选项】
A.The encodeURL method of the HttpServletRequest interface.
B. The encodeURL method of the HttpServletResponse interface.
C.The rewriteURL method of the HttpServletRequest interface.
D. The rewriteURL method of the HttpServletResponse interface.
【正确答案】 B
【题目描述】
看下面这个类
public class IfAttributsChanged implements ServletContextAttributeListener{ public void attributeAdded(ServletContextAttributeEvent scab){ System.out.println(“加入一个属性”); } public void attributeRemoved(ServletContextAttributeEvent scab){ System.out.println(“删除一个属性”); } } |
关于 IfAttributsChanged 类的叙述,下列哪一个为真?
【选项】
A. 此类可以成功编译
B.此类无法成功编译,原因是缺少 attributeChanged()方法。
C. 此类无法成功编译,原因是缺少 attributeReplaced()方法。
D. 此类无法成功编译,原因是缺少 attributeUpdated()方法。
【正确答案】 C
【题目描述】
在a.jsp中有代码片段如下:
<from action=”b.jsp” method=”POST” name=”form1”> loginName:<input type=”text” name=”loginName” /> <input type=”submit” name=”submit” /> </form> |
在b.jsp 中加入下列哪个代码,可以直接在界面上输出由a.jsp页面输入的loginName 的值。( )
【选项】
A <%=(String) request.getParameter("loginName")%>
B <%=(String) request.getAttribute("loginName")%>
C <%String name=request.getParameter("loginName"); out.println(name);%>
D <%String name=request.getAttribute ("loginName"); out.println(name);%>
【正确答案】 C
【题目描述】
假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:( )
<servlet> <servlet-name> HelloServlet </servlet-name> <servlet-class>org.javathinker.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name> HelloServlet </servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> |
那么在浏览器端访问HelloServlet的URL是什么?
【选项】
A. http://localhost:8080/HelloServlet
B. http://localhost:8080/helloapp/HelloServlet
C. http://localhost:8080/helloapp/org/javathinker/hello
D. http://localhost:8080/helloapp/hello
【正确答案】 D
多选
【题目描述】
运行 jsp 需要安装( )Web 服务器。
【选项】
A.Apache
B.tomcat
C.WebLogic
D.IIS
【正确答案】 BC
【解释】
Apache 是 PHP 程序运行的服务器,IIS 是.net 程序运行的服务器。
【题目描述】
在服务器的网络编程中,解决会话跟踪的方法有( ):
【选项】
A. 使用 Cookie。
B. 使用 URL 重写。
C. 使用隐藏的表单域。
D. 以上方法都不能单独使用。
【正确答案】 ABC
【解释】
URL 重写就是首先获得一个进入的 URL 请求然后把它重新写成网站可以处理的另一个 URL 的过程 隐藏域是在页面级保存信息。与其他用户标准控件的区别是,隐藏域不被呈现在页面中。当页面提交 的时候,隐藏域中的值将被一同发送给服务端。
Cookie 是以文本存储于计算机中,使用 name-value 匹配。一般用户存储标识用户信息
【题目描述】
与 HttpSessionListener 接口有关的方法是( )。
【选项】
A. sessionInitialized()
B. sessionCreated()
C. sessionFinialized()
D. sessionDestroyed()
【正确答案】 BD
【题目描述】
关于 JSP 生命周期的叙述,下列哪些为真?( )
【选项】
A.JSP 会先解释成 Servlet 源文件,然后编译成 Servlet 类文件
B.每当用户端运行 JSP 时,jspInit()方法都会运行一次
C.每当用户端运行 JSP 时,_jspService()方法都会运行一次
D.每当用户端运行 JSP 时,jspDestroy()方法都会运行一次
【正确答案】 AC
【题目描述】
下列 JSP 代码:
<html> <body> <%for(int i = 0; i < 10; i++) { //1 }%> </body> </html> |
以下( )可放置在//1 处,不会发生编译错误。
【选项】
A. <%= i %> B. <b>i</b> C. %><%= i %><% D. 不写任何内容
【正确答案】 CD
【题目描述】
有关 JSP 隐式对象,以下( )描述正确。
【选项】
A.隐式对象是 WEB 容器加载的一组类的实例,可以直接在 JSP 页面使用
B.不能通过 config 对象获取 ServletContext 对象
C.response 对象通过 sendRedirect 方法实现重定向
D.只有在出错处理页面才有 exception 对象
【正确答案】 ACD
【解释】
可以通过 config 对象获取 ServletContext 对象。
问答
【题目描述】
jsp 有哪些内置对象?作用分别是什么?(至少三个)
【正确答案】
1)request 表示 HttpServletRequest 对象。它包含了有关浏览器请求的信息,并且提供了几个用于 获取 cookie, header 和 session 数据的有用的方法。
2)response 表示 HttpServletResponse 对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)。
3)out 对象是 javax.jsp.JspWriter 的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。
4)pageContext 表示一个 javax.servlet.jsp.PageContext 对象。它是用于方便存取各种范围的名字 空间、servlet 相关的对象的 API,并且包装了通用的 servlet 相关功能的方法。
5)session 表示一个请求的 javax.servlet.http.HttpSession 对象。Session 可以存贮用户的状态信息。
6)application 表示一个 javax.servle.ServletContext 对象。这有助于查找有关 servlet 引擎和servlet 环境的信息。
7)config 表示一个 javax.servlet.ServletConfig 对象。该对象用于存取 servlet 实例的初始化参数。
8)page 表示从该页面产生的一个 servlet 实例。
9)exception 针对错误网页,未捕捉的例外
【题目描述】
JSP 页面之间传递参数的方法有哪些?
【正确答案】
1)request 2)session 3)application 4)提交表单 5)超链接
【题目描述】
forward 和 redirect 的区别
【正确答案】
forward 是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的 URL,把那 个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是 从哪儿来的,所以它的地址栏中还是原来的地址。 redirect 就是服务端根据逻辑,发送一个状态码, 告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,并且从浏览器 的地址栏中可以看到跳转后的链接地址。前者更加高效,在前者可以满足需要时,尽量使用 forward() 方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的 资源,则必须使用 sendRedirect()方法。
【题目描述】
描述 JSP 和 Servlet 的区别、共同点、各自应用的范围
【正确答案】
JSP 在本质上就是 SERVLET,但是两者的创建方式不一样.Servlet 完全是 JAVA 程序代码构成, 擅长于流程控制和事务处理,通过 Servlet 来生成动态网页很不直观.JSP 由 HTML 代码和 JSP 标签构 成,可以方便地编写动态网页.因此在实际应用中采用 Servlet 来控制业务流程,而采用 JSP 来生成 动态网页.
【题目描述】
说出 Servlet 的生命周期,并说出 Servlet 和 CGI 的区别?
【正确答案】
Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service 方法,service 方法自动派遣运行与请求对应的 doXXX 方法(doGet,doPost)等,当服务器决定将实例销毁的时候 调用其 destroy 方法。
与 cgi 的区别在于 servlet 处于服务器进程中,它通过多线程方式运行其 service 方法,一个实例可 以服务于多个请求,并且其实例一般不会销毁,而 CGI 对每个请求都产生新的进程,服务完成后就销 毁,所以效率上低于 servlet。
【题目描述】
get 和 post 的区别?
【正确答案】
Form 中的 get 和 post 方法,在数据传输过程中分别对应了 HTTP 协议中的 GET 和 POST 方法。 二者主要区别如下:
1)Get 是用来从服务器上获得数据,而 Post 是用来向服务器上传数据;
2)Get 将表单中数据按照 variable=value 的形式,添加到 action 所指向的 URL 后面,并且两者 使用“?”连接,而各个变量之间使用“&”连接;Post 是将表单中的数据放在 form 的数据体中,按 照变量和值相对应的方式,传递到 action 所指向 URL;
3)Get 是不安全的,因为在传输过程,数据被放在请求的 URL 中;Post 的所有操作对用户来说 都是不可见的;
4)Get 传输的数据量小,这主要是因为受 URL 长度限制;而 Post 可以传输大量的数据,所以在 上传文件只能使用 Post;
5)Get 限制 Form 表单的数据集必须为 ASCII 字符,而 Post 支持整个 ISO10646 字符集;
6)Get 是 Form 的默认方法。
【题目描述】
Servlet 是线程安全吗?以下代码中使用 synchronized 关键字的意义是什么? Synchronized (aList){
aList.remove (1);
}
【正确答案】
默认不是线程安全的,但是 servlet 实现了 SingthreadModel 接口 就能单线程执行。此题中 代码的意思是给 aList 对象加同步锁,保证 aList 对象在多线程任务环境中,每次只能够有一个线程 调用 remove 方法。从而提高对 aList 对象操作的安全性和正确性
【题目描述】
JSP 中动态 INCLUDE 与静态 INCLUDE 的区别?
【正确答案】
动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="head.jsp"/> 它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数;静态 INCLUDE 用 include 伪码实现,它不会检查所含文件的变化,适用于包含静态页面%@include file="head.htm" %
【题目描述】
Session 的基本原理是什么?
【正确答案】
Session 对象的原理在于,服务器可以为客户端创建并维护一个所谓的 Session 对象,用于存放 数据。在创建 Session 对象的同时,服务器将会为该 Session 对象产生一个唯一编号,这个编号称之 为 SessionID,服务器以 Cookie 的方式将 SessionID 存放在客户端。当浏览器再次访问该服务器时, 会将 SessionID 作为 Cookie 信息带到服务器,服务器可以通过该 SessionID 检索到以前的 Session 对象,并对其进行访问。需要注意的是,此时的 Cookie 中仅仅保存了一个 SessionID,而相对较多的 会话数据保存在服务器端对应的 Session 对象中,由服务器来统一维护,这样一定程度保证了会话数 据安全性,但增加了服务器端的内存开销。存放在客户端的用于保存 SessionID 的 Cookie 会在浏览 器关闭时清除。我们把用户打开一个浏览器访问某个应用开始,到关闭浏览器为止交互过程称为一个 “会话”。在一个“会话”过程中,可能会向同一个应用发出了多次请求,这些请求将共享一个 Session 对象,因为这些请求携带了相同的 SessionID 信息。Session 对象的正常使用要依赖于 Cookie。如果 考虑到客户端浏览器可能出于安全的考虑禁用了 Cookie,应该使用 URL 重写的方式使 Session 在客户端禁用 Cookie 的情况下继续生效。
【题目描述】
jsp 有哪些动作?作用分别是什么?
【正确答案】
JSP 共有以下 6 种基本动作:
jsp:include:在页面被请求的时候引入一个文件; jsp:useBean:寻找或者实例化一个 JavaBean。; jsp:setProperty:设置 JavaBean 的属性。; jsp:getProperty:输出某个 JavaBean 的属性; jsp:forward:把请求转到一个新的页面; jsp:plugin:根据浏览器类型为 Java 插件生成 OBJECT 或 EMBED 标记。
【题目描述】
解释四种会话跟踪技术?
【正确答案】
隐藏表单域、URL 重写,Cookie、Session。
1)隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话应用。
2)URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。
3)Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它作为 HTTP响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个 Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优点是在浏览器会话结束后,甚至 在客户端计算机重启后它仍可以保留其值。
4)Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话
【题目描述】
请画出Servlet 2.2以上Web Application的基本目录结构
【正确答案】
目录结构如下图所示:
webapps
|
Applocation
|
__________________
| |
JSP页面 WEB-INF
|
___________________
| | |
classes lib web.xml
【题目描述】
在当前的 JSP 网页里,提交用户名和密码,提交给 post . jsp, post . jsp 打印出用户名和密码 并返回给浏览器。请写出 post . jsp
【正确答案】
假设页面用户名和密码在 login.jsp 里,login.jsp 页面代码如下:
<form action=”post.jsp” method=”post”> <input type=”text” name=”userName”> <input type=”password” name=”pwd”> <input type=”submit”> </form> |
post.jsp 页面代码:
<% String userName=request.getParameter(“userName”); String pwd=request.getParameter(“pwd”); out.println(“用户名:”+userName+”,密码:”+pwd); %> |
3.3 Ajax与Jquery
【题目描述】
什么是 AJAX?
【正确答案】
Ajax 的全称是:AsynchronousJavaScript And XML。Ajax 不是一个技术,它实际上是几种技 术,每种技术都有其独特这处,合在一起就成了一个功能强大的新技术。Ajax 包括: XHTML 和 CSS 使 用文档对象模型(Document Object Model)作动态显示和交互 使用 XML 和 XSLT 做数据交互和操作 使 用 XMLHttpRequest 进行异步数据接收 使用 JavaScript 将它们绑定在一起 。
3.4 Web应用
【题目描述】
在 MVC 设计模式中,JavaBean 的作用是。
【选项】
A. Controller B. Model C. 业务数据的封装 D. View
【正确答案】 B
【题目描述】
如何取得数据源( )。
【选项】
A.通过 Http
B.通过 ftp
C.JNDI
D.通过 Connection 对象
【正确答案】 C
【解释】
在服务器上配置好数据以后,通过 JNDI 技术获取到数据源。
JNDI:Java Naming and Directory Interface 一种标准的 Java 命名系统接口。
【题目描述】
在 J2EE 中属于 Web 层的组件有( )
A. HTML B. EJB C. Applet D. JSP
【正确答案】 D
【题目描述】
在 J2EE 的 Web 应用中,编译后的 class 文件存放的目录为 ( )
【选项】
A. classes 目录 B. images 目录 C. jar 目录 D. 任意位置
【正确答案】 A
【题目描述】
关于 Web 应用程序,下列说法错误的是( )。
【选项】
A.WEB-INF 目录存在于 web 应用的根目录下
B. WEB-INF 目录与 classes 目录平行
C. web.xml 在 WEB-INF 目录下
D. Web 应用程序可以打包为 war 文件
【正确答案】 B
【解释】
classes 目录在 WEB-INF 目录下。
【题目描述】
类图用来表示系统中类和类与类之间的关系,它是对系统动态结构的描述。
【选项】
A.正确 B.不正确
【正确答案】 B
【解释】
类图是对系统静态结构的描述。
多选
【题目描述】
下列哪些是 J2EE 的体系( )。
【选项】
A. JSP
B. JAVA
C. Servlet
D. WebService
【正确答案】 ACD
【解释】
J2EE 现在更多使用的名字是 Java EE JSP 是 JavaEE 设计模式 MVC 中的显示部分,Servlet 是控制部 分,WebService 是 JavaEE 的服务器。
【题目描述】
简要说明 JVM、JSP、Servlet、Web Server、Web Browser 之间的关系。
【正确答案】
当用户在 JSP 页面上提交了需要服务器处理的数据后,通过 Web Browser 发送到服务器端, Servlet 会根据用户的请求产生必要的相应,如果需要还会通过 JVM 或 Web Server 来获取资源,最后 把服务器端的相应结果返回给用户。
【题目描述】
说说对开源项目 Apache 的了解,说出其中你使用过的项目并给以评价
【正确答案】
Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大 多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。 它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。
Apache 起初由伊利诺伊大学香槟分校的国家超级电脑应用中心(NCSA)开发。此后,Apache Httpd 被开放源代码团体的成员不断的发展和加强。Apache Http 网站服务器拥有牢靠可信的美誉,已经在 全球超过半数的网站中被使用,特别是几乎所有最热门和访问量最大的网站。
Apache 支持许多特性,大部分通过编译的模块实现。这些特性从服务器端的编程语言支持到身份认证 方案。一些通用的语言接口支持 Perl,Python, Tcl, 和 PHP。流行的认证模块包括 mod_access, mod_auth 和 mod_digest。其他的例子有 SSL 和 TLS 支持(mod_ssl), 代理服务器 (proxy) 模块, 很有用的 URL 重写(由 mod_rewrite 实现),定制日志文件(mod_log_config),以及过滤支持(mod_include 和 mod_ext_filter)。Apache 日志可以通过网页浏览器使用免费的脚本 AWStats 或Visitors 来进行分析。
【题目描述】
Tomcat 服务器的默认端口是多少?怎样修改 tomcat 的端口?
【正确答案】
默认端口为 8080,可以通过 service.xml 的 Connector 元素的 port 属性来修改端口。
【题目描述】
MVC 的各个部分都有哪些技术来实现?如何实现?
【正确答案】
MVC 是 Model-View-Controller 的缩写,Model 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现),View 是应用的表示面(由 JSP 页面产生)Controller 是通过应用的处理过程控制,(一 般是一个 servert)通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现,这些 组件可以进行交互和重用
【题目描述】
什么是 B/S 结构,C/S 结构?
【正确答案】
C/S 是 Client/Server 的缩写。服务器通常采用高性能的 PC. 工作站或小型机,并采用大型数 据库系统,如 Oracle、Sybase、Informix 或 SQL Server。客户端需要安装专用的客户端软件。
B/S 是 Brower/Server 的缩写,客户机上只要安装一个浏览器(Browser),如 Netscape Navigator 或 Internet Explorer,服务器安装 Oracle、Sybase、Informix 或 SQL Server 等数据库。在这种结构 下,用户界面完全通过 WWW 浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过 Web Server 同数据库进行数据交互。
【题目描述】
Log4J 是 Apache 组织的开源一个开源项目,通过 Log4J,可以指定日志信息输出的目的地,如 console、file 等。Log4J 采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。
【正确答案】
Log4J 分 为 OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL 或者您定义的级别。Log4j 建议 只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您 可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了 INFO 级别, 则应用程序中 所有 DEBUG 级别的日志信息将不被打印出来。
【题目描述】
J2EE 是什么?它包括哪些技术?
【正确答案】
从整体上讲,J2EE 是使用 Java 技术开发企业级应用的工业标准,它是Java技术不断适应和促进企业级应用过程中的产物。适用于企业级应用的 J2EE,提供一个平台独立的、可移植的、多用户的、 安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE 是一个标准,而不是一个现成的产品。
主要包括以下这些技术:
1) Servlet
Servlet 是 Java 平台上的 CGI 技术。Servlet 在服务器端运行,动态地生成 Web 页面。与传统的 CGI 和许多其它类似 CGI 的技术相比,Java Servlet 具有更高的效率并更容易使用。对于 Servlet,重复 的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。
2)JSP
JSP(Java Server Page)是一种实现普通静态 HTML 和动态页面输出混合编码的技术。从这一点来看, 非常类似 Microsoft ASP、PHP 等技术。借助形式上的内容和外观表现的分离,Web 页面制作的任务可 以比较方便地划分给页面设计人员和程序员,并方便地通过 JSP 来合成。在运行时态,JSP 将会被首 先转换成 Servlet,并以 Servlet 的形态编译运行,因此它的效率和功能与 Servlet 相比没有差别, 一样具有很高的效率。
3) EJB
EJB 定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。
4)JDBC
JDBC(Java Database Connectivity,Java 数据库连接)API 是一个标准 SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准 Java API 编写数据库 应用程序。JDBC API 主要用来连接数据库和直接调用 SQL 命令执行各种 SQL 语句。利用 JDBC API 可 以执行一般的 SQL 语句、动态 SQL 语句及带 IN 和 OUT 参数的存储过程。Java 中的 JDBC 相当于 Microsoft 平台中的 ODBC(Open Database Connectivity)
【题目描述】
什么是 Web 容器?
【正确答案】
容器就是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处 理从客户端发出的请求,如 JAVA 中的 Tomcat 容器,ASP 的 IIS 或 PWS 都是这样的容器。
【题目描述】
描述 J2EE 框架的多层结构,并简要说明各层的作用。
【正确答案】
1) Presentation layer(表示层)
a. 表示逻辑(生成界面代码)
b. 接收请求
c. 处理业务层抛出的异常
d. 负责规则验证(数据格式,数据非空等)
e. 流程控制
2) Service layer(服务层/业务层)
a.封装业务逻辑处理,并且对外暴露接口
b.负责事务,安全等服务
3) Persistence layer(持久层)
a.封装数据访问的逻辑,暴露接口
b.提供方便的数据访问的方案(查询语言,API,映射机制等)
4)Domain layer(域层)
a. 业务对象以及业务关系的表示
b. 处理简单的业务逻辑
c. 域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。
【题目描述】
WEB SERVICE 名词解释。JSWDL 开发包的介绍。JAXP、JAXM 的解释。
【正确答案】
Web Service 是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范, 这些规范使得 Web Service 能与其他兼容的组件进行互操作;
JAXP(Java API for XML Parsing)定义了在 Java 中使用 DOM, SAX, XSLT 的通用的接口,这样在 你的程序中你只要使用这些通用的接口,当你需要改变具体的实现时候也不需要修改代码;
JAXM(Java API for XML Messaging)是为 SOAP 通信提供访问方法和传输机制的 API;