一:JSP 
概述:JSP全名为Java Server Pages,中文名叫java服务器页面,其本质是一个简化的Servlet 设计,它是由Sun 公司倡导、许多公司 
          参与一起建立的一种动态网页 技术标准。其实就是一个既能书写Servlet代码又能书写HTML代码的文件。 
1.jsp中书写java代码的方式: 
     1)脚本片段指的是一段java代码。书写格式:<%  java 代码    %>  
[Java] 纯文本查看 复制代码 <%--[/size][/font]
[font=微软雅黑][size=3]    response.getWriter().println()任意数据
    response.getWriter().write//只能输出字符  字符数组 字符串
--%>
<%
    response.getWriter().println("hello itcast");
    response.getWriter().write(65);
%>      2)脚本声明的格式:<%! 书写Java代码 %> 
[Java] 纯文本查看 复制代码 <%!
    int num = 10;
    public void method(){}
%> 
     3)脚本表达式的格式:<%= 内容 %>     等价于:out.print(内容) 
[Java] 纯文本查看 复制代码 <%="传智播客"%>  
 
 
 
 
二:EL表达式 
1.语法格式:${表达式内容}  
JSP的四大域对象指的是:page域,request域,session域,application域。我们通常使用EL表达式从这4个域对象用取值。 
域对象 对象名称 说明  
page域pageScopepage域指的是当前JSP页面,其中存储的数据只在当前页面有效 
request域requestScoperequest域:一次请求或请求链中request域 
session域sessionScopesession域:一次会话过程中,session域 
application域applicationScopeapplication域:服务启动后整个项目对应的ServletContext域 
 
2.EL表达式从四大域中取值 
域对象 取值方式  
page域${pageScope.xxx} 
request域${requestScope.xxx} 
session域${sessionScope.xxx} 
application域${applicationScope.xxx} 
 
 
3.EL表达式支持: 
    算数运算符,${a+b}     关系运算符,${a==b}//同时也可以用${a eq b}     eq,ne,lt,gt,le,ge依次代表==,!=,<,>,<=,>=     逻辑运算符,${a&& b}或${a and b},|| or,! not     条件运算符,${a ?b:c}     empty运算符,${empty a},变量a不存在返回true。  
[HTML] 纯文本查看 复制代码 <body>
<%
    request.setAttribute("n1",40);
    request.setAttribute("n2",30);
    request.setAttribute("n3","20");
    request.setAttribute("n4","10");
%>
算数运算:<br>
n1+n2:${n1 + n2}<br>
n3-n4:${n3-n4}<br>
n2*n3:${n2 * n3}<br>
关系运算符:<br>
n1==n2:${n1==n2}<br>
n3>=n4:${n3>=n4}<br>
n1!=n2:${n1 ne n2}<br>
逻辑运算符:<br>
false && true:${false && true}<br>
false || true:${false || true}<br>
!false:${!false}<br>
<%--
 表达式1?表达式2:表达式3
--%>
三元运算符:<br>
${n1>=n2?"正确":"错误!"}<br>
<%--
empty:
Stirng str=""
Student student=null;
List<> list = new ArrayList<>;
list.size()=0
--%>
<%
    String str = "";
    Student student=null;
    List<String> list = new ArrayList<>();
%>
empty:<br>
${empty str}<br>
${empty student}<br>
${not empty list}<br>
</body> 
 
 
 
 
三、JSTL标签库 
1.核心库 
标签名称 作用  
通常用于输出一段文本内容到客户端浏览器  
用于设置各种Web域中的属性  
用于删除各种Web域中的属性  
用于捕获嵌套在标签体中的内容抛出的异常  
用户java代码if(){}语句功能  
用于指定多个条件选择的组合边界,它必须与c:when和c:otherwise标签一起使用  
用户代替java代码for循环语句  
用户迭代操作String字符  
给请求路径添加参数  
重写url,在请求路径添加sessionid  
用于在JSP页面中导入一个URL地址指向的资源内容  
用于将当前的访问请求转发或重定向到其他资源  
2.jstl需要的引入 
[Java] 纯文本查看 复制代码 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
3.常用JSTL标签 <c:out> 用来显示数据的内容,可直接用EL表达式 <c:out value=”value”default=”default value”/> <c:set> 可以在page、request、session、application等范围内设置一个变量 <c:set value="value" var="varName" scope="page/request/session/application">  如:<c:setvalue="黑马程序员" var="a" scope="session"> 相当于:<%session.setAttribute("a",黑马程序员)%> 设置JavaBean的属性必须使用target属性进行设置: <c:set value="value" target="JavaBean=" property="propertyName">  
 <c:remove> 删除某个变量 <c:remove var="varName" scope="session"/> 相当于<%session.remmoveAttribute("varName")> 流程控制标签 <c:if> <c:if test="表达式">主体内容</c:if>  
 <c:choose><c:when><c:otherwise> 可以实现if/elseif/else的功能,如: [Java] 纯文本查看 复制代码 <c:choose>
<c:whentest=”表达式1”>主体内容</c:when>
<c:whentest=”表达式2”>主体内容</c:when>
<c:otherwise>else内容</c:otherwise>
</c:choose>  
 <c:forEach> 实现for循环 [Java] 纯文本查看 复制代码 <c:forEach var=”item” items=”Collectionsor Arrays”>
循环体
</c:forEach>
  
  
 
 
 
 |