html嵌入java代码怎么用

html嵌入java代码怎么用,第1张

在html中加入java代码,就是jsp页面,jsp里可以加入java代码了,当然也可以调用外部的java。jsp页面要想运行必须放到容器里,例如最流行的tomcat。
你应该是新手,还不明白概念,所以在网上找些视频教程看吧,搜索j2ee或者jsp的教程,jsp就是用java程序动态生成html页面,浏览器不能解析java代码,所以tomcat这种服务器负责解析,生成最终的html

不知道你为什么这么想 这么做
本来应该各做各的事
为什么要掺在一起呢
只是单纯想知道怎么做吗?
你用java写一段js+html
直接write出来就行了

可以用:File f_html = new File("Loginhtml");
f_htmlcreateNewFile();
要想生成html页面的话,容器会替我们直接把jsp编译成servlet输出成html静态页面进行展示。
你要像手动输出html的展示内容可以自己写一个servlet,使用output方法输出html标签代码段直接打印到客户端。
还有如果你想写入html文件的话,你可以通过fileinput字节写入。(这种写法servlet教程上很多实例,包括如何生成文件,如何通过字节或者字符流的形式写入和保存)

     java读取html文件跟读取普通文件一样,都是使用输入输出流,但是java读取html文件之后还需要解析,使用Jsoup对html进行解析。下面是一个java读取带表格的任意html文件,并把html文件转换成excel的例子。

  要求: 要求能够实现给出任意带table表格的html文件,生成与表格相同内容的excel文件,附件可以作为测试文件,提供给定的rosterhtml文件,通过java代码,实现生成与html页面的table相同样式的rosterxls文件。

首先看rosterhtml:

java代码:

