web相关.docx
《web相关.docx》由会员分享,可在线阅读,更多相关《web相关.docx(30页珍藏版)》请在冰豆网上搜索。
web相关
Tarena(35题)
1.什么是Web容器?
解答:
容器就是一种服务程序,在服务器一个端口就有一个提供相应服务的程序,而这个程序就是处理从客户端发出的请求,如JAVA中的Tomcat容器,ASP的IIS或PWS都是这样的容器。
2.谈谈对XML的理解?
说明Web应用中Web.xml文件的作用?
解答:
XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。
Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。
扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
web.xml的作用是配置欢迎页,servlet,filter,listener等的。
3.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针对错误网页,未捕捉的例外
4.请看如下片段:
解释lazy、inverse、cascade以及all-delete-orphan属性的含义;并给出示例代码,说明在如下组合情况下,对于save、update、delete一对多关系中的一方对象操作时的区别:
inversecascadetrueall-delete-orphanfalseall-delete-orphantrueallfalsealltruenonefalsenone
解答:
(一)lazy:
延迟加载
Lazy的有效期:
只有在session打开的时候才有效;session关闭后lazy就没效了。
lazy策略可以用在:
a.标签上:
可以取值true/false
b.标签上,可以取值true/false,这个特性需要类增强
c./等集合上,可以取值为true/false/extra
d./等标签上,可以取值false/proxy/no-proxy
1)get和load的区别:
a.get不支持延迟加载,而load支持。
b.当查询特定的数据库中不存在的数据时,get会返回null,而load则抛出异常。
2)类(Class)的延迟加载:
a.设置标签中的lazy="true",或是保持默认(即不配置lazy属性)
b.如果lazy的属性值为true,那么在使用load方法加载数据时,只有确实用到数据的时候才会发出sql语句;这样有可能减少系统的开销。
3)集合(collection)的延迟加载:
可以取值true,false,extra
a.true:
默认取值,它的意思是只有在调用这个集合获取里面的元素对象时,才发出查询语句,加载其集合元素的数据
b.false:
取消懒加载特性,即在加载对象的同时,就发出第二条查询语句加载其关联集合的数据
c.extra:
一种比较聪明的懒加载策略,即调用集合的size/contains等方法的时候,hibernate并不会去加载整个集合的数据,而是发出一条聪明的SQL语句,以便获得需要的值,只有在真正需要用到这些集合元素对象数据的时候,才去发出查询语句加载所有对象的数据
4)Hibernate单端关联懒加载策略:
即在/标签上可以配置
懒加载策略。
可以取值为:
false/proxy/no-proxy
a.false:
取消懒加载策略,即在加载对象的同时,发出查询语句,加载其关联对象
b.proxy:
这是hibernate对单端关联的默认懒加载策略,即只有在调用到其关联对象的方法的时候才真正发出查询语句查询其对象数据,其关联对象是代理类
c.no-proxy:
这种懒加载特性需要对类进行增强,使用no-proxy,其关联对象不是代理类
注意:
在class标签上配置的lazy属性不会影响到关联对象!
!
!
(二)inverse
inverse是指的关联关系的控制方向,inverse=false的side(side其实是指inverse=false所位
于的class元素)端有责任维护关系,而inverse=true端无须维护这些关系
(三)cascade
cascade指的是层级之间的连锁操作。
在定义关联对象的映射时,使用cascade="all",cascade="save-update",cascade="all-delete-orphan"或cascade="delete"
a.如果父对象被保存,所有的子对象会被传递到saveOrUpdate()方法去执行(cascade="save-update")
b.如果父对象被传递到update()或者saveOrUpdate(),所有的子对象会被传递到saveOrUpdate()方法去执行(cascade="save-update")
c.如果一个临时的子对象被一个持久化的父对象引用了,它会被传递到saveOrUpdate()去执行(cascade="save-update")
d.如果父对象被删除了,所有的子对象对被传递到delete()方法执行(cascade="delete")
e.如果临时的子对象不再被持久化的父对象引用,什么都不会发生(必要时,程序应该明确的删除这个子对象),除非声明了cascade="all-delete-orphan",在这种情况下,成为“孤儿”的子对象会被删除。
(四)save、update、delete一对多关系中的一方对象操作时的区别
1)当一方设置inverse=true时,所有由一方发出的操作都不会关联到多方。
2)当一方设置inverse=false,cascade=all-delete-orphan时,将删除不再和一方对象关联的所
有多方对象。
3)当一方设置inverse=false,cascade=all时,当保存和删除一方对象时,级联保存和删除所有关联的多方对象。
4)当一方设置inverse=false,cascade=none时,当对一方操作时,不级联到关联的多方对象。
5.JSP页面之间传递参数的方法有哪些?
解答:
1)request
2)session
3)application
4)提交表单
5)超链接
6.forward(转发)和redirect(重定向)的区别
解答:
forward是容器中控制权的转向,是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器会用刚才请求的所有参数重新请求,并且从浏览器的地址栏中可以看到跳转后的链接地址。
前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接;在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
7.请写出一段表单提交的HTML代码,表单名称为form1,提交方式为post,提交地址为submit.asp
解答:
8.请写出一个超链接,点击链接后可以向zhangsan@d-发送电子邮件。
zhangsan@d-”>发邮件
9.请说明meta标签的作用。
解答:
meta是用来在HTML文档中模拟HTTP协议的响应头报文。
meta标签用于网页的<head>与</head>中,meta标签的用处很多。
meta的属性有两种:
name和http-equiv。
name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。
这其中最重要的是description(站点在搜索引擎上的描述)和keywords(分类关键词),所以应该给每页加一个meta值。
比较常用的有以下几个:
name属性
1).<metaname="Generator"contect="">用以说明生成工具(如MicrosoftFrontPage4.0)等;
2).<metaname="KEYWords"contect="">向搜索引擎说明你的网页的关键词;
3).<metaname="DEscription"contect="">告诉搜索引擎你的站点的主要内容;
4).<metaname="Author"contect="你的姓名">告诉搜索引擎你的站点的制作的作者;
5).<metaname="Robots"contect="all|none|index|noindex|follow|nofollow">其中的属性说明如下:
设定为all:
文件将被检索,且页面上的链接可以被查询;
设定为none:
文件将不被检索,且页面上的链接不可以被查询;
设定为index:
文件将被检索;
设定为follow:
页面上的链接可以被查询;
设定为noindex:
文件将不被检索,但页面上的链接可以被查询;
设定为nofollow:
文件将不被检索,页面上的链接可以被查询。
6).http-equiv属性
a、<metahttp-equiv="Content-Type"contect="text/html";charset=gbk">和<metahttp-equiv="Content-Language"contect="zh-CN">用以说明主页制作所使用的文字以及语言;
b、<metahttp-equiv="Refresh"contect="n;url=http:
//yourlink">定时让网页在指定的时
间n内,跳转到页面http;//yourlink;
c、<metahttp-equiv="Expires"contect="Mon,12May200100:
20:
00GMT">可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。
需要注意的是必须使用GMT时间格式;
d、<metahttp-equiv="Pragma"contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;
e、<metahttp-equiv="set-cookie"contect="Mon,12May200100:
20:
00GMT">cookie设定,如果网页过期,存盘的cookie将被删除。
需要注意的也是必须使用GMT时间格式;
f、<metahttp-equiv="Pics-label"contect="">网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的;
g、<metahttp-equiv="windows-Target"contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用;
h、<metahttp-equiv="Page-Enter"contect="revealTrans(duration=10,transtion=50)">和<metahttp-equiv="Page-Exit"contect="revealTrans(duration=20,transtion=6)">设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面。
10.请写出一个隐藏控件。
解答:
11.如何将HTML页面的标题设置为“数字天堂”。
解答:
数字天堂
body部分
12.请写出JavaScript中常用的三种事件。
解答:
onclick(点击),onblur(失去焦点(验证)),onChange(下拉列表,内容改变)
13.请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。
程序可以判断出用户点击的是“确认”还是“取消”。
解答:
clickfunctionvalidateForm(){
if(confirm("你确认提交这个表单么?
")){
alert(“确定”);
}else{
alert(“取消”);
}
}
validateForm()">
14.JavaScript如何实现计时功能。
解答:
(课本)window.setTimeout(function,time)
15.JavaScript如何定义数组。
解答:
vararrTest=newArray();
16.JavaScript能否操作cookie和session?
解答:
JavaScript可以操作cookie,但是不能操作session?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
17.Log4J是Apache组织的开源一个开源项目,通过Log4J,可以指定日志信息输出的目的地,如console、file等。
Log4J采用日志级别机制,请按照输出级别由低到高的顺序写出日志输出级别。
解答:
Log4J分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。
通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
18.JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?
解答:
alertconfirmprompt
19.描述JSP和Servlet的区别、共同点、各自应用的范围
解答:
JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成,擅长于流程控制和事务处理,通过Servlet来生成动态网页很不直观.JSP由HTML代码和JSP标签构成,可以方便地编写动态网页.因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.
20.如何获得Thisisfirstlayer
Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
b.Schema利用命名空间将文件中特殊的节点与Schema说明相联系,一个XML文件可以有多个对应的Schema;而一个XML文件只能有一个相对应的DTD文件。
c.Schema的内容模型是开放的,可以随意扩充,而DTD则无法解读扩充的内容.DTD只能把文件类型定义为一个字符串,而XMLSchema却允许把文件类型定义为整数,浮点数,字符串,布尔值或其他各各数据类型,而无须重新定义。
UDDI是一套基于Web的、分布式的、为WebService提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的WebService注册,以使别的企业能够发现的访问协议的实现标准。
XHTML和CSS使用文档对象模型(DocumentObjectModel)作动态显示和交互使用XML和XSLT做数据交互和操作使用XMLHttpRequest进行异步数据接收使用JavaScript将它们绑定在一起。
ApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。