文件管理 · 2024年7月16日

javajsp生成静态文件|JSP如何生成静态的html页面

『壹』 jsp是什么

JSP是一种动态网页技术标准,这种技术可以根据客户端的请求,生成动态或者静态网页,然后发送给客户端的请求者。

不少的朋友经常会在电脑科普网站上看到jsp这个概念,究竟这个jsp是什么意思?jsp又有什么作用和特点呢?下面让我们一起去了解吧。

详细内容

01

JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。

02

JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。

03

标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。

04

用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。

05

在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。

『贰』 java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中,还是当被调用的时候才进行加载呢

java静态资源(静态方法,静态属性)是程序一运行就加载到jvm中的。

1、类中的静态属性会被加入到类对象(也可以叫做类的模板,是类的描述) 的构造器中,静态方法也会被加入到类对象中。

2、当第一次使用类时,JVM会通过类加载器,加载类对象,从而初始化静态属性,并装入类的方法,包括静态方法和实例方法(方法不会被调用,只是加载,从这个意义上来说,静态方法和实例方法是类似的)。

3、当创建类的实例对象时,JVM会调用类的构造器,从而初始化类的属性。

(2)javajsp生成静态文件扩展阅读:

JVM 类加载机制

JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。

1、加载

加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个Class文件获取,这里既可以从ZIP包中读取(比如从jar包和war包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将JSP文件转换成对应的Class类)。

2、验证

这一阶段的主要目的是为了确保Class文件的字节流中包含的信息是否符合当前虚拟机的要求,并且不会危害虚拟机自身的安全。

3、准备

准备阶段是正式为类变量分配内存并设置类变量的初始值阶段,即在方法区中分配这些变量所使用的内存空间。

4、解析

解析阶段是指虚拟机将常量池中的符号引用替换为直接引用的过程。符号引用就是class文件中的:

CONSTANT_Class_info

CONSTANT_Field_info

CONSTANT_Method_info

等类型的常量。

5、初始化

初始化阶段是类加载最后一个阶段,前面的类加载阶段之后,除了在加载阶段可以自定义类加载器以外,其它操作都由JVM主导。到了初始阶段,才开始真正执行类中定义的Java程序代码。初始化阶段是执行类构造器<client>方法的过程。

『叁』 高分求jsp转html问题和jsp转do问题

若是HTML,一种方法是伪静态,一种方法是直接生成静态页面。若是do,一种是URL重写(和上面伪静态方法一样),把xxx.do重定向为xxx.jsp另一种方法是直接批量JSP文件为.do文件,然后在服务器配置里设置.do格式的用JSP格式解析。

『肆』 如何将jsp页面转换成静态页面

将jsp页面转换成静态页面的步骤:

1、在jsp页面中加入servlet.代码如下:

public class ToHtml extends HttpServlet {

public void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

String url = "";

String name = "";

ServletContext sc = getServletContext();

String file_name = request.getParameter("file_name");// 你要访问的jsp文件名,如index,不包括扩展名

// 则你访问这个servlet时加参数.如http://localhost/test/toHtml?file_name=index

url = "/" + file_name + ".jsf";// 你要生成的页面的文件名。我的扩展名为jsf .

name = ConfConstants.CONTEXT_PATH+"\"+ file_name + ".htm";// 这是生成的html文件名,如index.htm.文件名字与源文件名相同。扩展名为htm

//ConfConstants.CONTEXT_PATH为你的应用的上下文路径。

RequestDispatcher rd = sc.getRequestDispatcher(url);

final ByteArrayOutputStream ōs = new ByteArrayOutputStream();

final ServletOutputStream stream = new ServletOutputStream() {

public void write(byte[] data, int offset, int length) {

os.write(data, offset, length);

}

public void write(int b) throws IOException {

os.write(b);

}

};

final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));

HttpServletResponse rep = new HttpServletResponseWrapper(response) {

public ServletOutputStream getOutputStream() {

return stream;

}

public PrintWriter getWriter() {

return pw;

}

};

rd.include(request, rep);

pw.flush();

FileOutputStream fos = new FileOutputStream(name); // 把jsp输出的内容写到xxx.htm

os.writeTo(fos);

fos.close();

PrintWriter ōut = response.getWriter();

out

.print("<p align=center><font size=3 color=red>页面已经成功生成!single<br>http://www.agilejava.org/space/? 233</font></p>");

}

}

2、配置web.xml

<servlet>

<servlet-name>toHtml</servlet-name>

<servlet-class>mj.util.html.ToHtml</servlet-class>//你的servlet的类。

</servlet>

<servlet-mapping>

<servlet-name>toHtml</servlet-name>

<url-pattern>/toHtml</url-pattern>

</servlet-mapping>

3、运行servlet。如:http://localhost:8080/test/toHtml?file_name=index

在test项目的根目录下,生成了一个index.htm的静态文件。

『伍』 jsp页面转换成HTML

你可以新建一个jsp页面,将html中<html></html>标签中的内容替换jsp页面中<html></html>内容即可。但注意jsp页面中的第内一行:<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> 改为:<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>这行意容思是你用到了包和页面中显示的是中文。

『陆』 JSP如何生成静态的html页面

public class HTMLMaker { final static Object lock = new Object(); public static void makeHtml(String page, String filePath){ makeHtml(page,filePath,"UTF-8"); } public static void makeHtml(String page, String filePath,String chartset) { synchronized (lock) { HttpURLConnection huc = null; BufferedReader br = null; BufferedWriter bw = null; try { huc = (HttpURLConnection)new URL(page).openConnection(); System.setProperty("sun.net.client.defaultConnectTimeout", "30000"); System.setProperty("sun.net.client.defaultReadTimeout", "30000"); huc.connect(); InputStream stream = huc.getInputStream(); bw = new BufferedWriter(new OutputStreamWriter (new FileOutputStream(filePath),chartset)); br = new BufferedReader(new InputStreamReader(stream, chartset)); String line; while((line = br.readLine())!= null){ if(line.trim().length() > 0){ bw.write(line); bw.newLine(); } } }catch (Exception e) { e.printStackTrace(); }finally { try { br.close(); bw.close(); huc.disconnect(); }catch (Exception e) { e.printStackTrace(); } } } }} 参数解释:page:jsp页面的网络地址,比如http://localhost:8080/xxx/index.jspfilePath:生成的html文件的保存路径chartset:编码,不填默认utf-8。思想:把jsp文件开流读入,再用输出流写入到目标文件。

『柒』 关于Javaweb的问题,Jsp和Servlet各自的应用场景

JSP(JavaServer Pages)和Servlet是两种用于开发Web应用程序的服务器端技术。JSP是一种动态Web页面技术,它使用Java代码来生成HTML、XML或其他类型的文档。JSP页面包含特殊的JSP标记,这些标记被解析并转换为Java代码,然后执行。JSP通常被用来创建动态的Web页面,例如显示数据库内容或处理表单数据。Servlet是一种Java类,它运行在Web服务器上,并处理来自浏览器的请求。Servlet可以生成动态的HTML内容,也可以执行其他类型的任务,例如处理表单数据或连接数据库。JSP和Servlet有许多相似之处,但各自有不同的应用场景。JSP更适合用于生成静态的Web内容,例如HTML、XML或其他文档。Servlet更适合用于执行动态的任务,例如处理表单数据或连接数据库。总的来说,JSP通常被视为更为高级的技术,因为它可以在Web页面中嵌入Java代码,但是Servlet可以提供更多的灵活性和控制。因此,在选择使用JSP或Servlet时,应该根据自己的需求和应用场景来决定。