jsp windows.open
时间: 2024-06-08 07:10:57 浏览: 165
`window.open()` 是 JavaScript 中的一个方法,可以用于在新窗口或标签页中打开一个新的浏览器窗口。在 JSP 中,你可以通过在 JSP 页面中嵌入 JavaScript 代码来调用 `window.open()` 方法,例如:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>使用 window.open() 方法</title>
</head>
<body>
<h1>使用 window.open() 方法</h1>
<button onclick="openWindow()">打开新窗口</button>
<script>
function openWindow() {
window.open("http://www.example.com", "_blank");
}
</script>
</body>
</html>
```
在上面的例子中,当用户点击页面上的按钮时,会调用 `openWindow()` 函数,在新窗口中打开一个名为 "http://www.example.com" 的网页。`"_blank"` 参数告诉浏览器在新窗口或标签页中打开该网页。
相关问题
java获取网络时间_Java获取网络时间并在jsp网页中显示
你可以使用Java中的Date和SimpleDateFormat类来获取网络时间并在JSP网页中显示。具体步骤如下:
1. 在Java中使用URLConnection类打开一个连接到网络时间服务器,例如:time.windows.com。
2. 从URLConnection对象中获取输入流并读取服务器返回的时间数据。
3. 使用Date类将时间数据转换为日期对象。
4. 使用SimpleDateFormat类将日期格式化为你所需的字符串格式。
5. 将格式化后的时间字符串传递给JSP页面,并在页面中显示。
以下是示例代码:
Java代码:
```
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.text.SimpleDateFormat;
import java.util.Date;
public class NetworkTime {
public static void main(String[] args) {
try {
// 打开网络连接
URL url = new URL("http://time.windows.com");
URLConnection conn = url.openConnection();
conn.connect();
// 读取服务器返回的时间数据
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String timeString = in.readLine();
in.close();
// 转换为日期对象
Date date = new Date(Long.parseLong(timeString) * 1000);
// 格式化日期为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(date);
// 输出结果
System.out.println(formattedTime);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在JSP页面中使用以下代码来显示网络时间:
```
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Network Time</title>
</head>
<body>
<h1>Network Time</h1>
<p>The current network time is: <%= request.getAttribute("networkTime") %></p>
</body>
</html>
```
在Servlet中使用以下代码来将网络时间传递给JSP页面:
```
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/NetworkTimeServlet")
public class NetworkTimeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 打开网络连接
URL url = new URL("http://time.windows.com");
URLConnection conn = url.openConnection();
conn.connect();
// 读取服务器返回的时间数据
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String timeString = in.readLine();
in.close();
// 转换为日期对象
Date date = new Date(Long.parseLong(timeString) * 1000);
// 格式化日期为字符串
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedTime = sdf.format(date);
// 将结果传递给JSP页面
request.setAttribute("networkTime", formattedTime);
request.getRequestDispatcher("networkTime.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
当你访问NetworkTimeServlet时,它将从网络时间服务器获取时间并将结果传递给networkTime.jsp页面进行显示。
import execjs import requests from lxml import etree def getRsa(u, p, lt): """ 加密方法 :param u:账号 :param p:密码 :param lt:lt :return:加密值 """ jsPath = r'./des.js' with open(jsPath, "r") as file: desJsCode = file.read() desJsFunction = execjs.compile(desJsCode) rsa = desJsFunction.call("strEnc", u + p + lt, "1", "2", "3") return rsa """ ---------------------------------------------------------------------------------- 第一次请求获取lt和execution的数值 """ header = { "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36' } loginUrl = """http://cas.upc.edu.cn/cas/login?service=http%3A%2F%2Fjwxt.upc.edu.cn%2Fneusoftcas.jsp""" session = requests.session() one = session.get(loginUrl) loginPageHtml = etree.HTML(one.text) lt = loginPageHtml.xpath(r'//*[@id="lt"]/@value')[0] execution = loginPageHtml.xpath(r'//*[@name="execution"]/@value')[0] u = '2009050216' p = '20020528lykLYK.' ul = len(u) pl = len(p) rsa = getRsa(u, p, lt) _eventId = "submit"
下面是相应的Dart代码实现:
```
import 'dart:io';
import 'package:http/http.dart' as http;
import 'package:html/parser.dart' show parse;
import 'package:html/dom.dart';
Future<String> getRsa(String u, String p, String lt) async {
/* 加密方法 */
File jsFile = File('./des.js');
String desJsCode = await jsFile.readAsString();
var context = await execjs.createContext(desJsCode);
String rsa = await context.callMethod("strEnc", [u + p + lt, "1", "2", "3"]);
return rsa;
}
Future<void> main() async {
/* 第一次请求获取lt和execution的数值 */
var headers = {
"User-Agent":
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
};
var loginUrl =
"http://cas.upc.edu.cn/cas/login?service=http%3A%2F%2Fjwxt.upc.edu.cn%2Fneusoftcas.jsp";
var session = http.Client();
var response = await session.get(Uri.parse(loginUrl), headers: headers);
var document = parse(response.body);
var lt = document.querySelector('#lt')?.attributes['value'] ?? "";
var execution = document.querySelector('[name="execution"]')?.attributes['value'] ?? "";
var u = '2009050216';
var p = '20020528lykLYK.';
var rsa = await getRsa(u, p, lt);
var _eventId = "submit";
}
```
需要注意的是,由于Dart是一门静态类型语言,因此需要显式地声明变量类型。此外,Dart中没有像Python中的execjs库一样可以直接使用JavaScript代码,因此需要使用dart-js库来实现JavaScript代码的调用。
阅读全文