javax网址是什么?URL中的冒号是什么意思
大家好,javax网址是什么相信很多的网友都不是很明白,包括URL中的冒号是什么意思也是一样,不过没有关系,接下来就来为大家分享关于javax网址是什么和URL中的冒号是什么意思的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
java程序分析
(1)程序要求在文本框text中输入的内容是什么?
输入网络文本文件的地址,例如:file:///C:/1.txt,指的是本地机器上c盘上的1.txt文件。
(2)辅助文本区showArea组件的作用是什么?
作用是将你指定的网络文本文件的内容显示到showArea组件中。
(3)如何使程序开始下载网络文本文件?
首先运行该程序,然后输入网络文本文件地址,点击“下载”按钮。
(4)程序采用什么输入方式下载网络文件?
采用网络流的方式下载网络文件。
URL中的冒号是什么意思
URL重写,其实就是把带一大堆参数的url,变成一个看上去很规矩的url,主要目的是为了搜索引擎。
举例
/viewthread.jsp?id=1234
/viewthread.jsp?id=1235
/viewthread.jsp?id=1236
重写后,可以用
/viewthread/1234.htm
/viewthread/1235.htm
/viewthread/1236.htm
我目前使用Tomcat+Apache,尝试过三种重写的方法
一、Tomcat的过滤器
最典型的就是用urlReweite的类库。如果有经验,自己写也不是很麻烦。也可以用现成的开源的免费的urlrewrite filter. http://tuckey.org/urlrewrite/下载
修改web.xml增加过滤器,然后配置个过滤的规则就可以了
web.xml修改部分
<!-- Set URL Rewrite-->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
过滤规则
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC"-//tuckey.org//DTD UrlRewrite 2.6//EN"
"http://tuckey.org/res/dtds/urlrewrite2.6.dtd">
<urlrewrite>
<rule>
<from>/viewthread/(\d+).htm$</from>
<to>/viewthread.jsp?id=$1</to>
</rule>
</urlrewrite>
二、使用Apache的mod
#去掉这个前面的#,启用它
LoadModule rewrite_module modules/mod_rewrite.so
<VirtualHost _default_:80>
#其它的配置数据
RewriteEngine On
#下面三行实现动态解析
RewriteRule ^/viewthread/(\d+).htm$/viewthread.jsp?id=$1 [L,PT]
</VirtualHost>
三、使用系统的404错误进行
也就是页面没找到的错误
实例:
http://www.xxx.net/f29
会被自动转发到
http://www.xxx.net/forumdisplay.jsp?fid=29
因为系统并不存在f29,所以使用了404的错误处理页面来实现这个功能
页面代码如下
查看复制到剪切板打印
<%@ page language="java" contentType="text/html; charset=GBK" isErrorPage="true" pageEncoding="GBK"%>
<%
response.setStatus(HttpServletResponse.SC_OK);
String key=(String) request.getAttribute("javax.servlet.forward.servlet_path");
if(key!= null){
int index= key.lastIndexOf("/");
if(index!=-1){
key= key.substring(index+ 1);
if(key.startsWith("f")|| key.startsWith("p")){
try{
long id= Long.parseLong(key.substring(1));
String url= key.startsWith("f")?"forumdisplay.jsp?fid=":"viewthread.jsp?tid=";
%>
<jsp:forward page="<%=url+id%>"></jsp:forward>
<%
return;
} catch(Exception ex){}
}
%>
<jsp:forward page="<%=response.encodeURL("search.jsp")%>"><jsp:param name="keyword" value="<%=key%>"/></jsp:forward>
<%
return;
}
}
%>
对不起,您请求的页面没有找到!
第一种修改麻烦,但对于平稳运行的系统,是个不错的选择
第二种需要配置Apache,但 Apache的重启速度很快,适合于有可能经常变得情况,而且Apache Mod的效率还是不错的
第三种最灵活,一般简单的应用可以用这个。
有什么好的java加密解密方法,求共享
下面是我的一个工具类,你看下:
packagecom.sojson.common.utils;
importjava.security.MessageDigest;
importjava.security.NoSuchAlgorithmException;
importjava.security.SecureRandom;
importjavax.crypto.Cipher;
importjavax.crypto.KeyGenerator;
importjavax.crypto.SecretKey;
importjavax.crypto.SecretKeyFactory;
importjavax.crypto.spec.DESKeySpec;
/**
*
*开发公司:SOJSON在线工具<p>
*版权所有:©www.sojson.com
*博客地址:http://www.sojson.com/blog/
*<p>
*
*注释写这里
*
*<p>
*
*区分责任人日期说明<br/>
*创建周柏成2017年3月13日<br/>
*
*@authorzhou-baicheng
*@emailso@sojson.com
*@version1.0,2015年1月18日<br/>
*
*/
publicclassEncrypt{
publicstaticfinalStringgetMD5(Stringtext){
//returntext;
byte[]intext=text.getBytes();
MessageDigestmd5=null;
try{
md5=MessageDigest.getInstance("MD5");
}catch(NoSuchAlgorithmExceptione){
thrownewRuntimeException(e);
}
byte[]md5rslt=md5.digest(intext);
StringBufferverifyMsg=newStringBuffer();
for(inti=0;i<md5rslt.length;i++){
inthexChar=0xFF&md5rslt[i];
StringhexString=Integer.toHexString(hexChar);
hexString=(hexString.length()==1)?"0"+hexString:hexString;
verifyMsg.append(hexString);
}
returnverifyMsg.toString().toLowerCase();
}
publicstaticbyte[]key={-42,1,25,25,-57,84,67,32};
staticbyte[]encrypt(byte[]data,byte[]b)throwsException{
DESKeySpecdks=newDESKeySpec(b);
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
SecretKeykey=keyFactory.generateSecret(dks);
SecureRandomsr=newSecureRandom();
Ciphercipher=Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE,key,sr);
byte[]encryptedData=cipher.doFinal(data);
returnencryptedData;
}
staticbyte[]decrypt(byte[]data,byte[]b)throwsException{
DESKeySpecdks=newDESKeySpec(b);
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
SecretKeykey=keyFactory.generateSecret(dks);
SecureRandomsr=newSecureRandom();
Ciphercipher=Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE,key,sr);
byte[]decryptedData=cipher.doFinal(data);
returndecryptedData;
}
staticbyte[]getKey()throwsException{
SecureRandomsr=newSecureRandom();
KeyGeneratorkg=KeyGenerator.getInstance("DES");
kg.init(sr);
SecretKeykey=kg.generateKey();
byte[]b=key.getEncoded();
returnb;
}
publicstaticStringshortUrl(Stringurl,intrandom){
//可以自定义生成MD5加密字符传前的混合KEY
Stringkey="gohome";
//要使用生成URL的字符
String[]chars=newString[]{"a","b","c","d","e","f","g","h",
"i","j","k","l","m","n","o","p","q","r","s","t",
"u","v","w","x","y","z","0","1","2","3","4","5",
"6","7","8","9","A","B","C","D","E","F","G","H",
"I","J","K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z"};
//对传入网址进行MD5加密
StringsMD5EncryptResult=getMD5(key+url);
Stringhex=sMD5EncryptResult;
String[]resUrl=newString[4];
for(inti=0;i<4;i++){
//把加密字符按照8位一组16进制与0x3FFFFFFF进行位与运算
StringsTempSubString=hex.substring(i*8,i*8+8);
//这里需要使用long型来转换,因为Inteper.parseInt()只能处理31位,首位为符号位,如果不用
//long,则会越界
longlHexLong=0x3FFFFFFF&Long.parseLong(sTempSubString,16);
StringoutChars="";
for(intj=0;j<6;j++){
//把得到的值与0x0000003D进行位与运算,取得字符数组chars索引
longindex=0x0000003D&lHexLong;
//把取得的字符相加
outChars+=chars[(int)index];
//每次循环按位右移5位
lHexLong=lHexLong>>5;
}
//把字符串存入对应索引的输出数组
resUrl[i]=outChars;
}
returnresUrl[random];
}
//6位短连接
publicstaticStringshortUrl(Stringurl){
//可以自定义生成MD5加密字符传前的混合KEY
Stringkey=String.valueOf(System.currentTimeMillis());
//要使用生成URL的字符
String[]chars=newString[]{"a","b","c","d","e","f","g","h",
"i","j","k","l","m","n","o","p","q","r","s","t",
"u","v","w","x","y","z","0","1","2","3","4","5",
"6","7","8","9","A","B","C","D","E","F","G","H",
"I","J","K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z"
};
//对传入网址进行MD5加密
StringsMD5EncryptResult=getMD5(key+url);
Stringhex=sMD5EncryptResult;
StringresUrl="";
//把加密字符按照8位一组16进制与0x3FFFFFFF进行位与运算
StringsTempSubString=hex.substring(0*8,0*8+8);
//这里需要使用long型来转换,因为Inteper.parseInt()只能处理31位,首位为符号位,如果不用
//long,则会越界
longlHexLong=0x3FFFFFFF&Long.parseLong(sTempSubString,16);
StringoutChars="";
for(intj=0;j<6;j++){
//把得到的值与0x0000003D进行位与运算,取得字符数组chars索引
longindex=0x0000003D&lHexLong;
//把取得的字符相加
outChars+=chars[(int)index];
//每次循环按位右移5位
lHexLong=lHexLong>>5;
}
//把字符串存入对应索引的输出数组
resUrl=outChars;
returnresUrl;
}
/**
*方法描述:md5签名
*
*@paramsrc
*@return
*@throwsException
*/
publicstaticStringmd5Digest(Stringsrc)throwsException{
MessageDigestmd=MessageDigest.getInstance("MD5");
byte[]b=md.digest(src.getBytes("UTF-8"));
returnbyte2HexStr(b);
}
/**
*字节数组转化为大写16进制字符串
*
*@paramb
*@return
*/
publicstaticStringbyte2HexStr(byte[]b){
StringBuildersb=newStringBuilder();
for(inti=0;i<b.length;i++){
Strings=Integer.toHexString(b[i]&0xFF);
if(s.length()==1){
sb.append("0");
}
sb.append(s.toUpperCase());
}
returnsb.toString();
}
}
OK,关于javax网址是什么和URL中的冒号是什么意思的内容到此结束了,希望对大家有所帮助。