A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


一: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>




2 个回复

正序浏览
看一看。
回复 使用道具 举报
奈斯
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马