浅谈JSP

目录

一、简介:

1.为什么需要JSP?

2.JSP:

3.JSP特点:

4.JSP运行要求:

5.JSP的执行过程:

6.JSP的转译过程:

 二、JSP的基本语法:

1.JSP代码块:

2.JSP构造声明块:

3.JSP输出指令:

4.JSP处理指令:

5.JSP注释:

 三、JSP页面重用:


一、简介:

1.为什么需要JSP?

因为Servlet的缺点

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

2.JSP:

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

3.JSP特点:

  • 使用简单,短时间可上手。
  • JSP将Java代码与HTML分离,降低开发难度。
  • JSP本质是Servlet 。

4.JSP运行要求:

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

例:第一个jsp页面
公司薪资制度:新入职员工:基本工资是15000元;入职5年员工:每年工资上涨基本工资的10%;入职5-10年:每年工资上涨基本工资的20%;入职10年以上:每年工资上涨基本工资的25%。要求列出工资试算表。

salary.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>

可见此时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>
		<tr>
			<td>0</td>
			<td>1500</td>
		</tr>
		<tr>
			<td>1</td>
			<td>1650</td>
		</tr>

		<!-- Java代码块 -->
		<%
			for (int i = 0; i <= 11; i++) {
				out.println("<tr>");
				out.println("<td>" + i + "</td>");
				int salary = 0;
				if (i <= 5) {
					salary = 1500 + i * 150;
				} else if (i > 5 && i <= 10) {
					salary = 1500 + 150 * 5 + 300 * (i - 5);
				} else if (i > 10) {
					salary = 1500 + 150 * 5 + 300 * 5 + 375 * (i - 10);
				}
				out.println("<td>"+salary+"</td>");
				out.println("</tr>");
			}
		%>
	</table>
</body>
</html>

5.JSP的执行过程:

6.JSP的转译过程:
 

 二、JSP的基本语法:

  • JSP代码块
  • JSP构造声明块
  • JSP输出指令
  • JSP处理指令

1.JSP代码块:

  • 用于在JSP中嵌入Java代码。
  • 语法:<% java代码 %>
  • 如:<%System.out.println("Hello!"); %>

注意System.out.println是向Java的控制台输出,而out.println是向当前页面输出。

2.JSP构造声明块:

  • 应用声明变量或方法。
  • 语法:<%! 声明语句 %>
  • 如:<%! public int add(int a,int b){return a+b; %>

3.JSP输出指令:

  • 用于在JSP页面显示java代码执行结果。
  • 语法:<%= java代码 %>
  • 如:<%= "<b>"+name+"</b>" %>  ,相当于out.println的简写。

4.JSP处理指令:

  • 用于提供JSP执行过程中的辅助信息。
  • 语法:<%@ jsp指令 %>
  • 如:<%@ page import="java.util.*" %>
  • JSP常用处理指令:
指令用法
<%@ page %>定义当前JSP全局设置
<%@ include %>将其他JSP页面和当前JSP页面合并
<%@ taglib %>引入JSP标签库

5.JSP注释:

  • <%--注释--%>  JSP注释,被注释语句不做任何处理。
  • //注释 /*注释*/  用于注释<%%>java代码块,被注释代码不执行。
  • <!--注释-->  HTML注释,被注释语句不会被浏览器解释。

 例:质数算法

要求:列出1000内的质数。使用List存储所有有效的质数。将结果打印到页面,格式为:<h1>X是质数</h1>   。

<%@page import="java.util.*" contentType="text/html;charset=utf-8"%>
<%!boolean isPrime(int x) {
		boolean flag = true;
		for (int j = 2; j < x; j++) {
			if (x % j == 0) {
				flag = false;
				break;
			}
		}
		return flag;
	}
%>
<%
	List<Integer> prime = new ArrayList();
	//0和1不是质数
	for (int i = 2; i <= 1000; i++) {
		boolean flag = isPrime(i);
		if (flag == true) {
			prime.add(i);
		}
	}
%>
<%
	for (int m : prime) {
		/* out.print("<h1>" + m + "是质数</h1>"); */
%>
<h1 style="color: green"><%=m%>是质数</h1>
<%
	}
%>

 

 三、JSP页面重用:

例:

<%@ page contentType="text/html; charset=utf-8"%>
<%@include file="include/header.jsp"%>
<%
	out.println("<h1>新闻标题</h1>");
	out.println("新闻正文");
%>
<%@include file="include/footer.jsp"%>

header.jsp:

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

footer.jsp:

<%@ page contentType="text/html; charset=utf-8"%>
<hr>
Copyright 2000-2021

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值