文章目录
Servlet的缺点
静态HTML与动态Java代码混合在一起,难以维护
Servlet利用out.println()语句输出,开发效率低下
Eclipse很难在开发过程中发现错误,调试困难
JSP介绍
JSP(Java Server Page),Java服务器页面
JSP是J2EE的功能模块,由Web服务器执行
JSP的作用就是降低动态网页开发难度
JSP的特点
JSP使用简单,短时间学习便可上手使用
JSP可将Java代码与HTML分离,降低开发难度
JSP的本质就是Servlet
JSP的运行要求
可正常运行的Tomcat
所有JSP页面扩展名必须是.jsp
JSP页面应放在Web应用程序目录下
写一个JSP页面
案例描述:
新入职员工:基本工资1500元
工作5年内员工:每年工资上浮基本工资的10%
工作5-10年内员工:每年工资上浮基本工资的20%
工作10年以上:每年工资上浮基本工资的25%
要求列出工资试算表。
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<=50;i++){
out.println("<tr>");
out.println("<td>"+i+"</td>");
double sal=0;
if(i<=5)
sal=1500+i*1500*0.1;
else if(i>5&&i<=10)
sal=1500+5*1500*0.1+1500*0.2*(i-5);
else if(i>=10)
sal=1500+5*1500*0.1+1500*0.2*5+1500*0.25*(i-10);
out.println("<td>"+sal+"</td>");
out.println("</tr>");
}
%>
<tr>
<td>0</td>
<td>1500</td>
</tr>
<tr>
<td>1</td>
<td>1650</td>
</tr>
<tr>
<td>2</td>
<td>1800</td>
</tr>
</table>
</body>
</html>
JSP执行过程
多一个转译的过程将JSP转为servlet,JSP的本质就是Servlet
JSP基本语法
- JSP代码块
- JSP声明构造块
- JSP输出指令
- JSP处理指令
JSP代码块
用于在JSP中嵌入Java代码
语法:<%java代码%>
例如:<%System.out.println(“Hello World!”);%>
JSP声明构造块
用于声明变量或方法
语法:<%!声明语句%>
例如:<%!public int add(int a,int b){return a+b;}%>
JSP输出指令
用于在JSP页面中显示java代码执行结果
语法:<%=java代码%>
例如:<%=“<b>”+name+“</b>”%>
JSP处理指令
用于提供JSP执行过程中的辅助信息
语法:<%@jsp指令%>
例如:<%@page import="java.util."%> 在当前页面导入java.util.
<%@page%> 定义当前JSP页面全局设置
<%@include%> 将其他JSP页面与当前JSP页面合并
<%@taglib%> 引入JSP标签库
JSP中注释的区别
<%–注释%> JSP注释,被注释语句不做任何处理
//、/*…*/ 用于注释<%%>java代码,被注释代码不执行
<!–html–>HTML注释,被注释的语句不会被浏览器解释
使用JSP语法小练习:输入2-1000的质数
<%@page import="java.util.*,java.text.*" contentType="text/html;charset=utf-8" %>
<%!
boolean isPrime(int num){
boolean flag=true;
for(int j=2;j<num;j++){
if(num%j==0){
flag=false;
break;
}
}
return flag;
}
%>
<%
List<Integer> primes = new ArrayList();
for(int i =2;i<=1000;i++){
boolean flag=isPrime(i);
if(flag==true){
primes.add(i);
}
}
%>
<%
for(int p:primes){
//out.println("<h1>"+p+"是质数</h1>");
%>
<h1 style="color:blue;"><%=p %>是质数</h1>
<%
}
%>
JSP页面重用
将页头和页脚拆分出来单独引用
在include文件夹下存放heater.jsp和footer.jsp
include/header.jsp
<%@page contentType="text/html;charset=utf-8" %>
要闻|推荐|财经|娱乐
include/footer.jsp
<%@page contentType="text/html;charset=utf-8" %>
Copyright 1999-2021
news.jsp
<%@page contentType="text/html;charset=utf-8" %>
<%@include file="include/header.jsp" %>
<%
out.println("<h1>新闻标题</h1>");
out.println("<p>新闻正文</p>");
%>
<hr/>
<%@include file="include/footer.jsp" %>