JavaEE-9-JSP
2018-09-05 本文已影响0人
ZzzRicardo_Yue
1、JSP的四种基本语法
生成输出内容
- JSP注释:<%-- --%>
- JSP声明:<%! %>
- JSP输出表达式:<%= %>
- JSP小脚本:<% %>
2、JSP三个编译指令
用于通知JSP引擎
- page:是针对当前页面的指令
- include:用于指定包含另一个页面
- taglib:用于定义和访问自定义标签
使用上述编译指令的格式:<%@ 编译指令名 属性名="属性值" %>
3、JSP七个动作指令
动作指令表示的是JSP运行时的动作
格式:<jsp:具体的动作指令代码 属性名="属性值" />
- jsp:forward
- jsp:param
- jsp:include
- jsp:plugin
- jsp:useBean
- jsp:setProperty
- jsp:getProperty
下面内容写的很辣鸡,随便看看(上面也不怎么样)
1、JSP原理
生命周期:
- 编译阶段:servlet容器编译servlet源文件,生成servlet类
- 初始化阶段:加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
- 执行阶段:调用与JSP对应的servlet实例的服务方法
- 销毁阶段:调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
2、简单实例
jsp代码块中也可以嵌套html元素,如:
例1:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int day = 3; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h3>IF...ELSE 实例</h3>
<% if (day == 1 | day == 7) { %>
<p>今天是周末</p>
<% } else { %>
<p>今天不是周末</p>
<% } %>
</body>
</html>
例2:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%! int fontSize; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
<font color="green" size="<%= fontSize %>">
菜鸟教程
</font><br />
<%}%>
</body>
</html>
3、使用include包含其他的JSP文件
写两个文件date.jsp 和main.jsp。
date.jsp文件代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
main.jsp文件代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>include 动作实例</h2>
<jsp:include page="date.jsp" flush="true" />
</body>
</html>
现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:
结果
<jsp:include page="date.jsp" flush="true" />
中flush="true"
表示在包含资源前刷新了缓存区。
4、在JSP中使用JavaBean类
一个JavaBean类:
public class TestBean {
private String message = "菜鸟教程";
public String getMessage() {
return(message);
}
public void setMessage(String message) {
this.message = message;
}
}
编译以上实例文件 TestBean.java :
$ javac TestBean.java
编译完成后会在当前目录下生成一个TestBean.class
文件, 将该文件拷贝至当前 JSP 项目的 WebContent/WEB-INF/classes/com/runoob/main 下( com/runoob/main 包路径,没有需要手动创建)。
下面是一个 Eclipse 中目录结构图:
接着让我们在main.jsp文件中调用该Bean:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
<h2>Jsp 使用 JavaBean 实例</h2>
<jsp:useBean id="test" class="com.runoob.main.TestBean" />
<jsp:setProperty name="test"
property="message"
value="菜鸟教程..." />
<p>输出信息....</p>
<jsp:getProperty name="test" property="message" />
</body>
</html>
- 注意上面这里
<jsp:useBean id="test" class="com.runoob.main.TestBean" />
表示使用使用这个JavaBean类,并且设了一个id为test(这个id后面有用) - 接着,
<jsp:setProperty name="test"
property="message"
value="菜鸟教程..." />
- 这里的
name
属性的值与之前的id相同,然后指定改变TestBean中的message属性的值为“菜鸟教程···” - 注意
jsp:setProperty
只有在新建Bean实例时才会执行,如果是使用现有实例则不执行jsp:setProperty
。
5、其他JSP元素
<jsp:forward page="相对 URL 地址" />
把请求转到另外的页面