javaBean&&JSP

来源:互联网 发布:ubuntu镜像文件 编辑:程序博客网 时间:2024/05/18 14:23

在上篇中谈完JSP后,JavaBean是又一个比较实用的类。

JavaBean—一个遵循特定写法的Java类

*特点:

**必须具有一个无参的构造函数;

**属性必须私有化;

**私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名必须要遵循一定的命名规范。

*作用:

**用于封装数据;

*其他程序可以通过反射机制实例化JavaBean对象,从而调用其属性保存数据。

JSP中提供的JavaBean组件,即:JSP标签

*—用于在JSP页面中查找或者实例化一个JavaBean组件;

//在JSP页面中可以写如下代码,例如:

注意:body部分内容只在JavaBean实例化时才能执行

*—用于在JSP页面设置一个JavaBean组件的属性;(支持8中基本数据类型的转换)

eg://给bean赋值<jsp:useBean id="person" class="全类名">    <jsp:setProperty name="Cecilia" property="name" value="cc">    </jsp:setProperty></jsp:useBean><%=person.getName() %>//用请求参数给bean属性赋值<jsp:setProperty name="person" property="name" param="Cecilia"></jsp:setProperty><jsp:setProperty name="person" property="age" param="22"></jsp:setProperty><jsp:setProperty name="person" property="birthday" value="<%= new Date()%>"></jsp:setProperty><%=person.getName() %><%=person.getAge() %><%=person.getBirthday() %>//用所有请求参数给Bean赋值<jsp:setProperty name="person" property="*"/><%=person.getName() %><%=person.getAge() %><%=person.getBirthday() %>

* —用于在JSP页面中获取一个JavaBean组件。

//获取beaneg:<jsp:getProperty name="person" property="name"/>

2.JSP开发模式

*JSP+JavaBean模式(适合业务逻辑不是特别复杂的web应用,使用不是特别多)

*JSP+Servlet+JavaBean(MVC)模式(适合开发复杂的web应用,在这种条件下,servlet负责处理用户的请求,JSP负责数据的显示,JavaBean负责封装数据)

3.EL表达式和JSTL标签快速入门

EL表达式用于获取数据

*格式:${标识符}

*作用:

**通知JSP引擎调用pageContext.findAttribute(),以标识符为关键字从各个域对象中获取对象,如不存在,那么返回”“。

**EL表达式也可以使用${customerBean.address}的形式来访问JavaBean对象的属性。

**可以结合JSTL标签,EL表达式可以容易获取各种集合中的元素;

**EL表达式也可以使用类${1==1}的形式进行简单的逻辑判断。

eg://使用ArrayList封装数据<%     List list=new ArrayList();     list.add(new Person("aaa"));     list.add(new Person("bbb"));     list.add(new Person("ccc"));    request.setAttribute("list",list);%>$(list);//使用Map封装数据<%   Map map=new HashMap();    map.put("aa",new Person("aaa"));    map.put("bb",new Person("bbb"));    request.setAttribute("map",map);%>$(map['bb'].name);//EL表达式在获取数据时,通常用[]取出数据

JSTL标签库——由sun公司开发的一套标签库,使用JSTL可以在页面中实现一些简单的逻辑,从而替换页面中的脚本代码。

*在页面中使用JSTL标签需完成以下2个步骤:

**导入jstl.jar和standerd.jar这两个JSTL的jar文件;

**在JSP页面中使用<%@ tablib url=”标签库中jstl的路径” prifix=”文件名”%>元素导入标签库。

*JSTL常用标签

**

**

eg:<!-- 使用EL+JSTL实现集合的迭代 -->JSP文件开头加入包:<%@ taglib url="http://java.sun.com/jsp/jstl/core" prefix="c" %>——————————JSPbody体中—————————    <%   Map map=new HashMap();        map.put("aa",new Person("aaa"));    map.put("bb",new Person("bbb"));    request.setAttribute("map",map);        %>    //使用<c:forEach>标签来遍历获取map数据    <c:forEach var="entry" item="$(map)">        $(entry.key):$(entry.value.name)        <br>    </c:forEach>    //代表用户登录了    //使用<c:if test="">标签实现逻辑判断    <c:if test="$(user==null)">        欢迎您:$(user.username)    </ c:if>        <c:if test="$(user==null)">        用户名:<input type="text">        密码:<input type="text">       </ c:if>
0 0