lycong

2008年6月16日 #

使用SAX对XML根据具体需求过滤标签和长度截取

     摘要:        需要解决的问题是 根据一输入流读取一段XML内容,然后对其进行过滤截取,最后写回输出流中。具体说明如下: 1.对XML根据特定需求,过滤标签(如SCRIPT,FRAME等非标准HTML标签),过滤属性(如onclick,onblur等) 2.对XML进行长度截取,具体做法如下: (1)对start标签的处理: 若加上s...  阅读全文

posted @ 2008-09-01 21:26 cong 阅读(915) | 评论 (0)编辑 收藏

解决JSTL标签 循环 中途 break

如果直接使用<c:forEach> 直接在中间的代码中 插入break , 并不能退出循环。可以采用以下策略进行代换:
1. 用 <c:set var="collections" value="${forEach中的items}"/>
2. 用 jspContext.getAttribute("collections"); 获得对应的集合
3.最后就用最原始的for()。

posted @ 2008-07-14 14:19 cong 阅读(1808) | 评论 (1)编辑 收藏

将来2个月的学习计划

1.重温《Thinking in Java》的IO、容器、并发部分,泛型编程:大约用2周时间
2.重温《Core Java》的SWING ,大约用1周。
3.由于公司近期准备开发一套IM系统,要重点学习一下有关网络编程,特别是TCP/IP知识,socket编程:2周时间
5.学习《Ajax in Action》中Ajax高级应用部分。 1.5周
4.学习《Code Complete》有关测试部分,要学会编写测试用例:1.5周时间

posted @ 2008-07-10 20:33 cong 阅读(173) | 评论 (0)编辑 收藏

经常碰到的模块:修改密码 一 安全小技巧(服务器后台不返回密码)

        问题如下:当修改密码时,为了防止通过查看html源文件或其他方法看到用户的原始密码,一般服务器不会返回用户密码,可以利用javascript的技巧 ,在页面显示一虚假密码,然后判断密码是否修改过,如果真有修改过密码,才把密码送到后台服务器,否则不发送密码到后台服务器。
1. 页面显示代码:
<%--构造一个虚假的密码显示框--%>
                     
<fmt:message key="falsity_password_defaultValue" var="falsity_password_defaultValue" />
                     
<input id="falsity_password" type="password" name="falsity_password"
                             
default="${falsity_password_defaultValue}"
                             value
="${fn:escapeXml(param.falsity_password != null ? param.falsity_password : falsity_password_defaultValue)}" autocomplete="off">
                     
<input id="true_password" type="hidden" name="password"/>
其中 falsity_password_defaultValue 为服务器端事先设置好的虚假密码(可以在资源文件中设置), falsity_password 为页面显示的虚假密码,true_password 是当密码修改后,才发送到服务器, 下面就会对上面2个变量值作一些处理判断。

2. 对是否修改过密码进行处理。
A.当focus到密码框时,密码框清空, 到没有修改过密码就离开密码框时,就还原为虚假密码显示.
B.当修改过密码后,就会把true_password的值设置为修改后的值。
 <script type="text/javascript"><!--
  
function getTruePassword(){
    
<c:if test="${param.edit == 'modify'}">
      
var falsity_password = document.getElementById("falsity_password");
      
var true_password = document.getElementById("true_password");
           
if(falsity_password && true_password){
      
var defaultValue=falsity_password.getAttribute("default");

          
if(falsity_password.value != defaultValue) {
               true_password.value 
= falsity_password.value;
          }

      }

    
</c:if>
  }

  
<c:if test="${param.edit == 'modify'}">
  
var falsity_passwordNode = document.getElementById("falsity_password");
  
if(falsity_passwordNode) {
      Object.extend(falsity_passwordNode, 
{
          onfocus : 
function() {
              
if (this.value == this.getAttribute("default")) {
                  
this.value = '';
              }

          }
,
          onblur : 
function() {
              
if (this.value == '') {
                  
this.value = this.getAttribute("default");
              }

          }

      }
)

  }

  
</c:if>
  
//--></script>

判断falsity_password密码是否为虚假密码,若不是,则把true_password设置为修改过的密码。


3.服务器端要判断是否修改过密码,若修改过才把密码传到后台进行修改,这里主要看true_password是否为" ",若不为" ",则说明密码修改过。
这里可以通过tag来进行处理
<c:if test="${!empty param.true_password}">
/* 把true_password 传到后台进行修改    */
</c:if>


posted @ 2008-07-06 20:14 cong 阅读(552) | 评论 (0)编辑 收藏

Fix 问题: 进入编辑页面,当点击其他地方时,判断页面是否修改过,并提示相关信息。

     摘要:         问题如下:例如要修改某个人的信息时,进入编辑页面,当点击其他地方时,判断信息是否已被修改过,并提示相关信息。         本例中以个人通讯录信息为背景, 解决方法如下: 1.首先要有个 Object保存 一开始时从服...  阅读全文

posted @ 2008-06-16 21:50 cong 阅读(610) | 评论 (0)编辑 收藏

My Links

Blog Stats

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