根据给定的文件信息,我们可以深入探讨Bean标签库在JavaServer Pages (JSP) 和 Struts 框架中的应用及其重要性。 ### Bean标签库简介 Bean标签库是Struts框架的一部分,它提供了一系列用于操作JavaBeans的标签。这些标签简化了在JSP页面中与JavaBeans交互的过程,使得开发者能够更加高效地处理HTTP请求中的数据。 ### Bean标签库的常用标签 #### bean:cookie 标签 该标签用于获取浏览器发送过来的Cookie信息,并将该信息封装到一个JavaBean中。例如: ```jsp <bean:cookie id="sessionID" name="JSESSIONID" value="JSESSIONID-ISUNDEFINED" /> ``` 此示例中,`sessionID`将被用来存储名为`JSESSIONID`的Cookie对象,如果Cookie不存在,则其值默认为`JSESSIONID-ISUNDEFINED`。可以通过`jsp:getProperty`标签来访问该Cookie对象的属性,如: ```jsp <jsp:getProperty name="sessionID" property="comment" /> <jsp:getProperty name="sessionID" property="domain" /> <jsp:getProperty name="sessionID" property="maxAge" /> <jsp:getProperty name="sessionID" property="path" /> <jsp:getProperty name="sessionID" property="value" /> <jsp:getProperty name="sessionID" property="version" /> ``` #### bean:header 标签 `bean:header`标签用于获取HTTP请求头中的信息,并将其封装到一个JavaBean中。例如: ```jsp <% java.util.Enumeration names = ((HttpServletRequest) request).getHeaderNames(); %> <% while (names.hasMoreElements()) { String name = (String) names.nextElement(); %> <bean:header id="head" name="<%= name %>" /> <%= name %> <%= head %> <% } %> ``` 这段代码会遍历所有请求头,并将其信息封装到名为`head`的JavaBean中。 #### bean:parameter 标签 `bean:parameter`标签用于获取HTTP请求参数,并将其封装到一个JavaBean中。例如: ```jsp <bean:parameter id="param1" name="param1" /> <bean:parameter id="param2" name="param2" multiple="true" /> // 处理多个param2 <bean:parameter id="param3" name="param3" value="UNKNOWNVALUE" /> ``` 当`multiple`属性设置为`true`时,该标签可以处理重复的参数名。 ### 使用bean:define 标签定义变量 `bean:define`标签允许开发者定义并初始化变量。例如: ```jsp <bean:define id="foo" value="This is a new string" /> <bean:define id="bar" value='<%="Hello," + user.getName()%>' /> <bean:define id="last" scope="session" value='<%=request.getRequestURI()%>' /> ``` 上述示例中,`foo`变量将被初始化为字符串"This is a new string";`bar`变量则通过表达式动态初始化;而`last`变量则存储了当前请求的URI,并且作用域为session。 此外,`bean:define`还可以用于获取JavaBean的属性值: ```jsp <bean:define id="foo" name="bar" /> <bean:define id="baz" name="bop" type="com.mycompany.MyClass" /> <bean:define id="bop" name="user" property="role[3].name" /> ``` 这里,`foo`变量将被初始化为名为`bar`的JavaBean;`baz`变量则初始化为类型为`com.mycompany.MyClass`的`bop`对象;而`bop`则初始化为`user`对象的`role[3].name`属性值。 ### 小结 Bean标签库在JSP和Struts框架中扮演着非常重要的角色,它简化了开发者与JavaBeans交互的过程。通过使用`bean:cookie`、`bean:header`和`bean:parameter`等标签,开发者可以轻松获取HTTP请求中的Cookie、请求头和参数信息。同时,`bean:define`标签则为开发者提供了方便的方式来定义和初始化变量。这些标签不仅提高了开发效率,还增强了应用程序的灵活性和可维护性。
此标签库和Java Bean有很强的关联性,设计的本意是要在JSP 和JavaBean 之间提供一个接口。Struts 提供了一套小巧有用的标签库来操纵JavaBean和相关的对象:cookie、 header、 parameter、 define、write、message、 include、page、resource、size、struts。
1.bean:cookie、bean:header、bean:parameter
这三个标签用来重新得到cookie, request header和request parameter。
bean:header和bean:parameter标签定义了一个字符串;bean:cookie标签定义了一个Cookie对象。你可以使用value属性做为默认值。如果找不到指定的值,且默认值没有设定的话,会抛出一个request time异常。如果你期望返回多个值的话,可把multiple属性设为true。
<bean:cookie id="sessionID" name="JSESSIONID" value="JSESSIONID-ISUNDEFINED"/>
// 这段代码定义了一个名为sessionID的脚本变量,如果找不到一个名为JSESSIONID的cookie,那sessionID
// 的值就被设置为JSESSIONID-ISUNDEFINED。
下面代码会输出一些Cookie对象的一些属性:
<jsp:getProperty name="sessionID " property="comment"/> …
<jsp:getProperty name="sessionID" property="domain"/> …
<jsp:getProperty name="sessionID" property="maxAge"/> …
<jsp:getProperty name="sessionID" property="path"/> …
<jsp:getProperty name="sessionID" property="value"/> …
<jsp:getProperty name="sessionID" property="version"/> …
下面是在request中输出所有header的例子:
<%
java.util.Enumeration names =((HttpServletRequest) request).getHeaderNames();
%>
…
<%
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
%>
<bean:header id="head" name="<%= name %>"/>
… <%= name %>
- 粉丝: 40
- 资源: 64
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助