① 如何在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标签对里面。