javaee学习随笔(一)之jsp/el/jstl

来源:互联网 发布:java如何输出 编辑:程序博客网 时间:2024/06/05 22:38

正在学习javaee,想总结一下学习内容,以加深记忆

jsp:

java服务器页面

作用:将内容的生成和信息展示分离开来

运行在服务器端,本质就是servlet,产生相对应的class和java文件  work

jsp脚本

<%..%>

<%=..%>

<%!...%>

jsp指令:  作用,声明jsp页面的属性和动作

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

指令的分类:

page:声明jsp的属性

include:静态包含

taglib:导入标签库

一个页面可以出现多个指令。

指令可以写在任意位置,一般放在页面最上


page指令:

重要3属性:

contextType:设置响应刘编码,设置文件得mimetype类型

pageEncoding:设置页面编码

import:导入所需要的包

contextType和pageEncoding联系:若两者都出现的时候,各自使用各自的编码,若只出现一个,都使用出现的

若两者都不出现,使用服务器默认编码ISO-8859-1

了解的属性:language:当前jsp页面可以嵌套的语言

buffer:设置jsp页面的流的缓冲区的大小

autoflush:是否自动刷新

extends:声明当前jsp的页面继承与哪个类,必须继承HTTPservlet及其子类

session:设置jsp页面是否可以使用session属性

isElignored:是否忽略el表达式

errorpage:当前页面出错跳转到错误页面

isErrorPage:当前jsp页面是否是错误页面,若为true,可以使用jsp页面的一个内置对象Exception

include指令:静态包含,就是将其他页面或servlet内容包含进来。一般进行编译,生成一个java文件

格式:<%@ include file="相对路径或内部路径"%>

例如:i2的内容:<%@ include file="/jsp/include/i2.jsp" %>

taglib指令;导入标签库:

格式:<%@ taglib prefix=“前缀名”URL=“名称空间”%>

若导入之后:<前缀名:标签名>

jsp的内置对象:***(9大内置对象)

在jsp页面可以直接使用:

内置对象               类型

out jspWrite

request   httpServletRequest

response httpServletResponse

session HttpSession

exception Throwable
page Servlet
config ServletConfig
application ServletContext
pageContext PageContext


jsp里的域对象:理解  application    整个项目

session     一次会话

request       一次请求

pageContext一个页面

pageContext:1.域对象  xxxAttribute(..,int scope)

    2,操作其他对象

  xxxAttribute(..,int scope)

scope取值:APPLICATION_SCOPE

SESSION_SCOPE

REQUEST_SCOPE

PAGE_SCOPE

3.获取其他内置对象。

4.便捷查找pageContext.findAttribute(String key)

依次从PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,APPLICATION_SCOPE四个域中查找,找到了返回值并停止,找不到返回null



jsp的动作标签

<jsp:forward>:请求转发

<jsp:include>:动态包含。

就是将被包含页面或servlet的运行结果包含到当前页面

el:jsp的内置表达式语言  从jsp2.0开始

,用来替代<%=.....%>

作用:

1.获取域中的数据***

2.执行运算 ***

3.获取常见的web对象

4.调用java的方法


格式:${el表达式}

获取域中数据:

注意。***

若属性名出现了“.”或“-”“+”特殊符号

需要使用scope获取

${requestScope["user.age"]}

获取简单数据

${pageScope|requestScope|SessionScope|ApplicationScope.属性名}

${属性名}:依次查找。    若查找不到返回""


获取复杂数据:

获取数组中的数据${域中名称[index]}, 

获取list中的数据${域中名称[index]},

获取map中的数据 ${域中名称.键名},


javabean导航

javabean   java语言编写的一个可重用组件   狭义上讲就是我们编写的普通的java类

规范:

1,必须是一个公共的具体类   public class

2提供私有字段       private

3.提供公共访问字段的方法   get|set|is

一旦有公共方法之后,get|set之后的内容,必须将首字母小写,称为bean属性。

4,必须提供一个无参的构造

5,一般实现序列化接口  Serializable

格式:${javabean名称.bean属性}


执行运算:

四则,关系,逻辑

注意:+:只能进行加法运算,字符串形式的数字可以进行加法运算

empty:判断一个容器的长度是否为空,还可以判断一个对象是否为空   ${empty 域中对象}

三元运算符


el的内置对象(了解)

11个:pageScope

requestScope

sessionScope

applicationScope

param

paramValues

header

headerValues

initParam
cookie***
pageContext***

注意:除了pageContext其余对象获取 的全是 map集合


了解:和参数相关的el内置对象

param

paramValues

了解:和请求头相关的el内置对象

header

headerValues

了解:和全局初始化参数相关的el的内置对象

initParam

cookie内置对象

${cookie}:获取的是map集合{key=value}

若想获取username的cookie的value值

${cookie.username.value}



cookie 常见的api

getName()

getValue()


jstl:   

         jsp的标签库

代替java脚本


使用步骤:

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

2.在页面上导入标签库

<%@taglib prefix="" uri=""%>

jstl分类:

core:核心类库

fmt:格式化|国际化

xml:过时了

SQL:过时了

函数库:很少使用

core:核心类库

c:if**

c:foreach**

c:set

c:choose  c:when c:otherwise

c:if    判断
<c:if test="${3>5&5<3 }">满足的时候输出的内容</c:if>

c:foreach   循环遍历

格式1

<c:forEach begin="从哪里开始" end="到那里结束" step="步长" var="变量名" varStatus="循环状态变量">

varStatus:用来记录循环的状态:   常用属性:count 记录次数  current:当前遍历的内容

例如:

<c:forEach begin="1" end="20" step="2" var="i" varStatus="vs">

${i }----${vs.count}----${vs.current }<br/>

</c:forEach>

格式二::

<c:forEach items=“${el获取域中的容器}” var=“n”>

${n}

</c:forEach>

原创粉丝点击