JSP入门
第1章 JSP概述及执行流程
1-1 JSP入门
❤.了解JSP的用途
❤.JSP的执行原理
❤.JSP的语法
Servlet的缺点
❤.静态HTML与动态Java代码混合在一起,难以维护
❤.Servlet利用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应用程序目录下
案例描述:
公司薪资制度:
1.新入职员工:基本工资1500元
2.工作5年内员工:每年工资上浮基本工资的10%
3.工作5-10年员工:每年工资上浮基本工资的20%
2.工作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>1500</td>
</tr>
<tr>
<td>1</td>
<td>1650</td>
</tr>
<tr>
<td>2</td>
<td>1800</td>
</tr>
<tr>
<td>3</td>
<td>1950</td>
</tr>
<tr>
<td>4</td>
<td>2100</td>
</tr>
<tr>
<td>5</td>
<td>2250</td>
</tr>
<tr>
<td>6</td>
<td>2550</td>
</tr>
<tr>
<td>7</td>
<td>2850</td>
</tr>
<tr>
<td>8</td>
<td>3150</td>
</tr>
<tr>
<td>9</td>
<td>3450</td>
</tr>
<tr>
<td>10</td>
<td>3750</td>
</tr>
<tr>
<td>11</td>
<td>4125</td>
</tr>
</table>
</body>
</html>
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>");
int sal = 0;
if (i <= 5) {
sal = 1500 + i * 150;
} else if (i > 5 && i <= 10) {
sal = 1500 + 5 * 150 + 300 * (i - 5);
} else if (i > 10) {
sal = 1500 + 5 * 150 + 5 * 300 + 375 * (i - 10);
}
out.println("<td>" + sal + "</td>");
out.println("</tr>");
}
%>
</table>
</body>
</html>
1-2 JSP执行过程
admin.jsp文件被web服务器接收以后,会转换为Servlet源文件,就是admin_jsp.java文件,随后就会编译产生admin_jsp.class,所以最终生成的是.class文件
第2章 JSP基本语法
2-1 JSP基本语法
♦.JSP语法十分简单,按功能可分为以下四种
1.JSP代码块
○.JSP代码块用于在JSP中嵌入Java代码
○.JSP代码语法:<%java代码%>
○.例如:<%System.out.println("Hello World!");%>
2.JSP声明构造块
○.JSP声明构造块用于声明变量或方法
○.JSP声明构造块语法:<%!声明语句%>
○.例如:<%!public int add(int a,int b){return a+b;}%>
3.JSP输出指令
○.JSP输出指令用于在JSP页面中显示java代码执行结果
○.JSP输出指令语法:<%= java代码 %>
○.例如:<%= “<b>” + name + "</b>"%>
4.JSP处理指令
○.JSP处理指令用于提供JSP执行过程中的辅助信息
○.JSP处理指令语法:<%@jsp指令%>
○.例如:<%@page import="java.util.*"%>
JSP常用处理指令
○.<%@page%>
定义当前JSP页面全局设置
○.<%@include%>
将其他JSP页面与当前JSP页面合并
○.<%@taglib%>
引入JSP标签库
JSP中注释的区别
○.<%-- 注释 --%>
JSP注释,被注释语句不做任何处理
○.//、/*..*/
用于注释<%%>java代码。被注释代码不执行
○.<!-- html -->
HTML注释,被注释的语句不会被浏览器解释
注意:HTML注释和JSP注释不同,JSP注释不会做任何处理;
而JSP中的HTML注释仍然会被执行,但之后不会被浏览器解释;
2-2 JSP综合训练
综合训练:质数算法
列出1000内的质数(除1以为,只能被1和自身整除的自然数)
要求1:使用List保存所有有效的质数
要求2:姜结果打印到页面,格式为“<h1>X是质数</h1>
”
<%@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){
//out.println("<h1> " + i + "</h1>");
primes.add(i);
}
}
%>
<%
for(int p : primes){
//out.println("<h1>" + p + "是质数</h1>");
%>
<h1 style="color:red;"><%=p %>是质数</h1>
<%
}
%>
第3章 JSP页面重用
3-1 JSP页面重用
实例:
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" %>
include/header.jsp代码:
<%@page contentType="text/html;charset=utf-8"%>
要闻|推荐|财经|娱乐
include/footer.jsp代码:
<%@page contentType="text/html;charset=utf-8"%>
<hr/>
Copyright 1999-2019