jsp九大内置对象与EL表达式

在jsp中无需创建就可以使用的9个对象,它们是:

out(jspWriter):等同与response.getWriter(),用来向客户端发送文本数据;
config(ServletConfig):对应“真身”中的ServletConfig;
page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;
pageContext(PageContext):页面上下文对象,
exception(Throwable):只有在错误页面中可以使用这个对象;
request(HttpServletRequest):即HttpServletRequest对象类
response(HttpServletResponse):HttpServletRequest对象类
application(ServletContext):ServletContext类的对象
session(HttpSession):即Httpsession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%[@page](https://my.oschina.net/u/937418) session="false"%>,
说明这个页面不能使用session.

PageContext中:

void setAttribute(String name,Object value,int scope):在指定范围中添加数据
Object getAttribute(String name,int scope):获取指定范围的数据
void removeAttribute(String name,int scope):移除指定范围i的数据
Objext findAttribute(String name):依次在page,request,session,application范围查找名称为name的数据,如果找到就停止查找。这说明在这个范围内有相同名称的数据,那么page范围的优先级最高。

JSP动作标签

<jsp:forward>:转发,与RequestDispatcher方法的forward相同,一个在Servlet中使用,一个在jsp中使用
<jsp:include>:包含,与RequestDispatcher方法的include相同,一个在Servlet中使用,一个在jsp中使用

jsp中与javaBean相关的标签

<jsp:useBean>创建或查询bean
	<jsp:useBean id="user1" class="cn.itcast.domain.User" scope="session"/>在session域中查找名为user1的bean,如果不存在,创建之<jsp:useBean id="user1" class="cn.itcast.domain.User" scope="session"/>
<jsp:setProperty>
	<jsp:setProperty property="username" name="user1" value="admin"/>设置名为user1的这个javabean的username属性值为admin
<jsp:getProperty>
	<jsp:getProperty property="username" name="user1" />获取名为user1的javabean的名为username属性值

JavaBean

javaBean的规范:

1、必须要有一个默认构造器
2、提供get/set方法,如果只有get方法,那么这个属性是只读属性
3、属性:有get/set方法的成员,还可以没有成员,只有get/set方法。属性名称由get/set方法来决定,而不是成员名称。
4、方法名称满足一定的规范,那么他就是属性。boolean类型的属性,它的读方法可以是is开头,也可以是get开头

EL表达式

1、EL是JSP内置的表达式语言
	el代替的是<%=..%>,也就是说,EL只能做输出
2、EL表达式来读取四大域
	${xxx},全域查找名为xxx的属性,如果不存在,输出空字符串,而不是null
	${pageScope.xxx}、${requestScope.xxx}、${sessionScope.xxx}、${applicationScope.xxx},指定域获取属性
3、javaBean导航

	<% 
	Address address=new Address();
	address.setStreet("桃园");
	address.setCity("深圳");
	
	
	Employee emp=new Employee();
	emp.setName("xi");
	emp.setSalary(55555);
	emp.setAddress(address);

	request.setAttribute("emp",emp);

%>
<h3>使用EL表达式获取request域中的emp</h3>

${requestScope.emp.address.street}等同于 <!-- request.getAttribute("emp").getAddress().getStreet() -->

EL的十一个内置对象

1	pageContext	对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)
2	pageScope	代表page域中用于保存属性的Map对象
3	requestScope	代表request域中用于保存属性的Map对象
4	sessionScope	代表session域中用于保存属性的Map对象
5	applicationScope	代表application域中用于保存属性的Map对象
6	param	表示一个保存了所有请求参数的Map对象
7	paramValues	表示一个保存了所有请求参数的Map对象,它对于某个请求参数,返回的是一个string[]
8	header	表示一个保存了所有http请求头字段的Map对象,注意:如果头里面有“-” ,例Accept-Encoding,则要header[“Accept-Encoding”]
9	headerValues	表示一个保存了所有http请求头字段的Map对象,它对于某个请求参数,返回的是一个string[]数组。注意:如果头里面有“-”,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
10	cookie	表示一个保存了所有cookie的Map对象${cookie.username.value}
11	initParam	表示一个保存了所有web应用初始化参数的map对象

EL函数库(由JSTL提供)

导入标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
String toUpperCase(String input):把字符串参数转换成大写,并返回;
String toLowerCase(String input):把字符串参数转换成小写,并返回;
int indexOf(String input, String substring):返回input中substring出现的索引位置;
boolean contains(String input, String substring):查看input中是否包含substring,包含返回true,否则返回false;
boolean containsIgnoreCase(String input, String substring):在忽略大小写的情况下,查看input中是否包含substring,包含返回true,否则返回false;
boolean startsWith(String input, String substring):判断input是否是以substring为前缀,如果是就返回true,否则就返回false;
boolean endsWith(String input, String substring):判断input是否是以substring为后缀,如果是就返回true,否则就返回false;
String substring(String input, int beginIndex, int endIndex):以beginIndex为开始值,endIndex为结束值,在input上截取子串;
String substringAfter(String input, String substring):获取input中,substring所在位置后面的字符串;
substringBefore(String input, String substring):获取input中,substring所在位置前面的字符串;
String escapeXml(String input):把input中“<”、“>“、”&“、”'“、“"”进行转义;
String trim(String input):去除input中的前后空格;
String replace(String input, String substringBefore, String substringAfter):将input中的substringBefore替换成substringAfter;
String[] split(String input, String delimiters):以delimiters为标识分割input,返回一个字符串数组;
int length(Object obj):可以获取字符串、数组、各种集合的长度!
String join(String array[], String separator):将array数组中的元素以separator连接起来,返回一个字符串。

自定义标签库

写一个java类,类中可以定义0-n个方法,但必须是static,而且有返回值的
在WEB-INF目录下创建一个tld文件
<function>
  <name>fun</name>
  <function-class>cn.itcast.fn.MyFunction</function-class>
  <function-signature>java.lang.String fun()</function-signature>
</function>

在jsp页面中导入标签库
<@%taglib prefix="it" uri="/WEB-INF/tlds/itcast.tld"%>
在jsp页面中使用自定义的函数:${it:fun()}

转载于:https://my.oschina.net/u/3535428/blog/2994351

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值