UTIl方法:
public class StaticPage {
/**
*
* @param surl
* @return
*/
public static String getStaticPage(String surl) {
String htmlContent = "";
try {
java.io.InputStream inputStream;
java.net.URL url = new java.net.URL(surl);
java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url
.openConnection();
connection.connect();
inputStream = connection.getInputStream();
byte bytes[] = new byte[1024 * 2000];
int index = 0;
int count = inputStream.read(bytes, index, 1024 * 2000);
while (count != -1) {
index += count;
count = inputStream.read(bytes, index, 1);
}
htmlContent = new String(bytes, "gb2312");
connection.disconnect();
} catch (Exception ex) {
ex.printStackTrace();
}
return htmlContent.trim();
}
/**
*
* @param url
* @return
*/
public static String getHtmlSource(String url) {
StringBuffer codeBuffer = null;
BufferedReader in = null;
try {
URLConnection uc = new URL(url).openConnection();
// 读取url流内容
in = new BufferedReader(new InputStreamReader(uc.getInputStream(),
"gb2312"));
codeBuffer = new StringBuffer();
String tempCode = "";
// 把buffer内的值读取出来
while ((tempCode = in.readLine()) != null) {
codeBuffer.append(tempCode).append("\n");
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return codeBuffer.toString();
}
/**
*
* @param url
* @return
*/
public static String getHtmlPage(String url) {
StringBuffer codeBuffer = null;
BufferedReader in = null;
HttpURLConnection conn = null;
try {
URL uUrl = new URL(url);
conn = (HttpURLConnection) uUrl.openConnection();
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "utf-8");
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "gbk"));
String downloadURL;
codeBuffer = new StringBuffer();
while ((downloadURL = reader.readLine()) != null) {
codeBuffer.append(downloadURL);
}
} catch (Exception e) {
e.printStackTrace();
}
return codeBuffer.toString();
}
}
生成HTML静态页面
public String staticPage() {
String page = (String) ac.getData("page");
String url = (String) ac.getData("url");
try {
// String sPage = StaticPage.getStaticPage(url);
// String sPage = StaticPage.getHtmlSource(url);
String sPage = StaticPage.getHtmlPage(url);
File file = new File("d:/HTML/"+page+".html");
FileWriter resultFile = new FileWriter(file);
PrintWriter myFile = new PrintWriter(resultFile);
// 写文件
myFile.println(sPage);
resultFile.close();
myFile.close();
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
方法保存静态页面的缺点,无法保存图片,还希望知道更好方法的能提供更好的方法,谢谢!
分享到:
相关推荐
为了解决这个问题,一种常见的优化策略是将动态页面转换为静态页面。JSP(JavaServer Pages)是一种动态网页技术,通过将Java代码嵌入HTML中,可以在服务器端执行这些代码来生成动态内容。然而,动态页面每次请求都...
首先,我们要理解静态页面抓取工具的基本概念。这些工具通过模拟浏览器的行为,遍历指定网站的所有链接,下载HTML文件及其他相关资源(如图片、CSS和JavaScript文件)。它们的目标是构建一个本地副本,尽可能忠实地...
因此,在某些情况下,开发者可能会选择将动态页面转换为静态页面。 #### 关键知识点解析 1. **转换背景与目的**: - **提高性能**:相比于动态页面,静态页面无需数据库查询或复杂的后端逻辑处理,加载速度更快。...
3. **存储静态页面**:将生成的HTML内容保存为一个静态文件,例如`index.html`。 4. **返回响应**:服务器将静态页面内容发送给客户端,而不是执行动态页面代码。 5. **更新维护**:当动态内容改变时,需要重新生成...
生成静态页面技术解决方案是指通过某种技术手段将动态网页转换为静态网页,从而提高网站的访问速度和减少服务器的负载量。本文将对生成静态页面技术解决方案进行详细的介绍。 生成静态页面技术解决方案的优点: 1....
5. 链接更新:如果动态页面包含其他动态链接,需要修改为静态页面的URL,确保页面间的导航正常。 三、实现步骤 1. 创建Servlet:编写一个Servlet,配置在web.xml中,设定URL映射规则,使得特定的JSP请求会被这个...
2. 动态转静态:如果静态页面不存在,ASP.NET会运行对应的ASPX页面或 Razor视图,执行所有必要的服务器端代码,包括数据库查询、业务逻辑等,然后将生成的HTML输出保存为静态文件。 3. 缓存策略:生成的静态页面会...
2. 运行时动态静态化:当用户请求动态内容时,服务器会实时生成HTML页面并保存,之后的请求可以直接返回这个静态页面,避免了每次请求都要执行ASP.NET页面生命周期的过程。这种方式适用于内容频繁变动,但又希望享受...
4. **保存为静态文件**:将生成的HTML页面保存到服务器的文件系统上,通常是在一个公共可访问的目录下。 5. **配置URL重写**:为了使用户能够通过原来的动态URL访问静态页面,需要配置服务器的URL重写规则,使得动态...
2. **实时生成**:当用户首次访问某个动态页面时,服务器动态生成HTML并保存,后续相同请求则直接返回已生成的静态页面。这种方式适用于内容更新较快,但更新后一段时间内访问量大的页面。 在实际应用中,我们可以...
1. 创建控制器和视图:在ASP.NET MVC或ASP.NET Core项目中,定义一个控制器,为每个需要生成静态页面的URL创建一个动作。编写相应的视图,定义页面布局和内容。 2. 渲染视图为HTML:在控制器动作中,使用`...
- **按需静态化(On-Demand)**:当用户首次请求某个动态页面时,服务器动态生成静态页面并保存,后续请求则直接返回静态HTML。 - **定时刷新(Cron Job)**:设置定时任务,定期检查并更新静态页面,确保数据的...
**JSP页面静态化**是一种优化网站性能的技术,它的核心思想是将动态生成的HTML页面保存为静态文件,以便后续的访问可以直接返回静态页面,从而减少服务器资源的消耗,提高响应速度。 在Web应用程序中,动态页面是...
在Web开发领域,静态页面和动态页面是两种常见的类型。静态页面内容固定,不依赖服务器端的处理,而动态页面则可以根据用户请求、时间、数据库信息等生成不同的内容。网页静态化是将动态页面转换为静态HTML页面的...
用户中心静态页面是网站设计中的一个重要组成部分,它通常包含了用户登录、个人信息管理、订单查看、收藏管理、售后服务等一系列与用户个人交互密切相关的功能模块。在这个项目中,我们看到的是一组用于构建用户中心...
网页静态化和伪静态页面是ASP.NET开发中提高网站性能和搜索引擎优化(SEO)的重要技术。在现代Web开发中,动态网页虽然功能强大,但在处理大量用户请求时,可能会增加服务器负担,降低页面加载速度。为了解决这个...
在静态网页中,这些操作可能通过表单提交和JavaScript事件处理实现,数据通常不会实时保存在服务器上,而是在用户本地进行展示。 3. **页面设计**: 设计良好的用户界面对于任何系统都至关重要。学生管理系统应具备...
【标题】:“bbs论坛源码 数据库 静态页面”揭示了这是一个关于构建BBS(Bulletin Board System,电子公告板)论坛的项目,它包括了源代码、数据库配置和静态页面。这个项目可能是一个基础的在线社区平台,允许用户...
- **页面静态化**:将动态页面转换为静态页面的过程,以提高性能和搜索引擎友好性。 2. **为什么要静态化**: - **性能提升**:静态HTML文件加载更快,减少了服务器处理时间和网络传输量。 - **SEO优化**:搜索...
1. **手动转换**:对于少量页面,可以使用工具或者手动将aspx页面的HTML输出保存为shtml或html文件。但这不适用于大量或频繁更新的页面。 2. **服务器端缓存**:ASP.NET提供Output Cache功能,可将页面渲染结果缓存...