j2ee学习总结(2)


21_jspELAndJavaBean

el表达式

之前的 JSP 页面中,我们经常使用 JSP 表达式来输出变量或者页面之间传递的参数。而使用el表达式,可以简化jsp页面代码
使用EL表达式获取数据语法:"${标识符}"

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象(从范围小的域依次向范围大的域查找),找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。

实例:

	语言accept-language: ${header['accept-language']}

	<!-- pageContext可以获得九大内置对象 -->
	会话编号session id: ${pageContext.session.id}

	雇员信息employee: 
	<!-- 意思为reguestScope域里面的employee对象的name属性的值 -->
	${requestScope.employee.name},<br/>
	${employee.address.country},<br/>
	${employee.address.state},<br/>
	${employee.address.city},<br/>

问题同一个war包下,有一个名为employee的类,而该页面是:
在这里插入图片描述
register.jsp,由index里的form表单传过来的数据
在这里插入图片描述
这里没有创建employee的对象,为什么在域里会有employee的实例对象呢?下面就介绍一下jsp的自动装配机制

jsp的自动装配

语法

public Object setProperty(String key_ele, String val_ele);
  • 字符串key_ele –表示要在其上设置值的键元素。
  • 字符串val_ele –表示给定键的value元素。

这里用了

<jsp:setProperty property=“*” name=“user”/>

property = ”*”表示所有名字和Bean属性名字匹配的请求参数都将被传递给相应的属性set方法。同时创建一个名为user的employee对象(通过前面名字匹配的参数找到传过来的参数属于employee的属性)

base标签

base标签是HTML语言中的基准网址标记,它是一个单标签,位于网页头部文件的head标签内,一个页面最多只能使用一个base元素,用来提供一个指定的默认目标,算是一种表达路径和连接网址的标记。

在这里插入图片描述
用处
base指定了一个URL地址后,所调用的文件或图片等无须再填写完整的地址,只需写上该文件名或图片名即可。因此可以解决路径冗长繁杂的问题。

在这里我们将
在这里插入图片描述去掉,在不修改图片引用地址的前提下也能找到图片,因为项目所在的默认路径已经是basePath所指向的路径。

basePath

在base标签里的basePath指的是什么呢?

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  • request.getContextPath() 获取当前的系统路径,如果如果项目为根目录,则得到一个"",即空的字条串。
  • request.getRealpath(“/”)得到的是实际的物理路径,也就是你的项目所在服务器中的路径
  • request.getScheme() 等到的是协议名称,默认是http
  • request.getServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如:localhost .baidu.com 等等
  • request.getServerPort() 得到的是服务器的配置文件中配置的端口号 比如 8080等。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值