import javaioBufferedReader;
import javaioFile;
import javaioFileReader;
import javaioIOException;
import jxlWorkbook;
import jxlwriteLabel;
import jxlwriteWritableCellFormat;
import jxlwriteWritableFont;
import jxlwriteWritableSheet;
import jxlwriteWritableWorkbook;
import jxlwriteWriteException;
import jxlwritebiffRowsExceededException;
import orgjsoupJsoup;
import orgjsoupnodesDocument;
import orgjsoupnodesElement;
import orgjsoupselectElements;
public class HTMLTOExcel {
public static void main(String args[]) throws IOException{
///读取classpath目录下面的路径
String path=HTMLTOExcelclassgetResource("/")getPath();
path+="rosterhtml";
toExcel(path,"roster");      
    }
    //得到Document并且设置编码格式
public static Document getDoc(String fileName) throws IOException{
      File myFile=new File(fileName);
      Document doc= Jsoupparse(myFile, "GBK","");
      return doc;
}
///这个方法用于根据trs行数和sheet画出整个表格
public static void mergeColRow(Elements trs,WritableSheet sheet) throws RowsExceededException, WriteException{
int[][] rowhb=new int[300][50];
for(int i=0;i<trssize();i++){
 Element tr=trsget(i);
 Elements tds=trgetElementsByTag("td");
 
 int realColNum=0;
 for(int j=0;j<tdssize();j++){
  Element td=tdsget(j);  
  if(rowhb[i][realColNum]!=0){
  realColNum=getRealColNum(rowhb,i,realColNum);
  }
  int rowspan=1;
  int colspan=1;
  if(tdattr("rowspan")!=""){
  rowspan = IntegerparseInt(tdattr("rowspan"));
  }
  if(tdattr("colspan")!=""){
  colspan = IntegerparseInt(tdattr("colspan"));
  }
  String text=tdtext();
  drawMegerCell(rowspan,colspan,sheet,realColNum,i,text,rowhb);
  realColNum=realColNum+colspan;
 }
 
}
}
///这个方法用于根据样式画出单元格,并且根据rowpan和colspan合并单元格
public static void drawMegerCell(int rowspan,int colspan,WritableSheet sheet,int realColNum,int realRowNum,String text,int[][] rowhb) throws RowsExceededException, WriteException{
  for(int i=0;i<rowspan;i++){
  for(int j=0;j<colspan;j++){
  if(i!=0||j!=0){
 text="";
  }
  Label label = new Label(realColNum+j,realRowNum+i,text);
   WritableFont countents = new WritableFont(WritableFontTIMES,10); // 设置单元格内容,字号12  
   WritableCellFormat cellf = new WritableCellFormat(countents ); 
   cellfsetAlignment(jxlformatAlignmentCENTRE);//把水平对齐方式指定为居中
   cellfsetVerticalAlignment(jxlformatVerticalAlignmentCENTRE);//把垂直对齐方式指定为居
   labelsetCellFormat(cellf);
   sheetaddCell(label);
   rowhb[realRowNum+i][realColNum+j]=1;
  }
  }
  sheetmergeCells(realColNum,realRowNum, realColNum+colspan-1,realRowNum+rowspan-1);
}
public static int getRealColNum(int[][] rowhb,int i,int realColNum){
while(rowhb[i][realColNum]!=0){
realColNum++;
}
return realColNum;
}
///根据colgroups设置表格的列宽
public static void setColWidth(Elements colgroups,WritableSheet sheet){
 if(colgroupssize()>0){
 Element colgroup=colgroupsget(0);
 Elements cols=colgroupgetElementsByTag("col");
 for(int i=0;i<colssize();i++){
 Element col=colsget(i);
 String strwd=colattr("width");
 if(colattr("width")!=""){
 int wd=IntegerparseInt(strwd);
 sheetsetColumnView(i,wd/8);
 }
 
 }
 
 }
}
//toExcel是根据html文件地址生成对应的xls
public static void toExcel(String fileName,String excelName)throws IOException{
Document doc=getDoc(fileName);
    String title = doctitle();
    ///得到样式,以后可以根据正则表达式解析css,暂且没有找到cssparse
    Elements style= docgetElementsByTag("style");
    ///得到Table,demo只演示输入一个table,以后可以用循环遍历tables集合输入所有table
    Elements tables= docgetElementsByTag("TABLE");    
    if(tablessize()==0){
    return;
    }
    Element table=tablesget(0);
   //得到所有行
    Elements trs = tablegetElementsByTag("tr");
    ///得到列宽集合
    Elements colgroups=tablegetElementsByTag("colgroup");
    
   try {
   //文件保存到classpath目录下面
    String path=HTMLTOExcelclassgetResource("/")getPath();
path+=excelName+"xls";
 Systemoutprintln(path);
    WritableWorkbook book = WorkbookcreateWorkbook(new File(path));    
    WritableSheet sheet = bookcreateSheet("人事关系", 0);  
    setColWidth(colgroups,sheet);
    mergeColRow(trs,sheet);    
    bookwrite();    
    bookclose();    
   } catch (RowsExceededException e) {
        eprintStackTrace();
   } catch (WriteException e) { 
        eprintStackTrace();
   }
}
}

解析html文件的例子文档地址:>将以下代码保存为 Testjava 即可运行(界面挫了点,不过核心功能都有,你可以自己拿回去改改界面就可以了)
package com;
import javaxswing;
import javaawtBorderLayout;
import javaawteventActionListener;
import javaawteventActionEvent;
public class Test extends JFrame{
public static void main(String args[]){
new Test();
}
JTextField ieField;
JButton button;
public Test(){
super("单击按钮打开一个网页");
ieField = new JTextField(">java可以使用jsoup、htmlparser等工具进行html的读取和解析,以下是详细说明:
1、jsoup 是一款 Java 的HTML 解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于JQuery的 *** 作方法来取出和 *** 作数据。据说它是基于MIT协议发布的。
jsoup的主要功能如下:
从一个URL,文件或字符串中解析HTML;
使用DOM或CSS选择器来查找、取出数据;
可 *** 作HTML元素、属性、文本;
示例代码:
Document doc = Jsoupparse(input, "UTF-8", ">

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13359376.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-21
下一篇 2023-07-21

发表评论

登录后才能评论

评论列表(0条)

保存