其实就是把昨天的这个程序放到一个WEB应用程序了,大体的程序没有什么变化,只有少许改动。创建一个FencePassword类,这个类有两个属性,一个是oldMessage表示加密前的信息,一个是newMessage表示加密后的信息。在password.jsp页面输入你要加密的信息,然后就在同一个页面得到加密后的信息。其中,FencePassword类的encrypt方法来加密,clearAll方法来清除页面上的所有信息。
用JSF做的,需要一些必要的包,放在WEB-INF/lib下。基本配置可以参照相关的JSF文章。
首先是web.xml:<?xmlversion ="1.0"encoding="UTF-8"?>
Faces Servletjavax.faces.webapp.FacesServlet1Faces Servlet*.facesMyJSFindex.jsp
然后是FencePassword类:packagesrc;publicclassFencePassword {
StringoldMessage;
StringnewMessage;publicString encrypt() {intl = 0;
StringBuffer str1 =newStringBuffer();
StringBuffer str2 =newStringBuffer();
StringBuffer str =newStringBuffer();
String temp;
StringBuffer sb =newStringBuffer();
String[] s =oldMessage.split(" ");for(inta = 0; a < s.length; a++) {
sb.append(s[a]);
}
temp = sb.toString();char[] c = temp.toCharArray();
l = temp.length();for(inti = 0; i < l;) {
str1.append(c[i++]);if(i == l && l % 2 != 0)break;elsestr2.append(c[i++]);
}
str.append(str1);
str.append(str2);newMessage= str.toString();return"result";
}publicvoidclearAll() {oldMessage="";newMessage="";
}publicString getNewMessage() {returnnewMessage;
}publicvoidsetNewMessage(String newMessage) {this.newMessage= newMessage;
}publicString getOldMessage() {returnoldMessage;
}publicvoidsetOldMessage(String oldMessage) {this.oldMessage= oldMessage;
}
}
接着是password.jsp页面:
-//W3C//DTD HTML 4.01 Transitional//EN">
Get Fence PasswordInput your message:
Encrypted message:
最后就是JSF的配置文件faces-config.xml:<?xmlversion ="1.0"encoding="UTF-8"?>
-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN""http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
result/password.jspfencesrc.FencePasswordsession
在FencePassword类中,加密完成后通过返回result找到password.jsp(其实就是同一个页面)。bean的名字取为fence。首先在输入框中输入信息,点击Encrypt后得到加密的信息,点击Clear后清除所有信息。