一.EL和JSTL
(1)EL中的隐式对象
1>与范围有关的隐式对象包含以下四个:pageScope、requestScope、sessionScope和applicationScore 前提是要想调用这四个隐式对象来获取属性值,首先你得先把相关信息放到一个作用域中。
例如:request.setAttribute("username",username);
2>与输入有关的作用域有两个:param和paramValues。
其中param就相当于request.getParameter();而paramValues是用来获取一个集合,即获取过来的值是多个的时候应该调用该方法。
3>其他隐式对象
例如cookie、header和herderValues、initParam、pageContext等
(2)JSTL
1> 要想使用JSTL,必须得满足两个条件:
一:首先要导入两个Jar包(jstl.jar和standard.jar)
二:还得必须添加Taglib指令
例如:<%@ taglib uri="http://java.sum.com/jsp/jstl/core" prefix="c"%>
其中uri是路劲,而其中的prefix是别名,可以随便起
2>JSTL标签库包括:核心标签库(core)、格式标签库、SQL标签库以及XML标签库,其中核心标签库最重要。
3>核心标签库又分为:
表达式操作(out、set、remove、catch)、流程控制(if、choose when otherwise)、迭代操作(forEach、forTokens)、URL操作(import、URL、redirect)
其中表达式操作:<c:out>标签,用于显示输出结果
<c:out value="value" [escapeXml="true/false"][default="defaultValue"]>
属性介绍:value属性,即输出的内容
escapeXml可选属性,控制输出内容是否应该进行转义。
deafult可选属性,如果指定了default属性,那么当value属性值为空或者NULL时,将会输出default中的值
<c:set>标签,用来存储值
<c:set value-"value" var="varName" scope="page/request/session/application">
属性介绍:value属性即指定变量的值
scope属性指定了变量的作用域范围(默认为page)
var属性即指定了变量的名称
<c:remove>标签,用来删除限制了作用域的变量
<c:remove var="varName" [scope="page/request/session/application"]>
属性介绍:var属性指定了待删除变量的名称
scope属性指定了待删除变量来自哪个作用域
<c:catch>标签,异常处理
流程控制:<c:if>标签,即if表达式不过此标签没有else
<c:if test="testCondition" var="varName" scope="page/requset/session/application"></c:if>
属性介绍:test属性:即表达式的条件,其求出结果为ture/false
var属性:指定了限制作用于的变量的名称
scope属性:指定了var变量的作用域
<c:choose>标签
<c:choose>
<c:when test=""></c:when>
....
<c:otherwise></c:otherwise>
</c:choose>
属性介绍:其中<c:choose>用于条件选择,<c:when>相当于<c:choose>的一个分支(可以有多个),<c:otherwise>代表了条件的最后一个选择。(只能有一个)。
迭代操作:<c:forEach>标签支持两种不同的样式的迭代:
<c:forEach var="varName" begin="begin" end="end" step="step"></c:forEach>
其中begin指的是从几开始,end表示从几结束,step表示每次加多少。这个表达式就相当于JAVA中的for(int i=0;i<??;i++){}这种形式
<c:forEach items="" var=""></c:forEach>
其中items属性值是一个集合,var属性指定集合的名称。相当于JAVA中的foreach;
<c:forTokens>标签,可以指定一个或多个分隔符
<c:forTokens items="" delims="" var=""></c:forTokens>
属性介绍:items表示集合,delims表示根据什么来分隔,var属性用来指定集合的名称。
URL操作:<c:import>标签、<c:redirect>标签、<c:url>标签
二.Servlet基础
1.Servlet是一种服务器端的JAVA应用程序,它是持久的、快速的、与平台无关、可扩展的
2.Servlet开发步骤
1>创建一个类,继承与javax.servlet.http.HttpServlet
2>重写service方法或者doGet/doPost方法、
3>在web.xml中配置servlet
3.Servlet生命周期
1>加载并实例化
2>初始化(init方法)
3>请求处理(doGet或doPost方法)
4>服务终止(destroy方法)
以下是具体Servlet生命周期的具体图: