一、JSP
<%-- 1、指令 格式:<%@ 指令 属性名="属性值"... %> 分类: page: contentType="text/html;charset=UTF-8":设置浏览器解码方式 import="":导包 errorPage="":jsp发生异常的跳转页面(重定向路径) isErrorPage="":属性值true:可使用内置对象exception;false:不能使用内置对象exception language="java":编程语言 pageEncoding="utf-8":设置编码方式 buffer="8kb":设置字符流缓冲大小 include: file="":包含的jsp文件 taglib:一般用于导入标签库 prefix="":定义前缀 uri="":标签库描述文件 2、内置对象 对象 正式类型 作用 pageContext PageContext 当前页面共享数据,还可以获取其他八个内置对象 request HttpServletRequest 一次请求访问的多个资源(转发) session HttpSession 一次会话的多个请求间 application ServletContext 所有用户间共享数据 response HttpServletResponse 响应对象 page Object 当前页面(Servlet)的对象 this out JspWriter 输出对象,数据输出到页面上 config ServletConfig Servlet的配置对象 exception Throwable 异常对象 --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%--使用jstl标签,需引入jstl、taglibs-standard-impl、jstl-api和jstl-impl的jar包--%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>jsp</title> </head> <body> <form action="second" method="post"> 用户名:<input type="text" name="username"><br/> 密码:<input type="text" name="password"><br/> <input type="submit" value="提交"> </form> <%@ include file="other.jsp" %> <%="这里的内容可以直接显示到页面上"%> </body> </html>
二、EL
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <div>include指令jsp</div> <%-- 1、格式:${} 忽略所有el表达式:page指令中设置isELIgnored="true" 忽略单个el表达式:${} 2、用法:可以在el表达式中做运算 empty:用于判断字符串、集合、数组对象是否为null并且长度是否为0 用法:${empty list} --%> ${1+1} ${1==1} </body> </html>
三、JSTL
<%@ page import="java.util.ArrayList" %> <%@ page import="java.util.List" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <html> <head> <title>jstl</title> </head> <body> <%-- 1、常用标签 1、if:相当于java代码的if语句 注意:test为必须属性,属性值会结合el表达式一起使用 用法:<c:if test="${true}"></c:if> 2、choose:相当于java代码的switch语句 用法: <c:choose> <c:when test="${chooselabel<0}">负数</c:when> <c:when test="${chooselabel>0}">正数</c:when> <c:otherwise>0</c:otherwise> </c:choose> 3、foreach:相当于java代码的for语句 1、完成重复的操作 for(int i=0;i<10;i++){ } * 属性: begin:开始值 end:结束值 var:临时变量 step:步长 varStatus:循环状态对象 index:在完成重复的操作中,该值与var相同 count:循环次数,从1开始 2、遍历容器 for(Object objs:obj){ } * 属性: items:容器对象 var:容器中元素的临时变量 varStatus:循环状态对象 index:容器中元素的索引,从0开始 count:循环次数,从1开始 --%> <% List<String> foreachlabel = new ArrayList<>(); foreachlabel.add("孟美岐"); foreachlabel.add("黄婷婷"); foreachlabel.add("鞠婧祎"); request.setAttribute("iflabel", "iflabel"); request.setAttribute("chooselabel", 1); request.setAttribute("foreachlabel", foreachlabel); %> <c:if test="${not empty iflabel}">${iflabel}</c:if> <hr/> <c:choose> <c:when test="${chooselabel<0}">负数</c:when> <c:when test="${chooselabel>0}">正数</c:when> <c:otherwise>0</c:otherwise> </c:choose> <hr/> <c:forEach begin="1" end="10" var="i" step="2" varStatus="s"> ${i} ${s.index} ${s.count}<br/> </c:forEach> <hr/> <c:forEach items="${foreachlabel}" var="i" varStatus="s"> ${i} ${s.index} ${s.count}<br/> </c:forEach> </body> </html>