JSP学习

来源:互联网 发布:seo分析工具 编辑:程序博客网 时间:2024/06/05 11:11

JSP:是一种既可以写HTML语言也可以写Java代码的页面,JSP的本质是一个Servlet

<%! %> 生成的Java代码在成员位置

<% %> 生成的Java代码在service()方法中

<%= %> 生成的东西

JSP专用注释:<%--jsp专用注释--%>

1. 3个指令,6个动作标签,9个内置对象

1.1 三个指令:

格式:<%@ 指令名称 属性名="属性值" %>

(1)page指令:配置JSP页面的属性 <%@ pageEncoding="UTF-8" ,language="java", import="java.util.*"%>   

(2)include指令:静态包含,包含后只会存在一个.class文件

(3)taglib指令:导入额外的内容 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

1.2 六个动作标签:

作用:替换Java代码,简化书写,提高可读性

(1)<jsp:useBean id="对象名   " class="类名"></jsp:useBean>

<jsp:useBean   id="student"   class="SchoolDemo.Student"></jsp:useBean>

(2)<jsp:setProperty   property="字段名"   name="对象名" value="实参" />

<jsp:setProperty   property="name"   name="student"   value="张三" />

内省:通过字段名称,找到对应的set和get方法

(3)<jsp:getProperty   property="字段名"   name="对象名"  />

<jsp:getProperty   property="name"   name="student"   />

(4)<包含的页面和被包含的页面都会各自转换一份java文件,用来做页面的布局>

<jsp:include   page="/index.jsp"></jsp:include>

(5)<请求转发>

<jsp:forward page="/mydemo"></jsp:forward>

(6)<携带请求参数>

<jsp:forward page="/mydemo">

<jsp:param   value="zhangsan"  name="username" />

</jsp:forward>

1.3 九个内置对象:

内置对象:在jsp转换后的.java文件的service方法中声明好的对象,在jsp中可以直接使用

(1)application:ServletContext:全局域对象

(2)session:HttpSession:会话域对象

(3)request:HttpRequest:请求域对象

(4)pageContext:PageContext:页面域对象

页面域对象可以获取其他八个内置对象,可以在非jsp环境使用其他的内置对象

(5)out:JspWriter

out.print(写出的内容会在body标签内,建议使用out)

(6)response:HttpServletResponse

response.getWriter().print("response写出的内容会跑到html标签的外面");

(7)config:ServletConfig

(8)page:this

(9)exception: Throwable

9个内置对象:当服务器JSP转换引擎将jsp 转成java类了之后,会在service()方法里面生成9个内置对象,你只要来使用它就可以了

2.EL表达式

2.1定义:JSP内置表达式语言,EL是为了替换<%="   "%>

2.2作用:

(1)获取域中的数据

没有获取到数据,用空串表示;如果说每个域的键相同,那只能取到最小域里面的值;如果你要取每个域中的值,可以通过每个域对象

${pageScope.key} ${requestScope.key}...

(2)可以做运算 + - * / || &&

(3)可以调用Java中的方法

(4)empty运算符,能判断一个对象是否为null ,也能判断一个容器的长度是否为0 ;取反用not empty

2.3

el的内置对象有11个,其中cookie为重点掌握

java中Cookie的api

getName():获取cookie的名称

getValue():获取cookie的value值

我们称name和value是cookie的bean属性

使用cookie内置对象:${cookie.给cookie起名字.value}

例如:获取jsession的值:${cookie.JSESSIONID.value}

在jsp页面中获取项目名

${pageContext.request.contextPath}

例如:<a href="${pageContext.request.contextPath }/demo8.jsp">pagecontext内置对象获取项目名</a>

3.JSTL标签:JSP标准标签库

3.1作用:为了替换JSP脚本,简化我们的书写,由阿帕奇出品,我们应JSTL标签结合EL表示去使用

3.2分类

core,ftm,sql.xml,函数库

3.3步骤

(1)导入jar包 (jstl.jar和standard.jar)

(2)在页面上导入标签库<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

3.4核心类库:core(重点掌握)

判断语句:c:if

<c:if   test="${el表达式}">满足的时候输出的内容</c:if>

循环语句:c:forEach

格式一: <%--  begin:循环初始值   end:循环结束   var:索引   step:步长 --%>

<c:forEach   begin="0"   end="4"   var="i"   step="1">

${arrs[i]}<br>

</c:forEach>

格式二: <%--增强for 循环  items 你要遍历的容器 var 容器中的元素  varStatus 元素循环的的状态--%>

<c:forEach   items="${list}"  var="ele"   varStatus="v">

${ele}

${v.current}

${v.count}c

${v.index}

</c:forEach>

常用的属性:

(1)count:记录次数,从1开始

(2)current:当前遍历的内容

(3)index: 索引,从0 开始

c:url:

作用:

(1)补全项目路径: <c:url value="/index.jsp" />

<a href="${pageContext.request.contextPath }/index.jsp"></a>

<a href="<c:url value='/index.jsp'/>"</a>

(2)可以自动进行URL重写


原创粉丝点击