JavaWeb-day03-JSP


JSP

什么是JSP

SP全称是Java Server Pages,是一种用来代替Servlet的技术,其本质是一个Servlet。JSP允许同时编写Java代码HTML代码,使用JSP即可以显示界面,又可以动态获取Java中数据。

JSP可以写html+el表达式+JSP脚本

JSP原理

JSP在运行会先编译成.java文件,再编译成class文件,最后再运行。jsp中的静态代码会被编译成out.write()的方式输出出来

JSP可以写什么

  1. JSP指令

    1. page指令:设置JSP页面编码、导包

      1. 导包
      <%@ page import="java.util.List" %>
      2. 设置页面编码
      <%@ page contentType="text/html;charset=UTF-8" language="java" %>
      
    2. include指令:导入其他类,静态包含

      //在当前页面引入head.jsp
      <%@ include file="head.jsp"%>
      
    3. taglib指令:导入第三方的依赖库

      //导入a依赖库,命名为c
      <%@ taglib prefix="c" uri="a" %>
      
  2. JSP脚本

    1. <% java代码%>
    2. <%= Java代码 %> 输出结果到网页
    3. <%! 声明变量/方法 %>
  3. JSP注释

    1. html注释<!-- -->:只能注释HTML代码片段
    2. jsp注释<%-- --%>:可以注释所有
  4. JSP动作

    1. 转发<jsp:forward>:访问网页a会跳转到网页b
    	<%@ page contentType="text/html;charset=UTF-8" language="java" %>
    	<html>
    	<head>
    	    <title>Title</title>
    	</head>
    	<body>
    	    a.jsp
    	
    	    <%--访问此页面就会跳转到b.jsp--%>
    	    <jsp:forward page="b.jsp"></jsp:forward>
    	</body>
    	</html>
    
    1. 动态包含<jsp:include>:将其它网页内容加载到当前网页,类似站点地图(动态包含和静态包含的区别)
  5. HTML

el表达式

全称是expression language,表达式语言

el表达式的作用

如果JSP来写,Java和HTML代码糅杂在一起,十分紊乱,因此选择使用el表达式来简化Jsp中的Java代码,让界面代码与Java代码分离

el表达式的语法

${表达式}

el表达式可以取的值

  • Java代码中声明的变量/常量
  • 4大作用域中的数据
    • page:作用在JSP页面
    • request:作用在请求
    • session:作用在会话
    • application:使用在整个应用

@L_404_21@Jsp9大内置对象(9大隐式对象)

  1. request:请求
  2. response:响应
  3. session:会话对象,Servlet中通过req.getSession()就是该对象
  4. application:全局上下文对象,Servlet中通过request.getServletContext()
  5. out:等同于pageContext.getout()
  6. config:配置对象,ServletConfig
  7. page:代表当前Jsp本身,等同于Servlet中的this。
  8. pageContext:page上下文对象(page作用域对象)
  9. exception:异常对象,存放了JSP中发生的异常信息

JSTL

因为el表达式只能获取值,无法做判断 ,因此Apache组织又出了一个更加完善的,名叫JSTL
全名 Java Server Pages Tag Library JSP标准标签库。

JSTL的作用

作用是简化Jsp中的Java代码,让界面代码与Java代码分离,弥补el表达式的不足。可以看作是el表达式的补充版,进阶版

JSTL的使用

1.导包
下载地址
2.在JSP指令中声明要引用的标签
3.使用JSTL提供的标签

  • if
  • forEach
    • items:表示要循环的集合
    • var:表示每次循环出来的对象的变量名
      具体案例:
      页面输出所有用户
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--导入JSTL的核心标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<table border="1">
    <tr>
        <th>id</th>
        <th>用户名</th>
        <th>密码</th>
    </tr>
    <c:forEach items="${list}" var="user">
        <tr>
            <td>${user.id}</td>
            <td>${user.name}</td>
            <td>${user.pwd}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

list为传进作用域中的数据,user则是list中的每个变量的名称

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...