jsp生成静态页面

简介: 使用jsp生成静态页面.整个工程的目录结构如图:   StaticPage是我们将要生成的静态页面目录 所有静态页面都会生成在这个目录.

使用jsp生成静态页面.整个工程的目录结构如图:

 

StaticPage是我们将要生成的静态页面目录 所有静态页面都会生成在这个目录.

然后编写一个MyFitler的过滤器:

以下是代码片段:

package com.filter;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.*;

public class MyFilter implements Filter {
 private FilterConfig filterConfig;

 public void destroy() {

 }

 public void doFilter(ServletRequest arg0, ServletResponse arg1,
   FilterChain arg2) throws IOException, ServletException {

  String para = arg0.getParameter("id");
  if (para != null) {
   // 获得静态文件生成的绝对地址
   para = arg0.getRealPath("/") + "StaticPage/" + para + ".html";
   File file = new File(para);

   // 判断文件是否存在
   if (!file.exists()) {// 不存在 生成
    FileWriter fileWriter = new FileWriter(file);
    StringBuilder sb = new StringBuilder(1000);
    sb.append("这个页面是静态页面
" + para + "
");
    sb.append("当前时间:" + new java.util.Date().toLocaleString()
      + "
");
    sb
      .append("<a>back</a>");
    fileWriter.write(sb.toString());
    fileWriter.flush();
    fileWriter.close();
   }
   // 转向到该html页面
   HttpServletResponse hsr = (HttpServletResponse) arg1;
   hsr.sendRedirect("/BuildeStatic/StaticPage/"
     + arg0.getParameter("id") + ".html");
   return;
  }
  arg2.doFilter(arg0, arg1);
 }

 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub
  this.filterConfig = filterConfig;
 }

}

 

然后配置web.xml使上面的过滤器针对StaticPage目录生效:

然后编写StaticPage下的index.jsp文件 作为目录页面

以下是代码片段:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
 String path = request.getContextPath();
 String basePath = request.getScheme() + "://"
   + request.getServerName() + ":" + request.getServerPort()
   + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <base href="<%=basePath%>">

  <title>index</title>

  <meta http-equiv="pragma" content="no-cache">
  <meta http-equiv="cache-control" content="no-cache">
  <meta http-equiv="expires" content="0">
  <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  <meta http-equiv="description" content="This is my page">
  <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

 </head>

 <body>
  <a href="/BuildeStatic/StaticPage/index.jsp?id=123">1号静态页面</a>
  <br>
  <a href="/BuildeStatic/StaticPage/index.jsp?id=124">2号静态页面</a>
  <br>
  <a href="/BuildeStatic/StaticPage/index.jsp?id=125">3号静态页面</a>
  <br>
  <a href="/BuildeStatic/StaticPage/index.jsp?id=126">4号静态页面</a>
  <br>
 </body>
</html>

 


 
目录
相关文章
|
Java 数据库
jsp 页面生成静态页面(调包response)
过滤器 package cn.itcast.web.filter; import java.io.File; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.
1508 0
|
Web App开发 Java
jsp 生成静态页面
package com.mobiAdList.tool; import java.io.BufferedReader;import java.io.File;import java.io.FileOutputStream;import java.
754 0
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
455 0
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
227 1
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
453 12
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
441 10
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
437 9