整体介绍

◆了解JSP的用途 ◆了解JSP执行原理 ◆掌握JSP基本语法

JSP入门

Servlet开发的痛点

需要一行行输出,工作繁琐,任务量大

Servlet的缺点

◆静态HTML与动态Java代码混合在一起,难以维护 ◆Servletz利用out.println()语句输出,开发效率低下 ◆Eclipse很难在开发过程中发现错误,调试困难

JSP介绍

◆JSP全称是(Java Server Pages),Java服务器页面 ◆JSP是J2EE的功能模块,由Web服务器执行 ◆JSP的作用就是降低动态网页开发难度

JSP的特点

◆JSP使用简单,短时间学习便可上手使用 ◆JSP可将Java代码与HTML分离,降低开发难度 ◆JSP的本质就是Servlet

JSP的运行要求

◆可正常运行的Tomcat ◆所有JSP页面扩展名必须是.jsp ◆JSP页面应放在Web应用程序目录下

案例

公司薪资制度 新入职员工:基本工资1500元 工作5年内员工:每年工资上浮基本工资的10% 工作5-10年员工:每年工资上浮基本工资的20% 工作10年以上:每年工资上浮基本工资的25% 要求列出工资试算表。

在Web文件下新建salary.jsp

<!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 <=10 ; i++){
				out.println("<tr>");
				out.println("<td>" + i +"</td>");
				int sal = 0;
				if(i <= 5){
					sal = 1500 + i * 150;
				}else if(i > 5 && i <=10){
					sal = 1500 + 150 * 5 + 300 * (i-5);
				}else if (i > 10){
					sal = 1500 + 150 * 5 + 300 * 5 + 375 * (i-10);
				}
				out.println("<td>" + sal + "</td>");
				out.println("</tr>");
			}
		%>
	</table>
</body>
</html>

<%></%>表示起始与结束位置

访问(http://localhost:8080/FirstServlet/salary.jsp)

插入java代码,就可以自动为我们计算出所有结果,而不需要我们手敲计算

JSP的执行过程

可以看出,比servlet多了一步转译过程

JSP的转译过程

JSP的基本语法

◆JSP语法十分简单,按功能可分为以下四种 1.JSP代码块 2.JSP声明构造块 3.JSP输出指令 4.JSP处理指令

JSP代码块

◆JSP代码块用于在JSP中嵌入Java代码 ◆JSP代码块语法。<%java代码%> ◆例如:<%System.out.println(“Hello World!”);%> System.out.println是向java控制台输出,而out.println是向当前页面进行输出

JSP声明构造块

◆JSP声明构造块用于声明变量或方法 ◆JSP声明构造块语法:<%!声明语句%> ◆例如:<%!public int add(int a,int b){return a+b}%>

JSP输出指令

◆JSP输出指令用于在JSP页面中显示ava代码执行结果 ◆JSP输出指令语法:<%=java代码%> ◆例如:<%=“<b>“+name+“<b>”%>

JSP处理指令

◆JSP处理指令用于提供JSP执行过程中的辅助信息 ◆JSP处理指令语法:<%@jsp指令%> ◆例如:<%@page import=“java.util.*”%>

JSP常用处理指令

◆<%@page%>定义当前SP页面全局设置 ◆<%@include%>将其他JSP页面与当前JSP页面合并 ◆<%@taglib%>引入JSP标签库

JSP中注释的区别

◆<%—注释—%>SP注释,被注释语句不做任何处理 ◆//、/../用于注释<%%>中java代码,被注释代码不执行 ◆<!—htmlHTML注释,被注释的语句不会被浏览器解释

JSP页面重用

当选择另一篇文章时,只需要网页主体内容改变,不需要页眉页脚改变 页面简写代码如下: 在WEB文件夹新建news.jsp

<%@page contentType="text/htmL;charset=utf-8"%>
要闻|推荐|财经|娱乐
<%
out.println("<h1>新闻标题<h1>");
out.println("<p>新闻正文<p>");
%>
<hr/>
Copyright 1999-2018

然后访问

当我们写另外一篇文章是,不需要重新复制粘贴页眉页脚 在WEB文件夹新建文件夹include

在include文件夹中新建header.jsp

<%@page contentType="text/html;charset=utf-8"%>
要闻|推荐|财经|娱乐

同理继续新建footer.jsp

<%@page contentType="text/html;charset=utf-8"%>
<hr/>
Copyright 1999-2019 这里验证修改2018->2019

最后将news.jsp文件改为:

<%@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" %>

输入网址访问,结果