div, css, ui, javascript 百度首页输入字符会出css div js实现下拉框框,不输入字符就没有

您所在的位置: &
深入学习DIV CSS设计中常见问题解决办法(5)
深入学习DIV CSS设计中常见问题解决办法(5)
作为前端开发人员,在日常的页面制作时,不可避免的会碰上这样那样的问题,这里和大家分享一下常见问题的解决办法,希望对你有所帮助。
27、如何让min-height兼容ie6?&
.min-height{min-height:100_height:100} &divclass=&min-height&我是兼容的min-height&
28、DIV CSS设计中如何让鼠标变成手型且兼容所有现代浏览器?
cursor:pointer
29、如何实现ie6下的position:fixed?
参阅:/article.asp?id=188
30、IE下如何对StandardMode与QuirksMode进行切换?
IE6以下的浏览器不用触发,直接以QuirksMode呈现页面。
IE6和IE7都可以触发的(在XHTML的DTD申明前加上HTML注释):
&&!DOCTYPEhtmlPUBLIC&-//W3C//DTDXHTML1.0Strict//EN& &&http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&
IE6的触发(在XHTML的DTD申明前加上XML申明):
xmlversion=&1.0&encoding=&utf-8&&&!DOCTYPEhtmlPUBLIC&-//W3C//DTDXHTML1.0Strict//EN& &&http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&&
当没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本所有的浏览器都是使用QuirksMode呈现。
31、DIV CSS设计中如何给一个元素定义多个不同的css规则?&
styletype=&text/css&&.a{color:#f00;} &.b{background:#} &&&divclass=&ab&测试&
如上例,该元素同时拥有a和b定义的样式规则。
多个规则之间使用空格分开,并且只有class能同时使用多个规则,id不可以
32、如何区别display:none与visibility:hidden?
相同的是display:none与visibility:hidden都可以用来隐藏某个元素;
不同的是display:none在隐藏元素的时候,将其占位空间也去掉;而visibility:hidden只是隐藏了内容而已,其占位空间仍然保留。
33、DIV CSS设计中如何解决按钮在IE7及以下浏览器中随着value增多两边留白也随着增加的问题?
通常情况下,如果value的长度是固定不变的,可以给按钮设定一个固定的width,这是没有问题的,但在大多数情况下,按钮的value大多是可变的,所以给按钮设定width是不够理想的。
解决方法,给按钮加上:#overflow:padding:010其中overflow用于清除ie两边的留白,padding用于使得各浏览器的留白一致。
【编辑推荐】
【责任编辑: TEL:(010)】
内容导航&第 1 页: &第 3 页: &第 4 页:
关于的更多文章
Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM
作为移动开发者,WOT2016移动互联网技术峰会,绝对有你不得不来的理由。
今天是被国际上众多科技公司和软件企业承认的业内人士
互联网一大真理便是,有痛点的地方就有机会。现在最想
Eclipse 是一个开源的、可扩展的集成开发环境。平台本
《Cisco网络工程案例精粹》是一本以案例为基础兼顾知识概述的案例性书籍,所收录的案例都是笔者精心挑选出来的在网络工作中常见
51CTO旗下网站仿百度输入框智能提示的js代码
最近客户需求老是变更,不过有些是因为客户催得急,我没有那么快能完成,所以先做了一个雏形给他们,后来再慢慢改。比如雏形那里我做了一个下拉列表给他们,事实上他们的数据有200多条,用个下拉列表的话很不现实,你能找那么多?而且那个下拉列表该有多长啊?所以很自然的,我想到了百度那个智能提示的功能。参考了一下之前忘记是哪位大侠写的东西,他的是使用百度api的,为了简单起见,我把数据都定在了js那里,这样看官们容易理解一些。还是整个代码考上来吧,代码不长。考了一下之前忘记是哪位大侠写的东西,他的是使用百度api的,为了简单起见,我把数据都定在了js那里,这样看官们容易理解一些。&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&&html xmlns="http://www.w3.org/1999/xhtml"&&head&&&& &title&&/title&&&& &style type="text/css"&&&&&&&& .search&&&&&&& {&&&&&&&&&&& left: 0;&&&&&&&&&&& position:&&&&&&& }&&&&&&& #auto_div&&&&&&& {&&&&&&&&&&& display:&&&&&&&&&&& width: 300&&&&&&&&&&& border: 1px #74c0f9&&&&&&&&&&& background: #FFF;&&&&&&&&&&& position:&&&&&&&&&&& top: 24&&&&&&&&&&& left: 0;&&&&&&&&&&& color: #323232;&&&&&&& }&&& &/style&&&& &script src="jquery-1.7.2.min.js" type="text/javascript"&&/script&&&& &script type="text/javascript"&&&&&&&& //测试用的数据&&&&&&& var test_list = ["小张", "小苏", "小杨", "老张", "老苏", "老杨", "老爷爷", "小妹妹", "老奶奶", "大鹏", "大明", "大鹏展翅", "你好", "hello", "hi"];&&&&&&& var old_value = "";&&&&&&& var highlightindex = -1;&& //高亮&&&&&&& //自动完成&&&&&&& function AutoComplete(auto, search, mylist) {&&&&&&&&&&& if ($("#" + search).val() != old_value || old_value == "") {&&&&&&&&&&&&&&& var autoNode = $("#" + auto);&& //缓存对象(弹出框)&&&&&&&&&&&&&&& var carlist = new Array();&&&&&&&&&&&&&&& var n = 0;&&&&&&&&&&&&&&& old_value = $("#" + search).val();&&&&&&&&&&&&&&& for (i in mylist) {&&&&&&&&&&&&&&&&&&& if (mylist[i].indexOf(old_value) &= 0) {&&&&&&&&&&&&&&&&&&&&&&& carlist[n++] = mylist[i];&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& if (carlist.length == 0) {&&&&&&&&&&&&&&&&&&& autoNode.hide();&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& autoNode.empty();& //清空上次的记录&&&&&&&&&&&&&&& for (i in carlist) {&&&&&&&&&&&&&&&&&&& var wordNode = carlist[i];&& //弹出框里的每一条内容&&&&&&&&&&&&&&&&&&& var newDivNode = $("&div&").attr("id", i);&&& //设置每个节点的id值&&&&&&&&&&&&&&&&&&& newDivNode.attr("style", "font:14px/25height:25padding:0 8cursor:");&&&&&&&&&&&&&&&&&&& newDivNode.html(wordNode).appendTo(autoNode);& //追加到弹出框&&&&&&&&&&&&&&&&&&& //鼠标移入高亮,移开不高亮&&&&&&&&&&&&&&&&&&& newDivNode.mouseover(function () {&&&&&&&&&&&&&&&&&&&&&&& if (highlightindex != -1) {&&&&&&& //原来高亮的节点要取消高亮(是-1就不需要了)&&&&&&&&&&&&&&&&&&&&&&&&&&& autoNode.children("div").eq(highlightindex).css("background-color", "white");&&&&&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&&&&&&&&&& //记录新的高亮节点索引&&&&&&&&&&&&&&&&&&&&&&& highlightindex = $(this).attr("id");&&&&&&&&&&&&&&&&&&&&&&& $(this).css("background-color", "#ebebeb");&&&&&&&&&&&&&&&&&&& });&&&&&&&&&&&&&&&&&&& newDivNode.mouseout(function () {&&&&&&&&&&&&&&&&&&&&&&& $(this).css("background-color", "white");&&&&&&&&&&&&&&&&&&& });&&&&&&&&&&&&&&&&&&& //鼠标点击文字上屏&&&&&&&&&&&&&&&&&&& newDivNode.click(function () {&&&&&&&&&&&&&&&&&&&&&&& //取出高亮节点的文本内容&&&&&&&&&&&&&&&&&&&&&&& var comText = autoNode.hide().children("div").eq(highlightindex).text();&&&&&&&&&&&&&&&&&&&&&&& highlightindex = -1;&&&&&&&&&&&&&&&&&&&&&&& //文本框中的内容变成高亮节点的内容&&&&&&&&&&&&&&&&&&&&&&& $("#" + search).val(comText);&&&&&&&&&&&&&&&&&&& })&&&&&&&&&&&&&&&&&&& if (carlist.length & 0) {&&& //如果返回值有内容就显示出来&&&&&&&&&&&&&&&&&&&&&&& autoNode.show();&&&&&&&&&&&&&&&&&&& } else {&&&&&&&&&&&&&& //服务器端无内容返回 那么隐藏弹出框&&&&&&&&&&&&&&&&&&&&&&& autoNode.hide();&&&&&&&&&&&&&&&&&&&&&&& //弹出框隐藏的同时,高亮节点索引值也变成-1&&&&&&&&&&&&&&&&&&&&&&& highlightindex = -1;&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&&&&&& //点击页面隐藏自动补全提示框&&&&&&&&&&& document.onclick = function (e) {&&&&&&&&&&&&&&& var e = e ? e : window.&&&&&&&&&&&&&&& var tar = e.srcElement || e.&&&&&&&&&&&&&&& if (tar.id != search) {&&&&&&&&&&&&&&&&&&& if ($("#" + auto).is(":visible")) {&&&&&&&&&&&&&&&&&&&&&&& $("#" + auto).css("display", "none")&&&&&&&&&&&&&&&&&&& }&&&&&&&&&&&&&&& }&&&&&&&&&&& }&&&&&&& }&&&&&&& $(function () {&&&&&&&&&&& old_value = $("#search_text").val();&&&&&&&&&&& $("#search_text").focus(function () {&&&&&&&&&&&&&&& if ($("#search_text").val() == "") {&&&&&&&&&&&&&&&&&&& AutoComplete("auto_div", "search_text", test_list);&&&&&&&&&&&&&&& }&&&&&&&&&&& });&&&&&&&&&&& $("#search_text").keyup(function () {&&&&&&&&&&&&&&& AutoComplete("auto_div", "search_text", test_list);&&&&&&&&&&& });&&&&&&& });&&& &/script&&/head&&body&&&& &div class="search"&&&&&&&& &input type="text" id="search_text" /&&&&&&&& &div id="auto_div"&&&&&&&& &/div&&&& &/div&&/body&&/html&大家复制代码的时候记得把jquery带上,不然出错了又要来骂娘了……说说主要的思路吧。首先,把数据弄成一个js数组,然后遍历这个数组,每一条数据生成一个div,然后添加到auto_div这个div里,还要设置一下鼠标移过高亮,移开恢复正常,以及点击的时候自动填上文本框里,还有鼠标在网页点击的时候列表框会消失――当然还有更多细节要注意,这里只是举个例子。怎样让文本框里的文本改变的时候就触发AutoComplete事件呢?用onchange?错,onchange是文本框失去光标的时候才会触发,所以使用keyup事件会好一点。别的不多说,代码也不难看懂,原理也很简单。我要强调的一点是,像这种智能提示功能可能有些新手会想到用模糊搜索,当文本框里的文本改变的时候就去查一下数据库,把返回的数据列出来――这是不好的做法,我不说他错误因为这样确实可行,但是这会给服务器造成太大的负担,每改变一下文本就查一下数据库,就好像我每要一样东西就要向你问一下一样,倒不如你一次把它们全给我,我要什么自己选。当然凡事都有两面性,把所有数据一次性查出来的后果是耗内存,大数据不建议这样做,这种做法适用于大部分情况,因为大部分情况都不是大数据――大数据的,另想它法。最后说说我的感受:之前面试过前端工程师,那时候人家觉得我还嫩,确实那时候特嫩。现在,我在前端的领域正开始慢慢强大起来,虽然公司没有前端工程师,但是我还是觉得前端很重要,我要合理运用前端来解决一些用前端很简单就能解决的问题,而不是丢给后台来处理。在公司做着做着,虽然跟别人学到的东西不多,但是需求来了,自己想办法以及在网上找一些解决方案,自己也学到不少东西。继续做,加油!
最新教程周点击榜
微信扫一扫JS效果:像百度搜索框一样,在文本框中输入字符后,自动出现提示下拉框 - JavaScript当前位置:& &&&JS效果:像百度搜索框一样,在文本框中输入字符后,JS效果:像百度搜索框一样,在文本框中输入字符后,自动出现提示下拉框&&网友分享于:&&浏览:989次求助JS效果:像百度搜索框一样,在文本框中输入字符后,自动出现提示下拉框这个效果我思考如下:(1)下拉框可能用&div&来做(2)需要与服务器实时交互,因为下拉框中出现的内容从服务器端读取的(用到AJAX)求助较为详细的代码,谢谢了------解决方案--------------------
前几天才做了一个,.cn/JScript code
$(&.searchText&).bind(&keyup&, function(){
if(later!=null) clearTimeout(later);
later = setTimeout(function(){
var keyword = $(&.searchText&).val();
if(keyword!=&&){
$.get(&/skin.aspx&, {keywords: keyword}, function(data){
var resHtml = &&;
if($(data).find(&keyword&).length & 0){
$(data).find(&keyword&).each(function(index){
resHtml += &&li onmouseover=\&rs_event.hover()\& onmouseout=\&\& onclick=\&rs_event.click('&+$(this).find(&name&).text()+&')\&&&+$(this).find(&name&).text()+&&/li&\n&;
$(&.search_complete&).html(&&).append(resHtml).show();
if($(data).find(&keyword&).length&20){
$(&.search_complete&).css({height:'400px', overflowY:'auto'});
$(&.search_complete&).css({height:'auto'});
$(&.search_complete&).hide();
$(&.search_complete&).hide();
------解决方案--------------------能获取数据的话,剩下的就是定义div的显示样式而已,用css,我感觉用jquery中的ajax还是挺好用的
------解决方案--------------------其实网上有现成的js控件的.我前不久也模仿的写过。我去找找!
------解决方案--------------------学习下 哈!
------解决方案--------------------
纯js写的HTML code
&!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN& &http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&&
&html xmlns=&http://www.w3.org/1999/xhtml& &
&head runat=&server&&
&title&Auto Complete&/title&
&style type=&text/css&&
.hlight{background-color:Red}
.normal{backgroud-color:}
&script language=&javascript& type=&text/javascript& src=&../../JS/jquery-1[1].3.2.min.js&&&/script&
function doit(evt)
evt = (evt) ? evt : ((window.event) ? window.event : &&);
var key = evt.keyCode?evt.keyCode:evt.
if(key==38|key==40|key==13)
var wd = document.getElementById(&wd&).
if(wd.length==0)
url:'../../Example/AutoComplete/Handler1.ashx',
type:'POST',
dataType:'json',
data: &wd=&+wd,
error:function(x){alert(x.status);},
success:function(data){$(&#show_wd&).html(setTable(data)).show();}
//设置拼接Table
function setTable(jsn)
if(jsn.s.length==0|jsn.s[0]==&&|jsn.s[0]==&undefined&)
document.getElementById(&show_wd&).style.display=&none&;
var html =&&table id=\&tb\& width=\&100%\&&&;
for(var i in jsn.s)
html+=&&tr onmouseover=\&hLight(this)\&&&td onclick=\&completeField(this)\&&&+jsn.s[i]+&&/td&&/tr&&;
html +=&&tr class=\&hlight\& style=\&display:none\&&&td&&+document.getElementById('wd').value+&&/td&&/tr&&;
//alert(document.getElementById('wd').value);
html +=&&/table&&;
//setDiv();//设置DIV
//alert(html);
//设置DIV的位置
function setDiv()
var txt = document.getElementById(&wd&);
var tDiv = document.getElementById(&show_wd&);
tDiv.style.width =txt.offsetW + &px&;
var left = calculateOffset(txt,&offsetLeft&);
var top = calculateOffset(txt, &offsetTop&) + txt.offsetH
tDiv.style.border = &black 1px solid&;
tDiv.style.left = left + &px&;
tDiv.style.top = top + &px&;
//将该行的数据填充到文本框内
function completeField(tdvalue)
document.getElementById(&wd&).value=tdvalue.innerT
document.getElementById(&show_wd&).style.display=&none&;
//计算控件相对于浏览器的位置
function calculateOffset(field, attr)
var offset = 0;
while(field) {
offset += field[attr];
field = field.offsetP
//在输入框内点击上下回车
function KeyDown(evt)
evt = (evt) ? evt : ((window.event) ? window.event : &&) //兼容IE和Firefox获得keyBoardEvent对象
var key = evt.keyCode?evt.keyCode:evt. //兼容IE和Firefox获得keyBoardEvent对象的键值
if(key==38)
lightMove(&up&);
if(key==40)
lightMove(&down&);
if(key==13)
lightMove(&ok&);
//高亮移动
function lightMove(cmd)
var tb = document.getElementById(&tb&);
if(cmd==&up&)
for(var i=0;i&tb.rows.i++)
if(tb.rows[i].className==&hlight&)
tb.rows[i].className=&normal&;
i=i==0?tb.rows.length-1:i-1;
tb.rows[i].className=&hlight&;
sTxt(tb.childNodes[i].childNodes[0]);
if(cmd==&down&)
for(var i=0;i&tb.rows.i++)
if(tb.rows[i].className==&hlight&)
tb.rows[i].className=&normal&;
i=i==tb.rows.length-1?0:i+1;
tb.rows[i].className=&hlight&;
sTxt(tb.childNodes[i].childNodes[0]);
if(cmd==&ok&)
for(var i=0;i&tb.rows.i++)
if(tb.rows[i].className==&hlight&)
completeField(tb.rows[i]);
//将输入的内容写进Table
function insTR(tb)
var new_tr = tb.insertRow(tb.rows.length);
var new_td = new_tr.insertCell();
new_td.innerText=document.getElementById(&wd&).
new_tr.style.display=&none&;
new_tr.className=&hlight&;
//将数值写入文本框
function sTxt(td)
//alert(td.innerText);
document.getElementById(&wd&).value=td.innerT
//高亮某行
function hLight(tr)
var tb = document.getElementById(&tb&);
for(var i=0;i&tb.rows.i++)
if(tb.rows[i].className==&hlight&)
tb.rows[i].className=&normal&;
tr.className=&hlight&;
window.onload = function()
&form id=&form1& runat=&server&&
&input id=&wd& type=&text& style=&width: 500px& autocomplete=&off& onkeypress=&doit(event)&
onkeydown=&KeyDown(event)& /&
&div id=&show_wd& style=&position: font-size: 12 display:none&&
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有当前位置:&&
本页文章导读:
&&&&?二级下拉菜单被遮住,css设置z-index在ie下没作用的问题解决办法 - 蒋叶湖&&&&&&用jQuery做了个鼠标经过出现的二级菜单加动画效果,firefox下完美呈现,IE下下拉菜单有些会被下面的网页内容遮住,例如iframe,div,下拉框,输入框等,开始折腾ie css。在ie下设置了z-index结果......&&&&?转义字符(\)对JavaScript中JSON.parse的影响&&&&&&Email:longsu2010 at yeah dot net
按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象......&&&&?Servlet部署描述文件(web.xml)&&&&&&最近看了下配置文件(Deployment Descriptor:简称DD),又称部署描述文件,下面详细介绍下该文件的组成和作用:
一、&web-app&有四个属性:
1、xmlns:申明了web.xml文件的名称空间的xml方案文......
&&&&&&最新IT科技资讯推荐:
[1]二级下拉菜单被遮住,css设置z-index在ie下没作用的问题解决办法 - 蒋叶湖
&&&&来源:&
& 发布时间:&
用jQuery做了个鼠标经过出现的二级菜单加动画效果,firefox下完美呈现,IE下下拉菜单有些会被下面的网页内容遮住,例如iframe,div,下拉框,输入框等,开始折腾ie css。在ie下设置了z-index结果没有任何效果,整了个jQuery插件:bgiframe,结果只能解决ie6下面的选择框。被IE的z-index bug整的晕死了,几番折腾搞定了,注意点:1. 注意设置父元素的z-index (因为z-index有继承性,stacking context,stacking level )2. 必须给定position: relative / absolute3. z-index为负值各浏览器有不同行为,自己google,这里用不着负值。本文链接:/jiangyehu1110/p/3194664.html,转载请注明。
[2]转义字符(\)对JavaScript中JSON.parse的影响
&&&&来源:&互联网& 发布时间:&
Email:longsu2010 at yeah dot net
按照ECMA262第五版中的解释,JSON是一个提供了stringify和parse方法的内置对象,前者用于将js对象转化为符合json标准的字符串,后者将符合json标准的字符串转化为js对象。json标准参考&a href=&http://json.org/& target=&_blank&&json.org&/a&。(其实将符合json标准的字符串转化为js对象可以用eval,但是eval性能相对差且存在安全隐患(会执行json字符串中的代码),本文仅写JSON)
本文写的是转义字符对JSON.parse方法的影响。
一般来说在JSON.parse的参数包含转移字符的时候会遇到两次转义的问题,其实第一次是字符串本身的转义,第二次是将真正转为js对象的转义。
举例如下:
例子一:将字符串'{&a&:&b&,&b&:&\\\\&}'传递给JSON.parse,首先解析器提取单引号括起来的字符串时认为第一个\转义第二个\ 第三个\转义第四个\,也就是说实际可输出字符串是{&a&:&b&,&b&:&\\&}(可通过console.log('{&a&:&b&,&b&:&\\\\&}')验证),之后正式转为js对象的时候还有一次转义,也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\)。所以console.log(JSON.parse('{&a&:&b&,&b&:&\\\\&}')
);输出结果为Object {a: &b&, b: &\&},也就是说实际显示的数据为一个\(实际可输出一个\说明在此之前还有一个\)。
var obj = {
var json_str = JSON.stringify(obj);
console.log( JSON.stringify(obj) );
console.dir(JSON.parse(json_str));
console.dir(JSON.parse('{&a&:&b&,&b&:&\\\\&,&c&:{&b&:&\\\\&,&a&:{&b&:&\\\\&}}}'));
输出结果如下图
根据转义规则,实际输出一个\在这个\之前必定有一个\。所以如上第一行输出按照书写来说为'{&a&:&b&,&b&:&\\\\&,&c&:{&b&:&\\\\&,&a&:{&b&:&\\\\&}}}',可通过第三条输出来验证。
总结,如果想在js对象中出现一个\,需要在json字符串中出现四个\ 。
对于其他的其他的特殊字符
1.双引号(&),如果正确出现双引号应为\\\&
2.\n,如想想出现正确的换行需要json字符串中是\\n,其实是先对\n中的\转义,n变成了普通字符,在解析为js对象的时候n与之前的\(只有一个\了)被解释为换行。如下的两个与此类似。
作者:tt361 发表于 9:54:01 原文链接
阅读:14 评论:0 查看评论
[3]Servlet部署描述文件(web.xml)
&&&&来源:&互联网& 发布时间:&
最近看了下配置文件(Deployment Descriptor:简称DD),又称部署描述文件,下面详细介绍下该文件的组成和作用:
一、&web-app&有四个属性:
1、xmlns:申明了web.xml文件的名称空间的xml方案文档的位置;
2、xmls:xsi:指定了命名空间的案例;
3、xsi:schemeLocation:指定了发方案的位置;
4、version:制定方案的版本;
二、DD文件定义:(下面为&web-app&完整的DTD定义)
&!ELEMENT web-app (icon?, display-name?, description?,distributable?,
context-param*, filter*, filter-mapping*,listener*, servlet*, servlet-mapping*, session-config?,mime-mapping*,
welcome-file-list?,error-page*, taglib*, resource-env-ref*, resource-ref*,security-constraint*, login-config?,
security-role*,env-entry*,ejb-ref*, ejb-local-ref*)&
在DTD中,带?的元素可以出现0次或者一次,带*元素可出现0次或多次,带+元素可出现一次或多次,不带则只出现一次。
对其中比较常用的元素描述下:
description:对应用程序的简短描述;
displey-name:应用程序的显示名称;
context-param:应用程序的初始参数;
servlet:定义servlet;
servlet-mapping:servlet的映射;
welcome-file-list:应用程序的欢迎文件;
session-config:会话时间;
listener:定义监听器类;
filter:定义过滤器类;
filter-mapping:过滤器映射;
error-page:错误处理页面;
security-constraint:web应用程序的安全约束;
mime-mapping:常用文件扩展名的MIME类型;
三、&Servlet&元素
1、&servlet-name&元素:必须选,定义servlet名称,在DD文件中应该唯一,可通过servletConfig的getServletName()方法检索;
2、&servlet-class&元素:制定servlet完整名称,需带包
WEB-INF目录中的classes目录和lib目录中JAR文件会被自动添加到容器的类路径中,不需设置类路径
3、&init-param&元素:向servlet传递初始化参数,每个&int-param&有仅有一组&param-name&和&param-value&子元素,可通过ServletConfig接口的getInitParameter()方法检索初始化参数;
4、&load-on-startup&元素:一般的servlet是在被请求时由容器装入内存,这只一个正数则在启动时载入该servlet,值小的优先装入,负数或者没有指定,容器将根据需要决定何时装入servlet
四、&servlet-mapping&元素:指定那个URl模式被该servlet处理
1、URL组成:
/myapp/helloServlet/hello/abc.jsp?user=zhuwangbiluo
第一部分:协议与主机名第二部分:上下文路径第三部分:servlet路径第四部分:路径信息第五部分:查询串
可通过请求对象的getContextPath()、getServletPath()、getPathInfo()方法获得上下文路径、servlet路径、路径信息
2、&url-pattren&三种形式
1)、目录匹配:以“/”开头,以&/*&结尾形式,如:
/helloServlet/hello/*
任何在Servlet路径中以/helloServlet/hello/开头的URL都匹配
2)、扩展名匹配:以“*”开头,后接一个扩展名(如:“*.do”或者“*.pdf”等)如:*.do
映射把所有以.do结尾的请求发送给该servlet
3)、精确匹配:所有其他字符串都作为精确匹配,如:
只有http://www....../myapp/report才符合要求
3、容器如何匹配URL:
1)、容器收到URL,解析,取出第一部分作为上下文路径,这里是/myapp,在tomcat中查找是否有名为myapp的应用程序;
2)、若没有,则上下文路径为零,发送到默认应用程序(ROOT);
3)、有的话,继续解析,尝试将servlet路径与servlet映射匹配,找到匹配,则完整的URL请求(除上下文路径)就是servlet路径,该情况下路径信息为null;
4)、容器沿着请求URL路径树向下,每次一层目录,使用/作为路径分隔符,反复尝试最长路径,看是否与一个servlet匹配,有的话,改URL的匹配就是servlet路径,剩余为路径信息;
5)、找不到,发送404错误消息到客户端。
五、&welcome-file-list&元素:在对应URL目录首先查找有无对应servlet,没有则依次看有无index.html,index.jsp,找到则显示该文件。再无,若找到list元素中的文件,将其返回客户端,否则报404错误。
出处:http://blog.csdn.net/cl/article/details/9339205&作者:伫望碧落
作者:cl 发表于 8:36:21 原文链接
阅读:96 评论:0 查看评论
最新技术文章:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)}

我要回帖

更多关于 div 下拉框 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信