Jsp基础语法
Jsp表达式
<%-- jsp表达式
作用:用来将程雪输出,写到客户端
<%= 变量名/表达式%>
--%>
<%= new java.util.Date()%>
Jsp脚本片段
<%-- jsp脚本片段 --%>
<%
int sum=0;
for (int i = 0; i < 10; i++) {
sum+=i;
}
out.println("<h1>Sum="+sum+"</h1>");
%>
<%-- 嵌入正常的标签 --%>
<%
int x=10;
out.print(x);
%>
<p>这是一个jsp文档</p>
<%
int y=20;
out.print(20);
%>
<%-- ------------------------------------ --%>
<%-- 在代码中嵌入html元素 --%>
<%
for (int i = 0; i < 5; i++) {
%>
<h1>HelloWorld,<%= new java.util.Date()%></h1>
<%
}
%>
脚本片段的再实现
<%-- 在代码中嵌入html元素 --%>
<%
for (int i = 0; i < 5; i++) {
%>
<h1>HelloWorld,<%= new java.util.Date()%></h1>
<%
}
%>
Jsp声明
<%!
static {
System.out.println("Loading Servlet...");
}
private int globalVar=0;
public void jspInit(){
System.out.println("进入了初始化方法");
}
%>
Jsp声明 :这些代码会被便衣到jsp生成的类d当中,其他的会被编译到_jspService方法内部Jsp的注释,不会再客户端显示,html的注释会显示
Jsp指令
<!-- 配置错误页面 -->
<error-page>
<error-code>404</error-code>
<location>/error/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/error/500.jsp</location>
</error-page>
<!-- 导入jar包 -->
<%@ page import="java.util.Date" %>
<!-- 指定错误页面 -->
<%@ page errorPage="error/500.jsp" %>
<!-- 显示的声明这是一个错误页面 -->
<%@page isErrorPage="true" %>
<!-- 页面编码格式 -->
<%@page pageEncoding="utf-8" %>
<%-- @include会将页面整合在一起 --%>
<!-- 定义的变量会相互影响 -->
<%@include file="common/header.jsp"%>
<h1>网页主体</h1>
<%@include file="common/footer.jsp"%>
<hr>
<%-- jsp标签jsp:include 是将页面拼接在一起,本质还是分开的页面 --%>
<!-- 定义的变量互不影响 -->
<jsp:include page="/common/header.jsp"/>
<h1>网页主体</h1>
<jsp:include page="/common/footer.jsp"/>
Jsp标签
使用之前需要导入jar包支持
<!-- jstl表达式的依赖 -->
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- standard标签库 -->
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
el表达式
表达式格式:${}
1.获取数据
2.执行运算
3.获取web开发常用对象
取出值:
<h3>
${param.get("name1")}
${param.get("name2")}
</h3>
jstl标签
jstl标签库的使用就为未来弥补html标签的不足,有自定的标签,标签的功能和java代码一样
核心标签(要求掌握部分
<c:out> 用于在JSP中显示数据,就像<%= ... > <c:set> 用于保存数据 <c:remove> 用于删除数据 <c:if> 与我们在一般程序中用的if一样 <c:choose> 本身只当做<c:when>和<c:otherwise>的父标签 <c:when> <c:choose>的子标签,用来判断条件是否成立 <c:otherwise> <c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行 <c:forEach> 基础迭代标签,接受多种集合类型 <c:url> 使用可选的查询参数来创造一个URL
引入标签
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!-- c:core fmt:format sql:sql x:xml tomcat的仓库中也需要引入standard和jstl的jar包,不然服务器无法运行 -->
调用方法
c:if
<%@ 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>
<h4>if测试</h4>
<hr>
<form action="jstlcore1.jsp" method="get">
<%--
el表达式获取表单中的数据:
${param.参数名}
--%>
<input type="text" name="username" value="${param.username}">
<input type="submit" value="登录">
</form>
<%--判断如果是管理员就登陆成功--%>
<c:if test="${param.username=='admin'}" scope="page" var="isadmin">
<c:out value="<h3>登录成功<h3>"/>
</c:if>
<c:out value="${isadmin}"/>
</body>
</html>
c:choose
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<c:set var="score" value="50"/>
<c:choose>
<c:when test="${score>=60}">
<c:out value="成绩合格"/>
</c:when>
<c:otherwise>
<c:out value="需要补考"/>
</c:otherwise>
</c:choose>
</body>
</html>
c:forEach
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.Arrays" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ArrayList<String> array=new ArrayList<>();
array.add("h1");
array.add("h2");
array.add("h3");
array.add("h4");
request.setAttribute("list",array);
%>
<%--
hs 储存便遍历的数据
items 被遍历的的对象
--%>
<c:forEach var="hs" items="${list}">
<c:out value="${hs}"/><br>
</c:forEach>
<hr>
<c:forEach var="hs" items="${list}" varStatus="">
</c:forEach>
</body>
</html>
评论 (0)