重难点
- 了解JSP的用途
- 了解JSP运行原理
-
Servlet开发的痛点
静态HTML与Java代码混合在一起,难以维护
- Servlet利用out.println()语句输出,开发效率低下
- Servlet代码如下图所示
JSP介绍
- JSP全称是(Java Server Page),Java服务器页面
- JSP是J2EE功能模块,由Web服务器执行
-
JSP的特点
JSP使用简单,短时间学习即可上手
- JSP可将Java代码与HTML分离,降低开发难度
-
JSP的运行要求
可正常运行Tomcat
- 所有JSP页面扩展名必须是.jsp
-
第一个JSP页面
案例描述
公司薪资制度
新入职员工:基本工资15000
- 工作5年内员工:每年工资上浮基本工资的10%
- 工作5-10年员工:每年工资上浮基本工资的20%
- 工作10年以上:每年工资上浮基本工资的25%
- 要求列出工资试算表
方法一
我们使用纯HTML实现<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<th>year</th>
<th>salary</th>
</tr>
<tr>
<td>0</td>
<td>15000</td>
</tr>
<tr>
<td>1</td>
<td>16500</td>
</tr>
<tr>
<td>2</td>
<td>18000</td>
</tr>
<tr>
<td>3</td>
<td>19500</td>
</tr>
<tr>
<td>4</td>
<td>21000</td>
</tr>
<tr>
<td>5</td>
<td>22500</td>
</tr>
<tr>
<td>6</td>
<td>25500</td>
</tr>
<tr>
<td>7</td>
<td>28500</td>
</tr>
<tr>
<td>8</td>
<td>31500</td>
</tr>
<tr>
<td>9</td>
<td>34500</td>
</tr>
<tr>
<td>10</td>
<td>37500</td>
</tr>
<tr>
<td>11</td>
<td>41250</td>
</tr>
</table>
</body>
</html>
方法二
使用JSP编写,在纯HTML基础上可以嵌入Java代码
可以看到,在JSP页面中嵌入Java代码的形式可以简化我们的代码。<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tr>
<th>year</th>
<th>salary</th>
</tr>
<%
for(int i = 0 ; i <=50 ; i++){
out.println("<tr>");
out.println("<td>" + i +"</td>");
int sal = 0;
if(i <= 5){
sal = 15000 + i * 150;
}else if(i > 5 && i <=10){
sal = 15000 + 1500 * 5 + 3000 * (i-5);
}else if (i > 10){
sal = 15000 + 1500 * 5 + 3000 * 5 + 3750 * (i-10);
}
out.println("<td>" + sal + "</td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
JSP的执行过程
执行过程如下图 所示:
举个例子:
JSP的基本语法
按照功能可分为以下四种
- 作用
- 在JSP中嵌入Java代码
- 语法
- <% Java代码 %>
例如
作用
- 用于声明变量或者方法
- 语法
- <%! 声明语句 %>
例如
作用
- 在JSP页面显示Java代码执行结果
- 语法
- <%= Java代码 %>
例如
作用
- 用于提供JSP执行过程中的辅助信息
- 语法
- <%@ JSP指令 %>
- 例如
- <%@ page import=”java.util.*” %>
- JSP常用处理指令
- <%@ page %>
- 定义当前JSP页面全局设置
- <%@ include %>
- 将其他JSP页面与当前JSP页面合并
- <%@ taglib %>
- 引入JSP标签库
- <%@ page %>
JSP中注释的区别
- <%— 注释 —%>
- JSP注释,该语句不执行
- //、/../
- 用于注释<%%>代码,注释的代码不执行
-
- HTML注释,被注释的语句不会被浏览器解释
JSP页面重用
我们先来看一个页面,里面至少有三大模块:header、body、footer,如下图所示:
在JSP中,可以将我们的代码按照模块分成多个JSP编写,这样更便于代码的复用,降低了代码的耦合性。例如我们在WebContent这个目录下创建一个include目录,用于存放header.jsp与footer.jsp:<%@page contentType="text/html;charset=utf-8"%>
要闻|推荐|财经|娱乐
在我们的新闻页new.jsp与视频页video.jsp中就能复用上面的代码了。<%@page contentType="text/html;charset=utf-8"%>
<hr/>
Copyright 1999-2019
<%@page contentType="text/html;charset=utf-8" %>
<%@include file="include/header.jsp" %>
<%
out.println("<h1>新闻标题</h1>");
out.println("<p>新闻正文</p>");
%>
<%@include file="include/footer.jsp" %>
<%@page contentType="text/html;charset=utf-8"%>
<%@include file="include/header.jsp" %>
<h1>视频板块</h1>
<%@include file="include/footer.jsp" %>
综合练习
列出1000以内的质数(除1以外,只能被1和自身整除的自然数)
- HTML注释,被注释的语句不会被浏览器解释
- <%— 注释 —%>
要求
- 使用List保存所有有效的质数
- 将结果打印到页面,格式为:
X是质数