1 七种页面元素
- 静态内容:即html, css, js等
- 指令
<%@...%>
:一般第一行,都会用来设置编码格式,导入常用类等。如:<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" import="java.util.*" %>
。contentType="text/html;charset=UTF-8"是设置解码格式,pageEncoding="UTF-8"是设置编码格式。 - 表达式
<%=...%>
:一般用在for循环中,表示一个数组中的一项。 - Scriptlet
<%...%>
:可以写任何Java代码,在这里写的输出语句,会打印在控制台中。除非调用JSP内置的对象,才会显示在页面上。 - 声明<%!..%>:可以声明字段和方法,一般不这么用。
- 动作
<jsp:include page="filename"/>
,这是一个包含动作,还包括其他的动作,如页面跳转等。要注意的是后面的/
不能省略,否则JSP无法转译,会报错。 - 注释
<%--...--%>
:这个非常常见,就不解释了。
2 应用:<%…%>和<%=…%>
<% System.out.println("hello jsp1");%>
:会在tomcat的控制台
打印出来,里面的语句是完全的Java代码。<%= "hello jsp2"%>
:这是一个表达式,相当于放了一个实例
,会在页面
上打印出来。<% out.println("hello jsp3");%>
:out是JSP的九大内置对象
之一,会在页面
上打印出来。
这三个语句都是打印hello jsp这个字符串。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" import="java.util.*" %>
你好 JSP
<br>
<%= new Date().toLocaleString()%>
<br>
<% System.out.println("hello jsp1");%>
<br>
<%= "hello jsp2"%>
<br>
<% out.println("hello jsp3");%>
3 应用:for循环
- JSP中for循环的写法,通过
<%...%>
和<%=...%>
完成for循环的使用。
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" import="java.util.*" %>
<%
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Clion");
names.add("David");
names.add("Echo");
%>
<table width="200px" align="center" border="1" cellspacing="0">
<tr>
<td>姓名</td>
</tr>
<% for (String name : names) { %>
<tr>
<td>
<%=name%>
</td>
</tr>
<% } %>
</table>
- 需要注意的是:这里还有一个可能会报错的地方。我使用的tomcat7的版本,直接运行会报一个错误。
浏览器会报500
的错误,而且说是泛型的这一行报错。原因是tomcat中配置的jsp编译版本
低于1.7。
我们可以通过修改tomcat的配置文件,tomcat-7/conf/web.xml
,然后找到jsp相关的配置,添加如图所示的内容,报错即可解决。
<init-param>
<param-name>compilerSourceVM</param-name>
<param-value>1.8</param-value>
</init-param>
<init-param>
<param-name>compilerTargetVM</param-name>
<param-value>1.8</param-value>
</init-param>
参考资料
https://how2j.cn/k/jsp/jsp-elements/581.html
https://blog.csdn.net/sy793314598/article/details/78338296