在网页中使用Java编程
郝伟 2020/11/15
日志
2020/11/15 初始化发布文档
2022/08/29 更新部分错误内容修正
首先,务必记住:
静态html的是无法调用java程序的!
静态html的是无法调用java程序的!!
静态html的是无法调用java程序的!!!
所以,需要在网页中调用Java编程,可以通过下面几个方法实现:
将按钮放到form表单中,当按钮点击时提交表单(或者直接将input的type属性定义成submit),表单可以指向专JSP或Servlet,在JSP或Servlet里调用java程序
在按钮的onclick时间中添加js代码 self.location="url" 其中url指向JSP或Servlet
dwr是一个不错的选择。具体过程如下:
以struts为例,可以仿照属1或2,将url替换成配置文件中配置的地址就能访问java程序。
参考资料
完整的HTML文件
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <body> <% int count = 0; count=count+1;//修改记录,数据加1 %> <p>count = <%=count %></p> <% count=count+1;//修改记录,数据加1%> <p>count = <%=count %></p> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<%! final double PI=Math.PI; //定义常量
double r; //定义变量
double getArea(double a){ //定义方法
return PI*a*a;
}
double getLength(double a) { //定义方法
return 2*PI*a;
}
%>
</head>
<body>
<% int count = 0; count=count+1;//修改记录,数据加1 %>
<p>count = <%=count %></p>
<% count=count+1;//修改记录,数据加1%>
<p>count = <%=getArea(count) %></p>
</body>
</html>
简单模式,以下内容显示为 123乘以321等于 39483。
<% int x = 123, y = 321; %>
<%=x%>乘以<%=y%>等于 <%=x*y%>
复杂模式,以下内容显示为
调用getArea方法计算半径是100.0的园的面积: 31415.926535897932
调用getLength方法计算半径是50.0的园的周长: 314.1592653589793
<%!
final double PI=Math.PI; //定义常量
double r; //定义变量
double getArea(double a){ //定义方法
return PI*a*a;
}
double getLength(double a) { //定义方法
return 2*PI*a;
}
r=100;
out.println("调用getArea方法计算半径是"+r+"的园的面积:");
double area=getArea(r);
out.println(area);
r=50;
out.println("<BR>调用getLength方法计算半径是"+r+"的园的周长:");
double length=getLength(r);
out.println(length);
%>
package utils; public class PageCounter { public static String test(){ return "hello"; } }
编译后置于 WEB-INF/classes/utils/PageCounter.class
在 <html> 上方加入以下内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="utils.PageCounter"%>
然后在 <body> 中进行调用 <% out.print(PageCounter.test()); %>
网页调用代码:
Content: <br><% out.print(PageCounter.readToString("/opt/apache-tomcat-8.5.57/webapps/ROOT/WEB-INF/web.xml")); %>
Java实现代码
// 省略类头部分... public static String readToString(String fileName) { String encoding = "UTF-8"; File file = new File(fileName); Long filelength = file.length(); byte[] filecontent = new byte[filelength.intValue()]; try { FileInputStream in = new FileInputStream(file); in.read(filecontent); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } try { return new String(filecontent, encoding); } catch (Exception e) { System.err.println("The OS does not support " + encoding); e.printStackTrace(); return null; } }
显示内容
Welcome to Tomcat Welcome to Tomcat MyServlet MyServlet MyServlet MyServlet /MyServlet