day_48_JSP

JSP—java server pages

作用:代替servlet程序回传html页面数据

//因为servlet操作非常繁琐,需要一行一行write出来
//而且还需要在java代码里写html代码,极其恶心.

1. jsp本质上是一个servlet文件,第一次编译时,会当成java源文件去编译生成字节码文件.也就是说,被翻译出来的java文件继承了HttpServlet类.

在这里插入图片描述

2. 表达式脚本

格式:<%= 表达式%>
表达式脚本会被翻译到——jspService方法中
* 语句不能以分号结尾
直接输出内容,输出在前端界面上

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBZnUiAN-1616070689192)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20210120223014610.png)]

3. 代码脚本

<%
	for(int i = 0;i<10;i++){
		sout(i);
	}
%>

里面啥都能写,java代码
代码脚本里可以书写任意的 java 语句。 
代码脚本的内容都会被翻译到 service 方法中。 
所以 service 方法中可以写的 java 代码,都可以书写到代码脚本中


还可以分裂写,和表达式脚本一起用:(超级灵活)

在这里插入图片描述
在这里插入图片描述

4. 四个域对象

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ijUHx83W-1616070689209)(C:\Users\HP\AppData\Roaming\Typora\typora-user-images\image-20210121092159654.png)]
优先顺序从小到大

5. 静态包含(可将重复代码赋值过来)

<%--//静态包含,将其他文件的全部内容复制到此文件--%>
<%@include file="a.html"%>
<%--路径为工程名下web文件下的目录--%>

6. 动态包含可以传递参数

在这里插入图片描述

7. 转发标签

在这里插入图片描述

 //将stu发送
req.setAttribute("std",stu);
 //请求转发至       
req.getRequestDispatcher("b.jsp").forward(req,resp);
<%
    //接收参数
    ArrayList<Student> stu = (ArrayList<Student>) request.getAttribute("std");
%>

8. EL表达式 Expression Lauguage

EL表达式主要是代替jsp页面中的表达式脚本在jsp页面中进行数据的输出.

因为EL表达式输出数据比之前要简洁很多

格式:

${表达式}
输出null时输出空值

在这里插入图片描述

获取map的值直接 .键 就可以

获取属性实际上调用的是get方法

  1. 判空

在这里插入图片描述

  1. 运算符
    特殊字符()
  • 特殊字符这样输出[ a.a.a]
    在这里插入图片描述
  1. 11个隐含对象

在这里插入图片描述

  1. 可以输出对应的域中的信息, 以键值对形式保存

在这里插入图片描述

  1. 输出各种请求信息

在这里插入图片描述

9.JSTL标签库

为了替换代码脚本,简化代码区域

使用步骤:

  1. 先导taglib.jar包

  2. 在引入标签库(会自动导入)

  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    ${pageScope.abc}<br>
    //设置某个参数值为
    <c:set scope="page" var="abc" value="123456"/><br>
    ${pageScope.abc}

    <br>

    <c:if test="${requestScope.username != null}">
        <h1>
            用户名为空
        </h1>
    </c:if>

    <br>
    <%--与swich case default一样--%>
    <c:choose>
        <c:when test="${requestScope.std != null}">
            <h1>
                用户名为admin
            </h1>
        </c:when>
        <c:when test="${requestScope.password != null}">
            <h1>
                密码为123456
            </h1>
        </c:when>
    </c:choose>
  1. foreach
    <c:forEach begin="0" end="10" var="i">
        ${i}
    </c:forEach>
<hr>

<%--foreach(int i : arr)一样 items表示源数据-,item表示循环变量--%>
<c:forEach items="${requestScope.arr}" var="item" >
    ${item}
</c:forEach>
  1. foreach遍历map
  for (Map.Entry<String,String> entry: map.entrySet()
         ) {
        System.out.println(entry);
    }
%>

<c:forEach items="${requestScope.map}" var="entry">
    ${entry}
</c:forEach>
  1. foreach属性
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值