JSP语法

一.JSP基本知识
1.JSP 就是 servlet
2.JSP 在项目中一般充当显示组件,与Servlet配置使用
3.JSP是自动部署的Servlet


二.JSP执行原理——JSP 中的语法
1.JSP中可以写 HTML标签,JS,CSS等,这些信息直接输送到浏览器,
 在浏览器端执行服务器不执行任何的 HTML标签,JS,CSS
2.注释
(1)html注释<!-- 注释 -->会原样发送到客户端
(2)JSP注释<%-- 注释 --%>在服务器端被编译掉,不会发送到客户端,用于处理隐私注释。
3.JSP表达式
(1)语法<%= 表达式 %>输出表达式计算结果到页面
(2)翻译语法为:out.print(表达式)
(3)在服务器上执行,将结果发送到客户端
4.JSP脚本
(1)语法规则:<%  %>
(2)用于在JSP对应的方法中声明java语句
(3)在服务器上执行
5.JSP声明
(1)用于声明"方法""实例变量"等
(2)解析到Servlet的类中
(3)语法<%! 声明内容 %>
6.JSP指令
(1)语法:<%@ 指令名 属性=值%>
(2)<%@ page %> page指令:用于导包、设置页面属性
(3)<%@ include file="url" %> 包含指令

(4)<%@ taglib %> 标签指令(导入jstl包,1.2版本):*.tld,实现Tag接口的类

<c:forEach var="i" begin="1" end="5" step="1"><p>第${i}次</p></c:forEach>
<c:forEach var="n" items="${names}" varStatus="stat"><p>第${stat.index}个:${n}</p></c:forEach>
<c:forEach items="${users}" var="user"><tr><td>${user.id}</td></tr></c:forEach>
<p>价格:<fmt:formatNumber value="${price}" pattern="RMB###,###.00"/></p>
<p>今天日期:<fmt:formatDate value="${d}" pattern="yyyy-MM-dd HH:mm:ss"/></p>

注意:所有JSP语法都在服务器上运行,而HTML/CSS/JS脚本发送到浏览器,在浏览器端执行


demo.jsp:

<%@page import="java.util.HashMap"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP语法</title>
</head>
<body>
	<h1>这是一个JSP页面</h1>
	<%=this.getClass()%>
	<!-- HTML注释测试 -->
	<%--JSP注释测试 --%>
	<input type="button" οnclick="alert('Hello!')" value="test">
	
	<!-- JSP脚本 -->
	<%
		java.util.HashMap map = new HashMap();
	map.put("title","十八岁给我一个姑娘");
	%>
	
	<%--JSP 表达式 --%>
	<h2><%="标题"+map.get("title") %></h2>
	<p><%=34762%20 %></p>
	
	<h2>JSP 脚本和HTML混合使用</h2>
	<ul>
		<%for(int i=0;i<10;i++){%>
			<li>列表项目 <%=i %></li>
		<%} %> 
	</ul>
	
	<h2>JSP 声明</h2>
	<p>用于声明类中的方法,属性,内部类等</p>
	<%!
		//在Servlet中声明类的属性,方法等
		double test(int a,int b){
			return Math.sqrt(a*a+b*b);
	}
	%>
	<p>当a=3,b=4时候 c=<%=test(3,4) %></p>
	<p>当a=6,b=8时候 c=<%=test(6,8) %></p>
</body>
</html>

page.jsp:


<%@ page 
	import="java.util.Map,java.util.HashMap"
	language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>page指令</title>
</head>
<body>
	<h1>这是一个JSP</h1>
	<%
		Map map = new HashMap();
		map.put("title", "见或不见");
	%>
	<h2>又买了一本仓央嘉措的书:
		<%=map.get("title") %>
	</h2>
</body>
</html>

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首页</title>
</head>
<body>
	<%@ include file="/WEB-INF/nav.jsp" %>
	<h1>首页页面</h1>
	<p>首页内容,为了演示include指令</p>
	<%@ include file="/WEB-INF/footer.jsp" %>
</body>
</html>

nav.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- /WEB-INF/nav.jsp -->
<nav>
		首页 产品 我们的优势 关于我们
</nav>

footer.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- /WEB-INF/footer.jsp -->
<footer>
		版权所有,盗版必究
</footer>

taglib.jsp:

<%@page import="java.util.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>taglib标签指令</title>
</head>
<%
	Map map = new HashMap();
	//map.put("type","电影控");
	request.setAttribute("map",map);
%>
<body>
	<h1>标签和表达式</h1>
	<p>用户的类型是:<%=map.get("type") %></p>
	<p>用户购买商品:<%=map.get("product") %></p>
	<h1>JSTL的使用</h1>
	<p>用户的类型:<c:out value="${map.type['class']}"/></p>
</body>
</html>

jstl.jsp:


<%@ page import="java.util.*" language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>演示JSTL</title>
</head>
<body>
	检查当前JSP对象:<%=this.getClass() %>
	<h1>JSTL核心标签案例</h1>
	<p>out 标签<c:out value="Hello World!"></c:out></p>
	<%
		request.setAttribute("tag", "<a>link</a>");
	%>
	<p>对输出数据进行实体替换:
		<c:out value="${tag}" escapeXml="true"></c:out></p>
		
	<h2>set 标签</h2>
	<p>set 用于设置值</p>
	<c:set var="str" value="Hello World!"></c:set>
	<p>str=${str}</p>
	<p>可以将一组标签设置为变量</p>
	<c:set var="template"><a>demo</a></c:set>
	<p><c:out value="${template}" escapeXml="true"/>的显示结果:${template}</p>
	
	<h2>if 流程控制</h2>
	<p>处理满足条件时候的输出</p>
	<c:set var="name" value="熊大"></c:set>
	<c:if test="${name eq '熊大' }">
		<p>臭狗熊那里跑!</p>
	</c:if>
	
	<h2>多路分支</h2>
	<p>choose 选择,otherwise其他,when当...时候</p>
	<c:choose>
		<c:when test="${name eq '熊大' }"><p>找的就是你!</p></c:when>
		<c:when test="${name eq '熊二' }"><p>你家老大呢?</p></c:when>
		<c:otherwise><p>没有熊出没</p></c:otherwise>
	</c:choose>
	
	<h2>循环控制</h2>
	<p>for循环,可以实现两种功能:计次循环,遍历循环</p>
	<c:forEach var="i" begin="1" end="5" step="1">
		<p>第${i}次</p>
	</c:forEach>
	<%
		List list = new ArrayList();
		list.add("Tom");
		list.add("Andy");
		list.add("Jerry");
		request.setAttribute("names",list);
	%>
	<p>varStatus定义循环状态变量stat</p>
	<c:forEach var="n" items="${names}" varStatus="stat">
		<p>第${stat.index}个:${n}</p>
	</c:forEach>
	
	<h2>导入标签</h2>
	<p>用于导入页面组件</p>
	<c:import url="/WEB-INF/footer.jsp"></c:import>
	
	<h1>fmt标签,格式化标签</h1>
	<h2>格式数字输出</h2>
	<%
		request.setAttribute("price",3.14159);
	%>
	<p>价格:
		<fmt:formatNumber value="${price}" pattern="RMB###,###.00"/>
	</p>
	
	<h2>日期格式化</h2>
	<%
		request.setAttribute("d",new java.util.Date());
	%>
	<p>今天日期:
		<fmt:formatDate value="${d}" pattern="yyyy-MM-dd HH:mm:ss"/>
	</p>
</body>
</html>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linsa_pursuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值