㈠ java提取網站內部所有URL
能獲取外部訪問url
內部是不能訪問的
㈡ java怎樣獲取url參數
String url = request.getScheme()+"://"; //請求協議 http 或 https
url+=request.getHeader("host"); // 請求伺服器
url+=request.getRequestURI(); // 工程名
if(request.getQueryString()!=null) //判斷請求參數是否為空
url+="?"+request.getQueryString(); // 參數
㈢ 本地運行javaweb項目,通過資料庫獲取url後,頁面地址不出現localhost:8080,直接顯示資料庫獲取的url.
請貼出相應頁面的代碼(就是請求user那部分的代碼)
根據你貼出的代碼,問題應該就出在你的a標簽里的${pageContext.request.contextPath}這里,你這里應該是沒有獲取到你的項目路徑。如果實在定位不到為什麼取不到項目路徑,你可以使用二樓的方式,自己設定path。
㈣ 用java做分頁時,如何獲取url
httpServletRequest.getRequestURI();
或者
string url = HttpContext.Current.Request.Url.ToString();
//獲取當前頁的URL
或者
設置參數 前台傳參:....&url=.... 後台接值: request.getParameter("url")
java 後台分頁 httpServletRequest.getRequestURI();
建議用AJAX,這樣可以不需要獲取 url
㈤ 用java獲取URL路徑時出現非法字元
經常會在瀏覽器的地址欄里看到這樣的字元串%E6%96%87%E6%A1%A3
這就是被編碼後的字元串,下面就討論一下java 的url編碼與解碼問題
java.net.URLDecoder.decode(String s,String enc);
將application/x-www-form-urlencoded字元串轉換成普通字元串。
java.net.URLEncoder.decode(String s,String enc);
將普通字元串轉換成application/x-www-form-urlencoded字元串
代碼示例:
import java.net.URLDecoder;
import java.net.URLEncoder;
public class URLDecoderTest {
public static void main(String[] args) throws Exception {
//將application/x-www-form-urlencoded字元串
//轉換成普通字元串
//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8
String keyWord = URLDecoder.decode("%E6%96%87%E6%A1%A3", "gb2312");
System.out.println(keyWord);
//將普通字元串轉換成
//application/x-www-form-urlencoded字元串
//必須強調的是編碼方式必須正確,如的是gb2312,而google的是UTF-8
String urlStr = URLEncoder.encode("文檔", "gb2312");
System.out.println(urlStr);
}
}
㈥ Java請求一個URL。獲取網站返回的數據。
publicstaticStringSendGET(Stringurl,Stringparam){
Stringresult="";//訪問返回結果
BufferedReaderread=null;//讀取訪問結果
try{
//創建url
URLrealurl=newURL(url+"?"+param);
//打開連接
URLConnectionconnection=realurl.openConnection();
//設置通用的請求屬性
connection.setRequestProperty("accept","*/*");
connection.setRequestProperty("connection","Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//建立連接
connection.connect();
//獲取所有響應頭欄位
Map<String,List<String>>map=connection.getHeaderFields();
//遍歷所有的響應頭欄位,獲取到cookies等
for(Stringkey:map.keySet()){
System.out.println(key+"--->"+map.get(key));
}
//定義BufferedReader輸入流來讀取URL的響應
read=newBufferedReader(newInputStreamReader(
connection.getInputStream(),"UTF-8"));
Stringline;//循環讀取
while((line=read.readLine())!=null){
result+=line;
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(read!=null){//關閉流
try{
read.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
returnresult;
}
㈦ java如何提取url里的域名
方法1:正則
(http://)或者(https://)開頭
往後面匹配三個點,
不會的話網路一波。
然後把最後的點去掉
就可以得到域名
方法2:
將URL字元串轉換為charArray
遍歷 對.(點)的次數進行記數
第三次當前返回下標
用SubString切割字元串獲取域名
㈧ java 獲取網頁源代碼---有效防止亂碼
前段時間做過這類功能,如何有效防止亂碼,我們必須先知道一個網頁的編碼方式,是utf-8,還是gbk。
1.HttpURLConnection.getContentType();直接讀取,效率高,但有很多時候讀不到。只是text/html就完事了,沒有charset.
2.使用第三方的HttpClient,執行效率較高。但讀取網頁頭header也只適用部分站,很多網站服務段不設置,結果就讀成了null.
3.最沒有效率的判斷方法就是使用inputStreamReader先把正頁的html源碼讀取出來,之後截取charset後面編碼。得到編碼之後重新再讀取一遍。但是效率很低。
做個總結:
/**
* 取得頁面編碼
*
* @param url
* @return
*/
public String getCharset(String url) throws Exception {
// log.info("進入讀頁面的關鍵詞:" + keyword);
String charset = "";
int c;
HttpURLConnection httpurlcon = null;
// log.info("url:"+url);
// log.info("charset:"+charset);
log.info("url:" + url);
URL httpurl = new URL(url);
// System.out.println(url+str);
httpurlcon = (HttpURLConnection) httpurl.openConnection();
// google需要身份
httpurlcon.setRequestProperty("User-agent", "Mozilla/4.0");
charset = httpurlcon.getContentType();
log.info("charset1:" + charset);
// 如果可以找到
if (charset.indexOf("charset=") != -1)
charset = charset.substring(charset.indexOf("charset=")
+ "charset=".length(), charset.length());
// 否則讀取response.Header頭
else {
charset = this.getContentCharset();
log.info("charset2:" + charset);
}
// 如果charset還是為空,那麼直接讀網頁來截取
if (charset == null) {
charset = this.readPageCharset(url);
log.info("charset31:" + charset);
}
return charset;
}