jsp。8.26总结(附导入jstl标签库)

来源:互联网 发布:程序员入门书籍 编辑:程序博客网 时间:2024/06/06 00:47

jsp

就是在html中写java代码。 jsp=java+html

原理:jsp实际上就是一个Servlet。 文件的格式:   .jsp

实现流程

.jsp➡️翻译成.java➡️编译成.class➡️初始化➡️实例化➡️服务器➡️销毁(第一次访问jsp会比较慢的原因)

JSP的基本语法

1.注释:三种都可以用

<!-----html--->

//    /* */. /****/

<%---jsp---%>

2.jsp写代码地方

<%   java代码%>

<%!    %>声明全局变量

3.JSP的指令  <%@  指令 属性=“”%>

1⃣️page指令

<%@pagelanguage="java"contentType="text/html; charset=UTF-8" import="java.util.*,java.lang.*"

    pageEncoding="UTF-8"%>

2⃣️include指令 用于静态包含

<%@ include file="myjsp1.jsp"%>

3⃣️taglib指令  用于引入一些jsp标签

<%@ taglib prefix=""uri =""%> (uri标签文件的uri地址     prefix 标签组的命名空间前缀)

JSP的内置对象

jsp实际上就是Servlet(处理请求响应)

什么是内置对象。拿来直接使用的,容器自己生成的

内置对象                          代表内容                         范围

request                     触发服务调用的请求              request

response          对请求的应答                   page

session                     为请求的客户创建的session对象        session

application            从servlet配置对象获得的servlet上下文       application

out             向输出流写入内容的对象                   page

pageContext         本jsp页面的上下文         page

page         实现处理本页当前请求的类的实例      page

config       本jsp的servletConfig      page

exception    表示jsp页面运行时产生的异常     page

jsp中的四个域

application:域的范围是整个应用

session:域的范围是整个会话,一个会话只有一个用户

request:域的范围是整个请求链

pageContext:也就是page域,域的范围是一个jsp页面。这里的域指的是当前页面jsp页面和当前jsp页面中使用的标签之间共享数据

域的范围由小到大顺序

pageContext➡️request➡️session➡️application

EI表达式

是jsp的内置表达式语言,它的出现是用来取代jsp中的java代码的

格式:${表达式}主要作用是获取放在域中的数据

${empty user}判断是否有数据。如果有 返回false  没有返回true

EL表达式可与取出四大域中的数据,以后servlet处理的数据放在相应的域对象<br/>中,EL表达式就取出来展示到页面上,jsp 用于动态的展示数据,jsp负责处理</h3><br/>${"可用于输出数据"}<br/> <% //将数据放在四大域中域中 request.setAttribute("request", "request--value"); session.setAttribute("session", "session--value"); pageContext.setAttribute("pageContext1", "pageContext--value"); application.setAttribute("application", "application--value");  %> <h2>取出四大域中的数据---字符串:</h2><br/> ${request }<br/> ${session }<br/> ${pageContext1 }<br/> ${application }<br/>  <%  Book b = new Book(); b.setId(1); b.setName("<<我与阿娇的故事>>") ; b.setAuther("陈冠希"); b.setPrice(12.00); //将数据放在域中 request.setAttribute("bookrequest", b); session.setAttribute("booksession", b); pageContext.setAttribute("bookpage", b); application.setAttribute("bookapplication", b); %> <h2>取JavaBeans中的数据</h2><br/> ${requestScope.bookrequest.sd }<br/> ${sessionScope.booksession.name }<br/> ${pageScope.bookpage.price }<br/><% String arr[] = {"wo","ai","ni","China"} ;request.setAttribute("requestarr", arr);session.setAttribute("sessionarr", arr);pageContext.setAttribute("pagearr", arr);application.setAttribute("applicationarr", arr);%>  <h2>取数组中的数据</h2><br/>  ${requestarr[0]}<br/>  ${sessionarr[1]}<br/>  ${pagearr[2]}<br/>  ${applicationarr[3]}<br/>  <%  List list = new ArrayList(); list.add("aaa"); list.add("bbb"); list.add("ppp"); list.add("CCC"); //将数据放在域中 request.setAttribute("listrequest", list); session.setAttribute("listsession", list); pageContext.setAttribute("listpage", list); application.setAttribute("listapplication", list); %>   <h2>取List中的数据</h2><br/>

第一步,导入jar


第二步,使用指令引入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

c:if

<c:if test="${empty user}"><!-- 实现页面的跳转   登录页面 --><h1>亲,你还没有登录</h1></c:if><c:if test="${!empty user}"><h1>欢迎你${user}</h1></c:if>

c:forEach

<c:forEach items="${sUserList}" var="list" varStatus="status" >${status.index}${status.count}${list.name}<br/></c:forEach>