1.jsp执行步骤
1.1 每一个jsp其中就是一个servlet实例
1.2 jsp生产的源代码 放置有Tomcat 的安装目录下:F:\tomcat\work\Catalina\localhost
1.3 生产的Index.jsp文件目录:F:\tomcat\work\Catalina\localhost\jndi\org\apache\jsp
2.Jsp中三大指令的用法
2.1 page指令的用法
<%@ page language="java" import="java.util.*" pageEncoding="gbk" %>
<%@ page contentType="text/html;charset=GBK"%>
2.2 include
<%@ include file="include.jsp"%> 运行时加载该页面
2.3 taglib
uir标签库地址 和 prefix标签前缀
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> == <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3 脚本元素
小脚本:<% %> 在java中使用小脚本的需遵循java语法规则
表达式:<%=java表达式%> 计算结果一字符串的形式显示在页面中
声明: <%! String name;
int age
%>
4 jsp标准动作
<jsp:标记名称 属性名1=属性值1...属性值n=属性值n/>
常用的jsp标准动作标签
<jsp:usebean>
<jsp:setProperty>
<jsp:getProperty>
<jsp:include>
<jsp:param>
<jsp>
<jsp:usebean>
<jsp:usebean id="bean对象的名字" calss="bean的类路径" scope="作用域"/>
<jsp:setProperty name="computer" property="manufacturer" value="lenovol"/>
语法中的value属性不仅可以是常量也可以是表达式,如:EL表达式
<jsp:getProperty name= "beanName" property="propertyName" />
<jsp:include page= "URL" flush= "true|false"/> flush 是否清空主页面的输出流
4.1 include指令元素和include标准动作的区别:
4.2 include 指令元素是在jsp页面翻译过程中执行的,在翻译的过程中同时进行合并文件
4.3 include 标准动作是在处理用户请求的时候才执行的,翻译阶段不进行文件合并。
<jsp:param>
<jsp:param name="paramName" value="paramValue"/>
<html>
<body>
<jsp:include page="header.jsp">
<jsp:param name="username"> value="xiaoWang" />
<jsp:param name="sex" value="男"/>
</jsp:include>
</body>
</thml>
<jsp:forward>
<jsp:forward page="/pages/errorPage.jsp"/>
<jsp:forward page="<%=session.getAttribute("errorPage")%>">//动态加载一个页面
<jsp:forward page="/pages/errorPage.jsp">
<jsp:param name="errMsg" value="传递的参数不正确!"/>
</jsp:forward>
5 jsp页面注释
5.1
<!--HTML注释(客服端可以看到源代码)-->
<%--JSP注释(客户端不可以看到源代码)--%>
5.2
jsp脚本中使用的注释
<% //单行注释 %> <% /*多行注释 */%>
6 jsp 9大内置对象
7 jsp 4大表示范围对象
8 el表达式
8.1 特点:1.自动装换数据类型
2.使用简单
8.2 语法:
${el 表达式}
点操作符:
${employee.computer} //获得对象的属性
${empoloyee.computer.manufactuere} //获得属性信息
[]操作符
${employee["computer"]}
${computer["manifactere"]}//获得电脑厂商的信息
8.3 例子:
<body>
<%
Map names = new HspMap();
names.put("one","liyang");
names.put("tow","WangHua");
request.setAttribute("names",names);
%>
姓名:${names.one}<br />
姓名:${names["two"]}<br />
</body>
9 内置对象
9.1 隐式对象
9.2 作用域反问对象 pageScope requestScope sessionScope applicationScope
9.3 参数访问对象 param paramValues
9.4 jsp 隐式对象 pageContext
10 jstl标签
业务逻辑的处理 jsp的标准标签库
使用jstl标签的步骤:
10.1.在工程中引用JSTL的两个jar包和标签库描述符文件也就是.tld文件
10.2.jsp页面上使用taglib指令导入标签库描述符文件
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
10.2.1.通用
1<c:set>定义变量
1>存在在变量中
<c:set var="variable" value="v" scope="page"/>
分别对应变量 名 值 作用域(page request session application)
2>将value存储到某一对象的属性中
<c:set value="value" target="target" property="property" />
value 给对象赋值
property 属性对应对象的属性名
target属性是指操作的对象,可以使用el表达式
2.<c:remove var="value" scope"scope" />删除指定范围内的变量
3.<c:out value="value" />
<c:out value="${requestScope.userName}"/>
<c:out value="value" default/>
<c:out value="${requestScope.userName}" default="xiaowang">
10.2.2.迭代
10.2.3.条件