scriptlet脚本块主要是在service里面定义属性,jsp声明块主要放在类里面的最前面,可以让所有在类里的的方法调用。输出块主要是在类里面的某一个位置,见缝插针去输出的。
scriptlet脚本
<%...%>块,这个块中的代码,会被拷贝到jsp引擎生成的脚本的这个脚本所在位置
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%
int a = 20;
%>
<head>
<title>$Title$</title>
<meta charset="utf-8">
</head>
<body>
<%
out.write(new java.util.Date().toString());
%>
<form action="/Encoding" method="post">
<input type="text" name="name"/>
<input type="submit"/>
</form>
</body>
<%
String name = request.getParameter("name");
session.getAttribute("name");
a += 10;
%>
</html>
生成的源码:

对比一下scriptlet脚本在页面流中的位置和生成的源码中的位置,实际就是把scriptlet脚本拷贝到源码输出流中对应的位置
jsp声明块
<%!..定义Servlet类中的方法和属性... %>
JSP声明块声明Servlet类中的方法和属性
<%!
public int sum(int a,int b){
return a + b;
}
%>
生成的源码中声明块的位置

输出块
<%="HelloWorld"%> 等同于<%out.println("Hello World ");%>

生成的源代码


本文深入解析JSP中的三种脚本块:scriptlet、声明块和输出块。阐述了它们在JSP页面中的作用及生成的源码位置,帮助读者理解JSP的工作原理。
2043

被折叠的 条评论
为什么被折叠?



