JSP

JSP

 

Jsp实质就是servlet,jsp在第一次被访问时会被Web容器翻译成servlet,再执行,

servlet内也可写HTML标签,

Jsp内写java代码方法:

<%java代码%> ----- 内部的java代码会翻译到service方法中,所以该标签内无法写方法

<%=java变量或表达式> ----- 会被翻译到service方法内部out.print(),只能写值

<%!java代码%> ---- 会被翻译到类中,可写成员变量和成员方法

 

<%-- jsp注释 --%>

 

 

Jsp三大指令

1.page指令:

格式:<%@page 属性名1=”属性值1” ……%>

常用属性:

import:导入java的包 ,AIt+/  自动导包

errorPage=”路径”:设置当前页面出错后跳转到哪个页面

isErrorPage=”true”:当前页面为处理错误的页面,设置后出错会跳到该页面,控制台不会报错

可在web.xml中设置:

<error-page>

    <error-code>404</error-code>

    <location>/eror.jsp</location>  //出错后跳转的页面

</error-page>

<error-page>

    <error-code>500</error-code>

    <location>/eror.jsp</location>  //出错后跳转的页面

</error-page>

 

 

2.Include指令:

静态包含,可将一个页面拼接到另一个页面中,

格式:<%@ include file="被包含的文件地址"%>

 

动态包含:

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

 

 

Jps隐藏对象(9

jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,在jsp可以直接使用这9个对象

 

out  用于页面输出

request  请求

response  响应

config  服务器配置,servlet  init方法中,可直接得到初始化值

session  域,用来存储用户信息

application  域

page  指令

pageContext  域,JPS的页面容器

exception 

 

 

pageContext对象:

page对象与pageContext对象不是一回事

pageContext是一个域,作用范围:当前jps中

setAttribute(String name,Object obj)

getAttribute(String name)

removeAttrbute(String name)

 

pageContext可以向指定的其他域中存取数据

 

pageContext.setAttribute("name", "zhangsan",PageContext.REQUEST_SCOPE);//request域

 

    pageContext.setAttribute("name", "lisi",PageContext.SESSION_SCOPE);//session域

 

    pageContext.setAttribute("name", "wangwu",PageContext.APPLICATION_SCOPE);//application域

 

pageContext取数据:

pageContext.getAttribute("name",PageContext.REQUEST(域名)_SCOPE)//取

 

<%= pageContext.findAttribute("name")%> <!-- 根据域范围从小往大找 -->

 

 

 

EL表达式

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL 出现的目的是要替代jsp页面中脚本的编写。

 

EL从四个域中取数据,范围才小到大:

${name}

 

对象取值:

${key.属性名}

 

集合取值

${List[0].id }

 

获取项目名:

${pageContext.request.contextPath}

 

判断是否为空,为空是true

${empty user}

 

EL获得四大域中的数据,格式${EL表达式}

EL获得pageContext域中的值:${pageScope.key};

EL获得request域中的值:${requestScope.key};

EL获得session域中的值:${sessionScope.key};

EL获得application域中的值:${applicationScope.key};

 

 

 

JSTL技术

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库

标签库    标签库的URI 前缀

Core        http://java.sun.com/jsp/jstl/core c

 

JSTL导入

在JSTL文件夹lib目录下的两个JAR文件,分别为jstl.jar和standard.jar,导入

使用jsp的taglib指令导入核心标签库:

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

 

 

JSTL常用标签:

 

<c:if  test=” ”>标签

 

 

普通for:

<c:forEach begin="0" end="10" var="i">

         ${i }

</c:forEach>

 

增强for,      items=” 内写要遍历的域中的集合或map”:

<c:forEach items="${List }" var="user">

         ${user.id }...${user.username }

         <br>

</c:forEach>

 

for内取key

${变量名.key }

${变量名.value.username }

posted @ 2019-04-15 08:41  fdbnf  阅读(190)  评论(0编辑  收藏  举报