導航:首頁 > 編程語言 > java訪問html

java訪問html

發布時間:2022-12-21 01:01:57

A. java怎樣讀取html文件

java讀取html文件跟讀取普通文件一樣,都是使用輸入輸出流,但是java讀取html文件之後還需要解析,使用Jsoup對html進行解析。下面是一個java讀取帶表格的任意html文件,並把html文件轉換成excel的例子。

要求:要求能夠實現給出任意帶table表格的html文件,生成與表格相同內容的excel文件,附件可以作為測試文件,提供給定的roster.html文件,通過java代碼,實現生成與html頁面的table相同樣式的roster.xls文件。

首先看roster.html:

importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjxl.Workbook;
importjxl.write.Label;
importjxl.write.WritableCellFormat;
importjxl.write.WritableFont;
importjxl.write.WritableSheet;
importjxl.write.WritableWorkbook;
importjxl.write.WriteException;
importjxl.write.biff.RowsExceededException;
importorg.jsoup.Jsoup;
importorg.jsoup.nodes.Document;
importorg.jsoup.nodes.Element;
importorg.jsoup.select.Elements;
publicclassHTMLTOExcel{
publicstaticvoidmain(Stringargs[])throwsIOException{
///讀取classpath目錄下面的路徑
Stringpath=HTMLTOExcel.class.getResource("/").getPath();
path+="roster.html";
toExcel(path,"roster");
}
//得到Document並且設置編碼格式
publicstaticDocumentgetDoc(StringfileName)throwsIOException{
FilemyFile=newFile(fileName);
Documentdoc=Jsoup.parse(myFile,"GBK","");
returndoc;
}
///這個方法用於根據trs行數和sheet畫出整個表格
publicstaticvoidmergeColRow(Elementstrs,WritableSheetsheet)throwsRowsExceededException,WriteException{
int[][]rowhb=newint[300][50];
for(inti=0;i<trs.size();i++){
Elementtr=trs.get(i);
Elementstds=tr.getElementsByTag("td");

intrealColNum=0;
for(intj=0;j<tds.size();j++){
Elementtd=tds.get(j);
if(rowhb[i][realColNum]!=0){
realColNum=getRealColNum(rowhb,i,realColNum);
}
introwspan=1;
intcolspan=1;
if(td.attr("rowspan")!=""){
rowspan=Integer.parseInt(td.attr("rowspan"));
}
if(td.attr("colspan")!=""){
colspan=Integer.parseInt(td.attr("colspan"));
}
Stringtext=td.text();
drawMegerCell(rowspan,colspan,sheet,realColNum,i,text,rowhb);
realColNum=realColNum+colspan;
}

}
}
///這個方法用於根據樣式畫出單元格,並且根據rowpan和colspan合並單元格
publicstaticvoiddrawMegerCell(introwspan,intcolspan,WritableSheetsheet,intrealColNum,intrealRowNum,Stringtext,int[][]rowhb)throwsRowsExceededException,WriteException{
for(inti=0;i<rowspan;i++){
for(intj=0;j<colspan;j++){
if(i!=0||j!=0){
text="";
}
Labellabel=newLabel(realColNum+j,realRowNum+i,text);
WritableFontcountents=newWritableFont(WritableFont.TIMES,10);//設置單元格內容,字型大小12
WritableCellFormatcellf=newWritableCellFormat(countents);
cellf.setAlignment(jxl.format.Alignment.CENTRE);//把水平對齊方式指定為居中
cellf.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);//把垂直對齊方式指定為居
label.setCellFormat(cellf);
sheet.addCell(label);
rowhb[realRowNum+i][realColNum+j]=1;
}
}
sheet.mergeCells(realColNum,realRowNum,realColNum+colspan-1,realRowNum+rowspan-1);
}
publicstaticintgetRealColNum(int[][]rowhb,inti,intrealColNum){
while(rowhb[i][realColNum]!=0){
realColNum++;
}
returnrealColNum;
}
///根據colgroups設置表格的列寬
publicstaticvoidsetColWidth(Elementscolgroups,WritableSheetsheet){
if(colgroups.size()>0){
Elementcolgroup=colgroups.get(0);
Elementscols=colgroup.getElementsByTag("col");
for(inti=0;i<cols.size();i++){
Elementcol=cols.get(i);
Stringstrwd=col.attr("width");
if(col.attr("width")!=""){
intwd=Integer.parseInt(strwd);
sheet.setColumnView(i,wd/8);
}

}

}
}
//toExcel是根據html文件地址生成對應的xls
publicstaticvoidtoExcel(StringfileName,StringexcelName)throwsIOException{
Documentdoc=getDoc(fileName);
Stringtitle=doc.title();
///得到樣式,以後可以根據正則表達式解析css,暫且沒有找到cssparse
Elementsstyle=doc.getElementsByTag("style");
///得到Table,demo只演示輸入一個table,以後可以用循環遍歷tables集合輸入所有table
Elementstables=doc.getElementsByTag("TABLE");
if(tables.size()==0){
return;
}
Elementtable=tables.get(0);
//得到所有行
Elementstrs=table.getElementsByTag("tr");
///得到列寬集合
Elementscolgroups=table.getElementsByTag("colgroup");

try{
//文件保存到classpath目錄下面
Stringpath=HTMLTOExcel.class.getResource("/").getPath();
path+=excelName+".xls";
System.out.println(path);
WritableWorkbookbook=Workbook.createWorkbook(newFile(path));
WritableSheetsheet=book.createSheet("人事關系",0);
setColWidth(colgroups,sheet);
mergeColRow(trs,sheet);
book.write();
book.close();
}catch(RowsExceededExceptione){
e.printStackTrace();
}catch(WriteExceptione){
e.printStackTrace();
}
}
}

