redirect="true" path="/success.jsp"
在一个Action的execute中,可不可以在返回的ActionForward中设置url的参数,就是url中?以后的部分?
2、如果config文件中使用了redirect=true的话可以设置吗?
java.net.URLEncoder
java.net.URLDecoder
“%23%45%”,是UNICODE编码。
编码java.net.URLEncoder
解码java.net.URLDecoder
<%=URLEncoder.encoder(parameter)%>
*****************************************
**
*加密解密类
*
*
*
*/
package com.abacus.common ;
import java.security. *;
import javax.crypto. *;
/**
*加密解密类
*/
public class Eryptogram
{
private static String Algorithm ="DES";
//定义加密算法,可用DES,DESede,Blowfish
static boolean debug =false ;
/**
*构造子注解.
*/
public Eryptogram ()
{
}
/**
*生成密钥
*@returnbyte[]返回生成的密钥
*@throwsexception扔出异常.
*/
public static byte []getSecretKey ()throws Exception
{
KeyGenerator keygen =KeyGenerator.getInstance (Algorithm );
SecretKey deskey =keygen.generateKey ();
if (debug )System.out.println ("生成密钥:"+byte2hex (deskey.getEncoded ()));
return deskey.getEncoded ();
}
/**
*将指定的数据根据提供的密钥进行加密
*@paraminput需要加密的数据
*@paramkey密钥
*@returnbyte[]加密后的数据
*@throwsException
*/
public static byte []encryptData (byte []input ,byte []key )throws Exception
{
SecretKey deskey =new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
if (debug )
{
System.out.println ("加密前的二进串:"+byte2hex (input ));
System.out.println ("加密前的字符串:"+new String (input ));
}
Cipher c1 =Cipher.getInstance (Algorithm );
c1.init (Cipher.ENCRYPT_MODE ,deskey );
byte []cipherByte =c1.doFinal (input );
if (debug )System.out.println ("加密后的二进串:"+byte2hex (cipherByte ));
return cipherByte ;
}
/**
*将给定的已加密的数据通过指定的密钥进行解密
*@paraminput待解密的数据
*@paramkey密钥
*@returnbyte[]解密后的数据
*@throwsException
*/
public static byte []decryptData (byte []input ,byte []key )throws Exception
{
SecretKey deskey =new javax.crypto.spec.SecretKeySpec (key ,Algorithm );
if (debug )System.out.println ("解密前的信息:"+byte2hex (input ));
Cipher c1 =Cipher.getInstance (Algorithm );
c1.init (Cipher.DECRYPT_MODE ,deskey );
byte []clearByte =c1.doFinal (input );
if (debug )
{
System.out.println ("解密后的二进串:"+byte2hex (clearByte ));
System.out.println ("解密后的字符串:"+(new String (clearByte )));
}
return clearByte ;
}
/**
*字节码转换成16进制字符串
*@parambyte[]b输入要转换的字节码
*@returnString返回转换后的16进制字符串
*/
public static String byte2hex (byte []b )
{
String hs ="";
String stmp ="";
for (int n =0 ;n <b.length ;n ++)
{
stmp =(java.lang.Integer.toHexString (b [n ]&0XFF ));
if (stmp.length ()==1 )hs =hs +"0"+stmp ;
else hs =hs +stmp ;
if (n <b.length -1 )hs =hs +":";
}
return hs.toUpperCase ();
}
public static void main (String []args )
{
try
{
debug =false ;
Eryptogram etg =new Eryptogram ();
byte []key =etg.getSecretKey ();
System.out.println ("key="+key );
String aa ="1234567";
byte []data =aa.getBytes ();
System.out.println (data );
byte []en =etg.encryptData (data ,key );
System.out.println ("encryptData="+new String (en ));
byte []de =etg.decryptData (en ,key );
System.out.println ("decryptData="+new String (de ));
}
catch (Exception e )
{
e.printStackTrace ();
}
}
}