??xml version="1.0" encoding="utf-8" standalone="yes"?> 在经典同时看C个关于ContentType的问?/p> http://bbs.blueidea.com/thread-2729935-1-1.html http://bbs.blueidea.com/thread-2729945-1-1.html 所以查了下资料,copy了一份详l的ContentType的列?/p> 不同的ContentType 会媄响客L所看到的效? 默认的ContentType?text/html 也就是网|? 代码? <% response.ContentType ="text/html" %> 昄的ؓ|页,?/p> <% response.ContentType ="text/plain" %> 则会昄html原代? 以下Z些常用的 ContentType 下面是更详细的ContentType 1. 在数据库表中建立一个blob字段存放用户上传文g. 我本人现在比较們于第2U方? 主要原因是担心方?的效率(我用的是mysql数据库)?但是处理q程中除了维护数据库中表的字D还要维护上传的文g 大家在项目里面又是怎么做呢Q?l我点徏议!谢谢 环境介绍 cookie在wwwd名下创徏Qƈ写入Domain属性,如:(为方便调试以下代码皆为asp代码) Write.asp <% 上面文g攑֜wwwd名下Q同时在同目录下攄一个读取cookie的Read.asp Read.asp <% 再放一个Read.asp文g到另外一个子域名站点里,代码同上。最后我们再做一个清除cookie的Clear.asp攑֜d名下 Clear.asp <%
现在可以通过下面的执行顺序来试QWrite.asp-->d名的Read.asp-->子域名的Read.asp 所?
Read.asp面都可以读取到Write.asp创徏的cookie的|然后再运行Clear.aspq行清除Q一切都OkQ看上去没有什么问题?/p'> 但是把这U方法运用到实际的站Ҏ却出现问题了?/p'> 问题描述Q?/p'>
W一ơ登录一切okQ所有子域名都可以访问到d名存储的cookieQ但是,一旦退Z后,子域名的cookie被清除了Q但是主域名?
cookie仍然保留着Q强行清除主域名的cookie之后Q无论怎样dd名下都无法保存cookie了,除非x览器重新打开?/p'> l过多次试之后Q无意中发现问题所在,以下是测试经q?/p'> 创徏一个Write2.asp的页面放在主域名?/p'> <% W一步:关闭览器后Q按以下序执行QWrite.asp-->d名的Read.asp-->子域名的Read.asp 到这里所有Read.aspd正常?/p'> W二步:Clear.asp-->d名的Read.asp-->子域名的Read.asp 到这里清除操作是成功的?/p'> W三步:Write.asp--> Write2.asp --> d名Read.asp --> 子域名Read.asp 到这里两个Read.asp都可以读取到cookie的倹{?/p'> W四步:重新执行W二步,发现d名Read.asp仍然输出了|而子域名下的Read.asp的值已l被清空了?/p'> Ҏ以上试ȝ以下几点再跨域用cookie旉要注意的地方 1、当你有一个Cookiel(或叫Cookie字典Q用Domain属性指定域名之后,当你在对该组的成员进行修Ҏ新增的时候,一定要在操作之后加上Resonse.Cookies(CookieName).Domain属性?/p'> 2、如果没有必要,请不要修改已讄Domain的Cookiel,直接使用Response.Cookies("CookieText") = CookieValue 来创Z个新的Cookie?br /> 一、Struts的国际化 二、静态部分的国际?br />
Struts的jsp面静态内容(包括静态文字,静态图片)国际化问题,是通过资源文g来实现的。要实现国际化,需要做如下几项工作Q?、定义web.xml的动ActionServlet的参敎ͼ2、定义资源文Ӟ3、定义JSP面的字W集合;4、在JSP面获取资源文g里面的内宏V?br />1、定义web.xml的动ActionServlet的参?br /> 2、定义资源文?br />?WEB-INF/classes下面dUTF-8资源束文件。每一个资源文件是“键Q值”对的集合。在JSP面里面可以通过键来扑ֈ相应的数据倹{本例子的文件名是ApplicationResourcesQ所以相应的资源文g束是(包括e文,体中文,J体中文) //ApplicationResources_zh_CN.bak
Q简体中文的资源文g。里面的内容是中文的。它需要工具将其中的内容处理成UTF-8 //ApplicationResources_zh_TW.bak :
J体中文的资源文件。里面的内容是中文的。它需要工具将其中的内容处理成UTF-8,下面的内ҎJ体码?br />label.username=ノめ?W
: 2.2 准备完成以后Q用如下的命o创徏UTF-8资源文g?br />native2ascii -encoding gb2312
ApplicationResources_zh_CN.bak
ApplicationResources_zh_CN.properties 3、定义JSP面的字W集?br />定义JSP面的语a为UTF-8。在每个JSP面Q必L如下的内容(如果使用的模板技术,则只是需要在模板面dQ其他用该模板的页面无需dQ?br /><%@
page contentType="text/html;charset=UTF-8"%> 4、在JSP面获取资源文g里面的内宏V?br />在JSP里面需要显C静态内容的地方使用<bean:message />strus的bean
tag包里面的message标签。例如下面的面 <table> 好了Q在q个面昄的时候,如果客户的IE的语a集合是zh_CN的话Q就会显C?br />用户名: 如果是客LIE的语a是zh_TW的话Q就会显C?br />用户名: 可以在IE的工?>Internet选项->语言的地方,来选择Q定义IE的语a?/p> 三、表单的数据的处理?br />对于表单数据的处理,我们是通过d一个Filter来实现的。所有提交的hQ都需要做字符处理。然后在web.xml里面定义该Filter。这h们就不需要在E序里面做Q何的字符处理?/b> import java.io.*; public class CharsetEncodingFilter implements Filter{ public void init(FilterConfig config) throws ServletException { public void destroy() { public void doFilter(ServletRequest request, ServletResponse
response, 3.2 在web.xml里面声明使用该Filter 四、扩?br />待箋的是应用E序部分的国际化问题Q和DB的国际化问题?/p>
摘要Q收集一些常用的正则表达式?/font>
正则表达式用于字W串处理Q表单验证等场合Q实用高效,但用到时L不太把握Q以致往往要上|查一番。我一些常用的表达式收藏在q里Q作备忘之用。本贴随时会更新?/font>
匚w中文字符的正则表辑ּQ?[\u4e00-\u9fa5]
匚w双字节字W?包括汉字在内)Q[^\x00-\xff]
应用Q计字W串的长度(一个双字节字符长度?QASCII字符?Q?/font>
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匚wI的正则表辑ּQ\n[\s| ]*\r
匚wHTML标记的正则表辑ּQ?<(.*)>.*<\/\1>|<(.*) \/>/
匚w首尾I格的正则表辑ּQ?^\s*)|(\s*$)
应用Qjavascript中没有像vbscript那样的trim函数Q我们就可以利用q个表达式来实现Q如下:
String.prototype.trim = function()
利用正则表达式分解和转换IP地址Q?/font>
下面是利用正则表辑ּ匚wIP地址QƈIP地址转换成对应数值的javascriptE序Q?/font>
function IP2V(ip)
不过上面的程序如果不用正则表辑ּQ而直接用split函数来分解可能更单,E序如下Q?/font>
var ip="10.100.20.168"
匚wEmail地址的正则表辑ּQ\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匚w|址URL的正则表辑ּQhttp://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
得用正则表达式从URL地址中提取文件名的javascriptE序Q如下结果ؓpage1
s="http://www.9499.net/page1.htm"
利用正则表达式限制网表单里的文本框输入内容Q?/font>
用正则表辑ּ限制只能输入中文Qonkeyup="value=value.replace(/[^
\u4E00-\u9FA5]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正则表辑ּ限制只能输入全角字符Q?/font>
onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正则表辑ּ限制只能输入数字Qonkeyup="value=value.replace(/[^
\d]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正则表辑ּ限制只能输入数字和英文:onkeyup="value=value.replace
(/[\W]/g,'')
"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
]]>
]]>
come from here
<!--Qi nclude virtual="/ContentType.html" -->
<!--Qi nclude virtual="/sscript/GIF images <% response.ContentType ="image/gif" %>
<!--Qi nclude virtual="/myimage.gif" -->JPEG images <% response.ContentType ="image/jpeg" %>
<!--Qi nclude virtual="/myimage.jpeg" -->TIFF images <% response.ContentType ="image/tiff" %>
<!--Qi nclude virtual="/myimage.tiff" -->MICROSOFT WORD document <% response.ContentType ="application/msword" %>
<!--Qi nclude virtual="/myfile.doc" -->RTF document <% response.ContentType ="application/rtf" %>
<!--Qi nclude virtual="/myfile.rtf" -->MICROSOFT EXCEL document <% response.ContentType ="application/x-excel" %>
<!--Qi nclude virtual="/myfile.xls" -->MICROSOFT POWERPOINT document <% response.ContentType ="application/ms-powerpoint" %>
<!--Qi nclude virtual="/myfile.pff" -->PDF document <% response.ContentType ="application/pdf" %>
<!--Qi nclude virtual="/myfile.pdf" -->ZIP document <% response.ContentType ="application/zip" %>
<!--Qi nclude virtual="/myfile.zip" -->application/andrew-inset ez application/mac-binhex40 hqx application/mac-compactpro cpt application/mathml+xml mathml application/msword doc application/octet-stream bin dms lha lzh exe class so dll application/oda oda application/ogg ogg application/pdf pdf application/postscript ai eps ps application/rdf+xml rdf application/smil smi smil application/srgs gram application/srgs+xml grxml application/vnd.mif mif application/vnd.mozilla.xul+xml xul application/vnd.ms-excel xls application/vnd.ms-powerpoint ppt application/vnd.wap.wbxml wbxml application/vnd.wap.wmlc .wmlc wmlc application/vnd.wap.wmlscriptc .wmlsc wmlsc application/voicexml+xml vxml application/x-bcpio bcpio application/x-cdlink vcd application/x-chess-pgn pgn application/x-cpio cpio application/x-csh csh application/x-director dcr dir dxr application/x-dvi dvi application/x-futuresplash spl application/x-gtar gtar application/x-hdf hdf application/x-httpd-php .php .php4 .php3 .phtml application/x-httpd-php-source .phps application/x-javascript js application/x-koan skp skd skt skm application/x-latex latex application/x-netcdf nc cdf application/x-pkcs7-crl .crl application/x-sh sh application/x-shar shar application/x-shockwave-flash swf application/x-stuffit sit application/x-sv4cpio sv4cpio application/x-sv4crc sv4crc application/x-tar .tgz tar application/x-tcl tcl application/x-tex tex application/x-texinfo texinfo texi application/x-troff t tr roff application/x-troff-man man application/x-troff-me me application/x-troff-ms ms application/x-ustar ustar application/x-wais-source src application/x-x509-ca-cert .crt application/xhtml+xml xhtml xht application/xml xml xsl application/xml-dtd dtd application/xslt+xml xslt application/zip zip audio/basic au snd audio/midi mid midi kar audio/mpeg mpga mp2 mp3 audio/x-aiff aif aiff aifc audio/x-mpegurl m3u audio/x-pn-realaudio ram rm audio/x-pn-realaudio-plugin rpm audio/x-realaudio ra audio/x-wav wav chemical/x-pdb pdb chemical/x-xyz xyz image/bmp bmp image/cgm cgm image/gif gif image/ief ief image/jpeg jpeg jpg jpe image/png png image/svg+xml svg image/tiff tiff tif image/vnd.djvu djvu djv image/vnd.wap.wbmp .wbmp wbmp image/x-cmu-raster ras image/x-icon ico image/x-portable-anymap pnm image/x-portable-bitmap pbm image/x-portable-graymap pgm image/x-portable-pixmap ppm image/x-rgb rgb image/x-xbitmap xbm image/x-xpixmap xpm image/x-xwindowdump xwd model/iges igs iges model/mesh msh mesh silo model/vrml wrl vrml text/calendar ics ifb text/css css text/html .shtml html htm text/plain asc txt text/richtext rtx text/rtf rtf text/sgml sgml sgm text/tab-separated-values tsv text/vnd.wap.wml .wml wml text/vnd.wap.wmlscript .wmls wmls text/x-setext etx video/mpeg mpeg mpg mpe video/quicktime qt mov video/vnd.mpegurl mxu video/x-msvideo avi video/x-sgi-movie movie x-conference/x-cooltalk ice
]]>
]]>
最q碰到盗铄问题Q即复制一个url地址Q在另一个地方也能访问?br />
index.jsp面<html>
<head><title>Simple jsp page</title></head>
<body>Place your content here
here is index jsp
get header info
<a href="a.jsp">a.jsp</a>
</body>
</html>
a.jsp面<html>
<head><title>Simple jsp page</title></head>
<body>Place your content here
here is a. jsp
get header info
<%=request.getHeader("Referer")%>
<%
if(null == request.getHeader("Referer") || request.getHeader("Referer").indexOf("yourdomain.com") < 0){%>
做h要厚?br />
<%
}else{%>
合法讉K
<%}%>
</body>
</html>
即从内部讉K可以Q直接粘贴地址在另一个浏览器里访问禁?img src ="http://www.aygfsteel.com/alex/aggbug/103458.html" width = "1" height = "1" />
]]>
目里面有上传文g的需?我想了一下不外乎下面两种处理Ҏ:
2. 在服务器上徏立一个文件夹保存用户上传文g,数据库表中只存放该文
讨论内容? javaeye
robin更徏议第二种ҎQ放在数据库中主要的问题?AppServer吃不消,开销比较?
上面是摘录,不过我们q里用的是Oracle9i AS,在Oracle的协作套间里一般文档或者上传的文g都是保存在数据库里,q把q个Ҏ作为Oracle 与别的协作套件之间不同的卖点?br>
大家以ؓ如何? 我直觉是Oracle的DB和oc4j的AppServer对付q个g没有开销上的担心Q但是没有实际检过?
换句话说Q文件的理是放在文件夹里方便还是数据库里方? 有点为难
update (2007-5-13):
q有一U方案结合了数据库和IOQ我认ؓ比较可行Q就是文件存在数据库Q但是下载的时候第一ơ从数据库下载,然后W一ơ这个文件保存在一个时文件夹下面Q以后每ơ下载的时候L先检查此临时文g夹,如果已经存在则直接下载,如果没有则从数据库重复这个动作。当Ӟ保存在时文件夹下的文g的命名需要唯一Q这个应该没有问题?/span>
]]>
web快速开发是一个值得期待的东西,最早我接触q?span style="FONT-WEIGHT: bold">codecharge,是一个商业YӞ功能据说很强大,我试用过Q支持php
2. 接着是dorado ,刚看到的Q感觉也不错,有asp的风|不过更适合j2ee的环
3. 最后,刚google了一下,Oracle也有一个基于Oracl
4.对了Q再补充一个现在很热的QRor,听说javaeye的网站要重新用ruby1.2开发,试用q一点,感觉实令h震惊Q值得x?br />
java的技术其实是看着很热闹,比较大的东西也不,但是真正xwebq一块的其实不多Q无论是strutsq是webwork,L们所说的真正的“快速开发”的距离很远Q而以上一些工L出现也许会逐步改善j2ee在这一领域的现状?br />
我之所以对q个目前有点兴趣Q确实有一U强烈的反差在折着我,因ؓ我相信在j2ee的web开发里实存在本来要开?周多的工作量很可能用一个好的工具几个小时就搞定了,q是一件多么荒唐搞W的事情Q如果dorado在它的品中真的能做到这样那我们的java开发那么坑吃坑吃的折腾个什么劲? 也许真的有奇q,我宁愿相信有q样的奇qV?br />
大家有什么好的想法可以讨Z下?br />
]]>
最q项目中用到了收Ӟ需要在显上显C金?
1.?dll?ocx{考到system32下?br />2.用命令注册regsvr32.exe .dll?eg:regsvr32.exe OWC11.dll)
3.在注册表中查看:利用名称或与其唯一对应的clsid("clsid:0002E55D-0000-0000-C000- 000000000046")可查扑ֈ相关信息
]]>
bea world 2006 北京已经q去好几天了Q早想记录一下一直忙 :)
阅读全文
]]>
原来一直用struts,最q项目里有h用jstl,我也顺便拿来用Q感觉还是不错?br />
q程中碰C些小的问题ȝ如下:
一。版本问?br />jstl存在1.0?.1的差异问题,用EL需要在1.1的版本下Q?.1的URI的标志ؓ:
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
注意Q?.0版本没有/jsp/.
如果用的1.0会出现如下异?br />
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:75)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
com.wellsoon.zfzw.webapp.common.VabAccessFilter.doFilter(VabAccessFilter.java:43)
root cause
二。打开QL
前提是容器支持2Q0Q即使支持默认也未必打开Q最安全的方式就是显C打开 isELIgnored="false"
?fn的用?br />对于Vo里的一个List作length的计或判断很方?br />
<c:forEach items="${menuInfos}" var="m">
<c:if test="${fn:length(m.subMenus)>0}">
<tr>
<td>
<script language="JavaScript">
var tObj = new treeClass("A1")
tObj.start();
tObj.m_start("<c:out value="${m.menuModule}"/>",0);
<c:forEach items="${m.subMenus}" var="sub">
tObj.add_Sub("<c:out value="${sub.menuName}"/>","<%=path%>
<c:out value="${sub.url}"/>","mymain");
</c:forEach>
tObj.m_end();
tObj.end();
tObj.print();
</script>
</td>
</tr>
</c:if>
</c:forEach>
</table>
?tld的声明可以在web.xml作显式声明也可以用http作直接URL声明
推荐用本地的方式.
]]>
]]>
保存为Excel:
var s = "<center>" + HeadName + "</center>" + "\r\n";
s += DivName.innerHTML;
var xlsWindow = window.open("", "_blank", "width=1,height=1,scrollbars=no,toolbar=no");
xlsWindow.document.write(s);
xlsWindow.document.close();
xlsWindow.document.execCommand('Saveas', true, '%homeDrive%\\Data.xls')
xlsWindow.close();
}
打印当前面:
var oldBody=document.body.innerHTML;
var Div1=DivName.innerHTML;
var css = '<style type="text/css" media=all>' +
'p { line-height: 120%}' +
'.fhead { font-size: 9pt; text-decoration: none; color: 104A7B}' +
'.ftitle { line-height: 120%; font-size: 18px; color: #000000}' +
'td { font-size: 10px; color: #000000}' +
'</style>' ;
var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' +
' <tr> ' +
' <td class="fbody">' +
' <b><div align="center">'+'<font size="+1" class=fhead>'+ HeadName1 + '</div>'+'</font></b>'+
' <b><div align="center">'+'<font size="+1" class=fhead>'+ HeadName2 + ' ' + HeadName3 +'</div></font></b>'+
' </td>' +
' </tr>' +
' <tr> ' +
' <td class="fbody">' +
' <div align="center" class=ftitle>' + Div1 + '</div>'+
' <b><div align="right">'+'<font size="+1" class=fhead>'+ ' </div>'+'</font></b>'+
' <b><div align="right">'+'<font size="+1" class=fhead>'+ TailName1 + '</div>'+'</font></b>'+
' </td>' +
' </tr>' +
'</table>';
document.body.innerHTML = '<center>' + css + body +'<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>'+'</center>';
wb.execwb(6,6);
document.body.innerHTML=oldBody;
}
]]>
key words:单点登陆 SSO 跨域cookie
摘要Q?b>当你有一个Cookiel(或叫Cookie字典Q用Domain属性指定域名之后,当你在对该组的成员进行修Ҏ新增的时候,一定要在操
作之后加上Resonse.Cookies(CookieName).Domain属性。如果没有必要,请不要修改已讄Domain的Cookiel?
关键字:
正文Q?br /> Cookie跨域操作看来是个单的问题,因ؓ只要指定Domain属性ؓ指定|站的根域名可以了.但是W者在实际使用q程中却遇到了一些问题,的确值得注意.
Response.Cookies(CookieName)("UserName") = "SunBird"
Response.Cookies(CookieName)("Password") = "xyz1234"
Response.Cookies(CookieName).Domain = "xxxx.com"
%>
Response.Write Request.Cookies(CookieName)("UserName")
Response.Write Request.Cookies(CookieName)("Password")
%>
Response.Cookies(CookieName)("UserName") = ""
Response.Cookies(CookieName)("Password") = ""
Response.Cookies(CookieName).Domain = "xxxx.com"
%>
Response.Cookies(CookieName)("TEST_COOKIE") = "TEST_COOKIE"
%>
Struts是一U支持国际化的MVC的Web
Framework。可是如何来使用struts国际化是一个问题。下面我们来探讨一下,如何实现Struts的国际化。WebE式的国际化涉及?个层面的东西。第一、jsp部分的输?输出Q第二、应用处理程序的国际化;W三、DB的国际化问题。这里主要探讨的是jsp部分的输?输出问题?/p>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value> <!-- 默认资源文g名?/span>-->
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
ApplicationResources.properties
:
默认资源文g。当在其他资源文仉面找不到某个资源的时候,׃用该资源文g里面的定义?br />ApplicationResources_zh_CN.propertiesQ简体中文资源文件?br />ApplicationResources_zh_TW.propertiesQ繁体中文资源文件?/font>
资源文g的格式ؓQ默认资源文件名_国别_语言.properties。其中每个文仉是通过%JAVA_HONE%/BIN/native2ascii.exe工具转换而来。你也可以用其他工h处理得到(http://java.sun.com/products/jilkit/
有一个工具Internationalization Java Internationalization and Localization Toolkit
可以处理)。下面是一个例?我们昄如何使用%JAVA_HONE%/BIN/native2ascii.exe命o来定义资源束文g?br />2.1
准备文g
//ApplicationResources.properties
Q默认资源文Ӟ通常里面的内Ҏ英文的?br />label.username=USERNAME :
label.password=PASSWORD
:
label.username=用户?
:
label.password=密??:
label.password=ノめ?W :
native2ascii -encoding big5 Applica
tionResources_zh_TW.bak ApplicationResources_zh_TW.properties
<tr>
<td align="right"><bean:message
key="label.username" /></td>
</tr>
<tr>
<td align="right"><bean:message key="label.password"
/></td>
</tr>
</table>
口?令:
用户名:
3.1
定义Filter。下面是一个例子?br />package com.webapps.commons;
import javax.servlet.*;
private
FilterConfig config = null;
private String defaultEncode = "UTF-8";
this.config = config;
if(config.getInitParameter("Charset")!=null){
defaultEncode=config.getInitParameter("Charset");
}
}
this.config = null;
}
FilterChain chain) throws IOException,
ServletException {
ServletRequest srequest=request;
srequest.setCharacterEncoding(defaultEncode);
chain.doFilter(srequest,response);
}
}
<filter>
<filter-name>Character
Encoding</filter-name>
<filter-class>com.webapps.commons.CharsetEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
return this.replace(/(^\s*)|(\s*$)/g, "");
}
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匚wIP地址的正则表辑ּ
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
ip=ip.split(".")
alert("IP值是Q?+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
"^\\d+$" //非负整数Q正整数 + 0Q?br />"^[0-9]*[1-9][0-9]*$" //正整?
"^((-\\d+)|(0+))$" //非正整数Q负整数 + 0Q?
"^-[0-9]*[1-9][0-9]*$" //负整?
"^-?\\d+$" //整数
"^\\d+(\\.\\d+)?$" //非负点敎ͼ正QҎ + 0Q?
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正QҎ
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$" //非正点敎ͼ负QҎ + 0Q?
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负QҎ
"^(-?\\d+)(\\.\\d+)?$" //点?
"^[A-Za-z]+$" //?6个英文字母组成的字符?
"^[A-Z]+$" //?6个英文字母的大写l成的字W串
"^[a-z]+$" //?6个英文字母的写l成的字W串
"^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符?
"^\\w+$" //由数字?6个英文字母或者下划线l成的字W串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$" //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$" //url
"^[A-Za-z0-9_]*$"
]]>
]]>
]]>
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.close();
}
function window.onbeforeunload(){
if(!hasClosed){
window.opener.location="javascript:reloadPage();";
}
}
</script>
上面的代码在关闭BH口的时候会提示错误Q说~少Object,正确的代码如下:
hasClosed = true;
window.opener.location="javascript:reloadPage();";
window.opener=null;
window.close();
}
function window.onbeforeunload(){
if(!hasClosed){//如果已经执行了closeWinҎQ则不执行本Ҏ
window.opener.location="javascript:reloadPage();";
}
}
</script>
reloadPageҎ如下:
history.go(0);
document.execCommand("refresh")
document.location = document.location;
document.location.reload();
}
PS:׃需要支持正常关闭和强制关闭H口时能捕捉CӞ用了全局变量hasClosed
==============================================
补充Q在父窗口是frame的时候在h父窗口的时候会出现问题:.
后修改如?
不需要执行自带的reload()Ҏ,注意Q不要再画蛇添加上q一?window.opener.parent.document.frames.item('mainFrame').location.reload();========================================================================================最后,Z同时支持h普通父H口和frame父窗口,代码如下:
hasClosed = true;
<%if(null != frame){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}else{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
//window.opener.top.mainFrame.location="javascript:reloadPage();";
//self.opener.frames.mainFrame.location.reload(true);
window.opener = null;
window.close();
}
function window.onbeforeunload(){
if (!hasClosed) {
<%if(null != frame){%>
window.opener.parent.document.frames.item('mainFrame').location.href = window.opener.location.href;
<%}else{%>
window.opener.location = "javascript:reloadPage();";
<%}%>
window.opener = null;
}
}
]]>
function getSelect(selectName){
var options = $(selectName).getElementsByTagName('option');
options = $A(options);
var opt = options.find( function(employee){
return (employee.value == $F(selectName));
});
alert(opt.innerHTML);
}
</script>
<select name="hi" onchange="getSelect('hi');">
<option value="01">一</option>
<option value="02">?/span></option>
<option value="03">?/span></option>
<option value="04">?/span></option>
</select>
PS: $A : 转换成数l格?br /> opt.innerHTML:nodeText
]]>
window.opener.show(b)
都不?正确的做法是:
PS: 直接调用父窗口的对象与此不同Q参考这? 用javaScript操作两个面
]]>
在jsp中获取radio的值很ҎQ直?request.getParameter("myRadio");
但是在js中不行,我试验了一下,如果选择W一个没问题Q但是你选第二个W三个的话就出现undefined.办法如下:
{
var selectedIndex = -1;
var form1 = document.getElementById("form1");
var i = 0;
for (i=0; i<form1.r.length; i++)
{
if (form1.r[i].checked)
{
selectedIndex = i;
alert("您选择的 value 是:" + form1.r[i].value);
break;
}
}
if (selectedIndex < 0)
{
alert("您没有选择M?/span>");
}
}
]]>
<%=rem[7]==null?"":rem[7]%>
</textarea>
猜猜q个textarea会有什么问?
效果如下:
是不是很奇怪,哪来的空格啊Q还以ؓ从数据库中取出的数据有空|查也不是Q后来才知道Q原来是textarea换行惹得?不换行就OK?br />
]]>
有时在用户session理Ӟ需要跟t会话状态,比如当前在线用户Q如果用户非正常退出,需要知道?br />
用js控制览器的关闭是一个辅助的手段Q当然也可以讄session的有效期Q不q不够及时?br />
js代码如下:
<script language="javascript">
<!--
var s="close";
function window.onunload(){
if(s=="fresh")
if(window.screenLeft>10000){alert('¹ØuÕ');}
else{alert('ËÐÂ');}
else alert('¹ØuÕ');
}
function window.onbeforeunload()
{
s="fresh";
}
-->
</script>
</html>
]]>
很多时候用session觉得挺方便的Q今天突然发现自q然几乎没用过cookieQ呵呵,有点意思。正好碰C个登陆页面,需要用户选择站点cdQ觉得每ơ都让用户选择有点不合理,毕竟一个用户常用的׃个,所以决定用cookie记录下这个站点,下次登陆的时候可以直接显C?
效果如下:
* 从cookie里读取指定Name 对应的?br /> * 如果没有q回I null
* @param cookieName
* @param request
* @param decode :~码
* @return String
*/
public static String getCookieValue(String cookieName, HttpServletRequest request,String decode) {
if(null == cookieName || cookieName.trim().length() ==0) return "";
Cookie cookies[] = request.getCookies();
Cookie sCookie = null;
String sname = null;
String svalue = null;
if (null != cookies && cookies.length > 0) {
for (int i = 0; i < cookies.length; i++) {
sCookie = cookies[i];
sname = sCookie.getName();
if (cookieName.equals(sname)) {
try {
svalue = java.net.URLDecoder.decode(sCookie.getValue(),decode);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
break;
}
}
}
return svalue ;
}
/**
* 讄cookie
* @param cookieName
* @param cookieValue
* @param maxAge
* @param response
* @paramencode :~码
*/
public static void setCookieValue(String cookieName,String cookieValue,
int maxAge,HttpServletResponse response,String encode) {
if(null == cookieName || cookieName.trim().length() ==0) return ;
Cookie cookie = null;
try {
cookie = new Cookie(cookieName, java.net.URLEncoder.encode(cookieValue,encode));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
cookie.setMaxAge(maxAge);
response.addCookie(cookie);
}
]]>
Prototype.js--Javascript~写者的军刀
]]>
最q用Ccss的东西,发现用css是可以省不少ȝQ特别更Ҏ果?br />
google了一 利用CSS控制表格的交曉K?/span>
下面是实现的代码:
<!--
tr {background-color:expression((this.sectionRowIndex==0)?"":
(this.sectionRowIndex%2==0)?"red":"blue")}
-->
</style>
</HEAD>
<table>
<tr>
<td>W??/span></td><td>W??/span></td>
</tr>
<tr>
<td>W??/span></td><td>W??/span></td>
</tr>
<tr>
<td>W??/span></td><td>W??/span></td>
</tr>
<tr>
<td>W??/span></td><td>W??/span></td>
</tr>
<tr>
<td>W??/span></td><td>W??/span></td>
</tr>
</table>
关键是q一?
(this.sectionRowIndex%2==0)?"red":"blue")}
对于td的控制如?
<!--
tr {background-color:expression((this.sectionRowIndex%2==0)?"red":"blue")}
td {background-color:expression((this.cellIndex%2==0)?"":((this.parentElement.sectionRowIndex%2==0)?"green":"yellow"))}
-->
</style>
</HEAD>
<table>
<tr><td>W??/span></td><td>W??/span></td><td>W??/span>< /td><td>W??/span></td><td>W??/span></td></tr>
<tr><td>W??/span></td><td>W??/span></td><td>W??/span>< /td><td>W??/span></td><td>W??/span></td></tr>
<tr><td>W??/span></td><td>W??/span></td><td>W??/span>< /td><td>W??/span></td><td>W??/span></td></tr>
<tr><td>W??/span></td><td>W??/span></td><td>W??/span>< /td><td>W??/span></td><td>W??/span></td></tr>
<tr><td>W??/span></td><td>W??/span></td><td>W??/span>< /td><td>W??/span></td><td>W??/span></td></tr>
</table>
?span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 255);">cellIndex
?和数l一PW一行从0开?br />
但愿对你有用. :)
]]>
文g上传参看: q里
到文gqQgoogle了一下,发现q篇文章q不?br />
摘录如下:
之前,写过一个Download.jsp文g,可以解决下蝲文gq问题(诸如:DOC,XSL文g{等).
后来发现,遇到中文名的文g的时?文g下蝲会报错~~~~
今天,通过改写原Download.jsp文g已经d解决了这个问题~
现在,把一整套的文件上传下载的Ҏl脓出来~~~以便大家借鉴!~!~!~!~!
作?古埃及法?br />
download.jsp文g
---------------------------------------------------------
java.io.BufferedInputStream bis=null;
java.io.BufferedOutputStream bos=null;
try{
String filename=request.getParameter("filename");
filename=new String(filename.getBytes("iso8859-1"),"gb2312");
response.setContentType("application/x-msdownload");
response.setHeader("Content-disposition","attachment; filename="+new String(filename.getBytes("gb2312"),"iso8859-1"));
bis =new java.io.BufferedInputStream(new java.io.FileInputStream(config.getServletContext().getRealPath("files/" + filename)));
bos=new java.io.BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff,0,bytesRead);
}
}
catch(Exception e){
e.printStackTrace();
}
finally {
if (bis != null)bis.close();
if (bos != null)bos.close();
}
%>
注意Q关键就?span style="background-color: rgb(245, 245, 245); color: rgb(0, 0, 0);">setHeader里的filename需要重新编?格式是ISO-8859-1OQ了
以下是我自己目中用到的代码片断Q供参?
list.jsp: 昄附g名称的页?br />
<td height="25" class="tdcor">?/span> ?/span> </td>
<td colspan="3" height=50>
<%
if (null != publish.getAttatchFilename() &&
publish.getAttatchFilename().length() > 0) {
%>
<a href="publish_do.jsp?method=download&fileName=
<%=URLEncoder.encode(publish.getAttatchFilename(),"GBK")%>">
<%=URLDecoder.decode(publish.getAttatchFilename(),"GBK")%></a>
<%
}
%>
</td>
</tr>
download.jsp:下蝲面
String fileName = request.getParameter("fileName");
File file = new File(Constants.PUBLISH_FILE_PATH + "/" + URLDecoder.decode(fileName,"GBK"));
response.reset();
response.setContentType("application/octet-stream; charset=GBK");
response.addHeader("Content-Disposition", "attachment; filename=" + CourseDetailBusiness.transfer(URLDecoder.decode(fileName,"GBK"),"GBK","ISO-8859-1"));
response.setContentLength((int) file.length());
byte[] buffer = new byte[4096];
BufferedOutputStream output = null;
BufferedInputStream input = null;
// 写缓冲区Q?/span>
try {
output = new BufferedOutputStream(response.getOutputStream());
input = new BufferedInputStream(new FileInputStream(file));
int n = (-1);
while ((n = input.read(buffer, 0, 4096)) > -1) {
output.write(buffer, 0, n);
}
response.flushBuffer();
}
catch (Exception e) {
} // maybe user cancelled download
finally {
if (input != null) input.close();
if (output != null) output.close();
}
说明:
Q。文件名在数据库中保存的~码为URLEncode
2.在list.jsp昄的时候多了一ơencode,不知Z么,不encode一ơ还不行Q实际上是第二次~码?br />
]]>
]]>
在了解XHTML代码规范后,我们pq行CSS布局。首先先介绍一些CSS的入门知识。如果你已经很熟悉了Q可以蟩q这一节,直接q入下一节?/p>
CSS是Cascading Style Sheets(层叠样式?的羃写。是一U对web文d样式的简单机Ӟ属于表现层的布局语言?/p>
分析一个典型CSS的语句:
颜色值可以用RGB值写Q例如:color : rgb(255,0,0)Q也可以用十六进制写Q就象上面例?span class="code">color:#FF0000。如果十六进制值是成对重复的可以简写,效果一栗例?#FF0000可以写成#F00。但如果不重复就不可以简写,例如#FC1A1B必须写满六位?/p>
web标准推荐如下字体定义ҎQ?/p>
当几个元素样式属性一hQ可以共同调用一个声明,元素之间用逗号分隔Q:
可以使用z选择器给一个元素里的子元素定义样式Q例如这P
是lli下面的子元素strong定义一个斜体不加粗的样式?/p>
用CSS布局主要用层"div"来实玎ͼ而div的样式通过"id选择?来定义。例如我们首先定义一个层
<div id="menubar"></div>然后在样式表里这样定义:
其中"menubar"是你自己定义的id名称。注意在前面?#"受?/p>
id选择器也同样支持zQ例如:
q个Ҏ主要用来定义层和那些比较复杂Q有多个z的元素?/p>
在CSS里用一个点开头表C类别选择器定义,例如Q?/p>
在页面中Q用class="cd?的方法调用:
<span class="14px">14px大小的字?lt;/span>q个Ҏ比较单灵z,可以随时Ҏ面需要新建和删除?/p>
CSS中用四个伪类来定义链接的样式Q分别是Qa:link、a:visited、a:hover和a : activeQ例如:
以上语句分别定义?链接、已讉Kq的链接、鼠标停在上Ҏ、点下鼠标时"的样式。注意,必须按以上顺序写Q否则显C可能和你预想的不一栗记住它们的序是“LVHA”?/p>
呵呵Q看了这么多Q有点头晕吧Q实际上CSS的语法规范还有很多,q里列的只是一些常用的Q毕竟我们是循序渐进Q不可能一口吃成胖?)