解析html文件的例子文檔地址:http://blog.csdn.net/androidwuyou/article/details/52636821

B. 怎麼訪問java里的html文件

eclipse:
localhost
:8080:項目名:WebContent/html文件名,如過放在其他文件包裡面請在文件名外面加上文件包名
MyEclipse
:localhost:8080:項目名:WebRoot/html文件名,如過放在其他文件包裡面請在文件名外面加上文件包名

C. JAVA代碼如何調用HTML

java 和 js 是可以互掉的,使用傳統的javascript 編寫的ajax的話,會比較繁瑣, 你使用第三方封裝好的ajax包, 就可以調用到java, 如果你使用struts的話, 那直接調用action, 內部的函數, 當然也可以調用servlet, 實在要是不行的話, 那就最直接的, 也是最傳統的, 就只直接在頁面上面使用java代碼的方式, 不過這種方式很少有人使用的...

D. Java怎樣可以在HTML中使用

靜態的html標簽是無法直接調用java程序的

有幾種方法可以實現
1、將按鈕放到form表單中,當按鈕點擊時提交表單(或者直接將input的type屬性定義成submit),表單可以指向JSP或Servlet,在JSP或Servlet里調用java程序

2、在按鈕的onclick時間中添加js代碼
self.location="url";其中url指向JSP或Servlet

3、使用第三方的javascript包,dwr是一個不錯的選擇:
需要准備dwr的jar包,並將之放到lib目錄下;
修改web.xml文件,添加DWRServlet的映射;
配置dwr,即在WEB-INF目錄下,添加dwr.xml文件,讓dwr知道在運行的時候應該給哪些JavaBean生成相應的javascript庫!
將需要的腳本庫引入到html頁面中就可以通過dwr的API訪問java類了
不是很難,網上參考資料挺多的

4、使用MVC框架的話就更簡單了,以struts為例,可以仿照1或2,將url替換成配置文件中配置的地址就能訪問java程序了

E. javasocket編程怎麼訪問本機上指定路徑的html文件

這應該有兩個過程:
1、本機的clientSocket(自定義的名字)或ServerSocket在收到某個信號後,比如傳遞的數據就是你說的html文件路徑,調用讀取文件的方法。
2、使用java.io.*的類庫,讀取該html文件。
3、把讀取的html文件內容返回。

如果你說是ie瀏覽器訪問,那就不是java socket,而是JSP編程了

F. java打開html文件

你的意思是用java代碼模擬訪問一個html網頁? 可以用URLConnection
URL url = new URL("你的html文件的http地址");
URLConnection URLconnection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection) URLconnection;
InputStream urlStream = httpConnection.getInputStream();

另外如果html里有js的話 是不能模擬訪問js的

G. java獲取html

Java訪問網路url,獲取網頁的html代碼
方式一:
一是使用URL類的openStream()方法:
openStream()方法與制定的URL建立連接並返回InputStream類的對象,以從這一連接中讀取數據;
openStream()方法只能讀取網路資源。
二是使用URL類的openConnection()方法:
openConnection()方法會創建一個URLConnection類的對象,此對象在本地機和URL指定的遠程節點建立一條HTTP協議的數據通道,可進行雙向數據傳輸。類URLConnection提供了很多設置和獲取連接參數的方法,最常用到的是getInputStream()和getOutputStream()方法。
openConnection()方法既能讀取又能發送數據。
列如:
public static void main(String args[]) throws Exception {
try {
//輸入url路徑
URL url = new URL("url路徑"); InputStream in =url.openStream(); InputStreamReader isr = new InputStreamReader(in); BufferedReader bufr = new BufferedReader(isr); String str; while ((str = bufr.readLine()) != null) { System.out.println(str); } bufr.close(); isr.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } }

H. 使用java怎麼讀取html文件內容

java可以使用jsoup、htmlparser等工具進行html的讀取和解析,以下是詳細說明:

1、jsoup 是一款 Java 的HTML 解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作數據。據說它是基於MIT協議發布的。
jsoup的主要功能如下:
從一個URL,文件或字元串中解析HTML;
使用DOM或CSS選擇器來查找、取出數據;
可操作HTML元素、屬性、文本;
示例代碼:
Document doc = Jsoup.parse(input, "UTF-8", "http://www.dangdang.com");
Element content = doc.getElementById("content");
Elements links = content.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
}

閱讀全文

與java訪問html相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:757
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:485
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:382
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:892
app轉賬是什麼 瀏覽:163