① 如何在java中顯示html的內容
不知兄台是不是說的這種格式的,寫一個java文件(servlet),運行後輸出一個網頁,下面是一個登錄界面,你只需要創建一個servlet,然後將其中的doget換成如下代碼,將dopost改成doget();即可運行。望採納!
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String cookieName = "userName";
String cookiePwd = "pwd";
Cookie[] cookies = request.getCookies();
String userName = "";
String pwd = "";
boolean isChecked = false;
//如果cookie數組不為null,說明曾經設置過,也就是曾經登錄過,那麼取出上次登錄的用戶名和密碼;
if (cookies != null)
{
for (int i=0; i<cookies.length; i++)
{
Cookie cookie = cookies[i] ;
if (cookieName.equals(cookie.getName()))
{
userName = cookie.getValue() ;
}
if (cookiePwd.equals(cookie.getName()))
{
pwd = cookie.getValue() ;
}
if ("Check".equals(cookie.getName()))
{
isChecked = cookie.getValue().equals("yes")? true : false ;
}
}
}
response.setContentType("text/html;charset=GBK");
request.setCharacterEncoding("gbk") ;
PrintWriter out = response.getWriter() ;
String docType = "<DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">" ;
String title = "ServletLoginDemo";
out.println(docType + "<html> " + "<head>"
+"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gbk\">"
+ "<style type=\"text/css\">"
+ ".textsize {width: 150px ; background: #B1DC87}"
+ "</style>"
+ "<title>" + title
+ "</title></head> " + "<body bgcolor=\"#FDF5E6\"> "
+ "<br />"
+ "<br />"
+ "<center> " + "<h1>Cookie登陸Demo</h1> "
+ "<hr />"
+ "<form action=\"CookieTest\" method=\"post\">"
+ (userName == null ? "用戶名:<input class=\"textsize\" type=\"text\" name=\"UserName\" width=\"20\"></input><br />" : "用戶名:<input class=\"textsize\" type=\"text\" name=\"UserName\" width=\"20\" value=" + userName +"></input><br />")
+ (pwd == null ? "密碼:<input class=\"textsize\" type=\"password\" name=\"Password\"></input><br />" : "密碼:<input class=\"textsize\" type=\"password\" name=\"Password\" value=" + pwd +"></input><br />")
+ (isChecked ? "<input type=\"checkbox\" name=\"Check\" checked=\"true\">記住密碼</input>" : "<input type=\"checkbox\" name=\"Check\">記住密碼</input>")
+ "<center><input type=\"submit\" value=\"登陸\"></center>"
+ "</form>"
+"</center></body></html>");
}
② java界面如何嵌入html
java的swing組件大部分控制項都是默認支持html代碼的,比如jLabel,可以在文本屬性裡面寫<font XXX=XXX>文本</font>
如果你想嵌入整個網頁,那麼應該使用類似com組件中的webBrowser控制項
jdk自帶的應該是javax.swing.text.HTML類,好像不怎麼好使
建議你到網上找第三方的......
③ java瀏覽器的開發html顯示異常,一定要內嵌瀏覽器嗎
java瀏覽器開發,其實很簡單, 使用JavaFX的WebView組件即可.(支持html5); 也可以在swing里使用JFXPanel然後添加WebView;
效果圖如下
參考代碼如下(java8+win10 x64 編寫,測試)
import javafx.application.Application;
import javafx.concurrent.Worker.State;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.scene.web.*;
import javafx.stage.Stage;
public class WebViewTest extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
//頂部
HBox hbox=new HBox(8);
Label labeAddr=new Label("地址");
TextField tfAddr = new TextField();
tfAddr.setMinWidth(500);
tfAddr.setText("http://www..com");
Button btnGo = new Button("Go轉到");
Button btnGoBack=new Button("<-");
Button btnH=new Button("->");
TextField tfSerch = new TextField();
Button btnSerch= new Button("捜");
hbox.getChildren().addAll(labeAddr,tfAddr,btnGoBack,btnH,btnGo,tfSerch,btnSerch);
hbox.setPadding(new Insets(5));
//中間
WebView wv = new WebView();
WebEngine we = wv.getEngine();
we.getLoadWorker().stateProperty().addListener((ob, ov, nv) -> {
if(nv==State.SCHEDULED) {
tfAddr.setText(we.getLocation());//
}
});
//底部
Label labelBottom = new Label();
labelBottom.textProperty().bind(we.getLoadWorker().messageProperty());//底下的信息顯示
BorderPane root = new BorderPane();
root.setTop(hbox);
root.setCenter(wv);
root.setBottom(labelBottom);
Scene scene = new Scene(root, 900, 600);
primaryStage.setTitle("JavaFX 雪飛瀟瀟 web瀏覽器");
primaryStage.setScene(scene);
primaryStage.show();
btnGo.setOnAction(e -> {
we.load(tfAddr.getText().trim());
});
btnGoBack.setOnAction(e->{
we.executeScript("history.back()");//執行JavaScript,後退
});
btnH.setOnAction(e->{
we.executeScript("history.forward()");//執行JavaScript,前進
});
//搜索
btnSerch.setOnAction(e->{
we.load("https://www..com/s?wd="+tfSerch.getText());
});
}
}
④ java web問題 關於tiles布局的 請問有什麼辦法可以再tiles的layout-content中顯示個靜態Html呢
使用Tiles框架的步驟如下:
一:安裝Tiles框架
為了使用Tiles,我們必須首先在structs-config.xml文件中聲明Tiles,配置代碼如下:
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />
</plug-in>
二:建立tiles-defs.xml文件
小解釋:
Tiles提供的模板機制可以最大限度地避免重復編寫代碼。通過建立tiles-defs.xml文件可以實現這種功能。Tiles 模板就是jsp頁面,只是在這種Jsp頁面中使用Tiles標簽代替確定不了的內容(相當於佔位符),不確定的內容有開發人員在使用模板時來填充。
一般模板頁中有以下兩種佔位符:
1,字元串:使用<tiles:getAsString>標簽
2,Web資源(JSP,Servlet,HTML等):使用<tiles:insert>標簽
在建立tiles-defs.xml文件之前需要創建Tiles基本模板,該模板是頁面都有的相同部分,然後將該基本模板定義到tiles-defs.xml文件中,然後其他頁面就可以講該定義文件插入到頁面中,最終實現代碼復用和頁面布局的功能。
ok,下面做個最簡單的演示
1)建立基本tiles模板jsp: layout.jsp,如下:
<%@ page pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<html>
<head>
<title><tiles:getAsString name="title" /></title>
</head>
<body>
<table border=<tiles:getAsString name="border" />>
<tr>
<td>
<tiles:insert attribute="header" />
</td>
</tr>
<tr>
<td>
<tiles:insert attribute="body" />
</td>
</tr>
<tr>
<td>
<tiles:insert attribute="footer" />
</td>
</tr>
</table>
</body>
</html>
這個模板頁面的基本結構是三個表格,第一行表格顯示頁頭,中間顯示主要內容,最下面顯示頁尾。
2)在Web根目錄下建立我們的頁頭header.jsp body.jsp
foot.jsp. 一般頁頭和頁尾是固定的,主要是內容需要不同的jsp頁面來填充。
每個jsp都要聲明編碼方式:<%@ page pageEncoding="GBK"%>
3)在WEB-INF目錄中建立一個tiles-defs.xml文件,如下:
<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
"http://struts.apache.org/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
<definition name="myLayout" path="/layout.jsp">
<put name="title" value="我的頁面" />
<put name="header" value="header.jsp" />
<put name="body" value="body.jsp" />
<put name="footer" value="footer.jsp" />
</definition>
</tiles-definitions>
ok,到了這里tiles模板建立完畢,接下來我們就可以使用該模板了。
需要說明的是該文件中可以定義多個definitions,並且definitions之間可以繼承,更好的復用代碼,
比如再增加一個定義,繼承於myLayout
<definition name="myLayout.newLayout" extends="myLayout">
<put name="title" value="新的頁面" />
</definition>
title屬性新賦的值會覆蓋原來的。
三:插入模板
在Web根目錄下建立mypage.jsp文件,如下:
<%@ page contentType="text/html; charset=GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<tiles:insert definition="myLayout">
<tiles:put name="border" value="${param.border}"/>
</tiles:insert>
正如代碼所寫,將定義好的布局加進來就好了。
將boder參數進行賦值。
Tiles的使用基本是這樣,定義好基本模板頁,美化好,然後只需專注於需要改動的頁面就好了。
⑤ 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的
⑥ 我在做一個java桌面程序,用的swing,需要在文本框中顯示HTML內容
顯示普通的HTML,可以用 javax.swing.JInternalFrame
文本的復制,代碼中寫,直接getText()、setText()即可以,格式就是直接參照原文本框的格式(字體、顏色等)
⑦ Java如何將一段HTML代碼以網頁的形式顯示出來
可以把這段代碼寫在隱藏域里,如果需要把它顯示出來的時候,用java取消隱藏域,就可以了吧。
⑧ 如何在*.java中輸出html,並在jsp頁面顯示
在jsp中 寫一個標簽對,如:<div id="replace"></div>
寫js onload事件,頁面載入完畢後,通過ajax調用服務端java類輸出html,jsp頁面獲得字元串。
ajax接收到字元串 通過js寫到div標簽對裡面。