EJSP技术理解

来源:互联网 发布:网络诈骗去哪里举报 编辑:程序博客网 时间:2024/06/15 03:02

EJSP技术—关键在于把业务逻辑的方法封装到值对象—javaBean中实现。下面两篇代码。第一个Person.java. 就是一个例子。第二个 JSP页面就是实际运用中会遇到的细节问题

package cn.hncu.jspV2.domain;import java.util.List;//EJBpublic class Person {    private String name="abc";    private String pwd;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPwd() {        return pwd;    }    public void setPwd(String pwd) {        this.pwd = pwd;    }    public Person() {        super();    }    public Person(String name, String pwd) {        super();        this.name = name;        this.pwd = pwd;    }    ////////////////业务逻辑方法//////////////////////////    //用this对象中的信息访问dao层,进行登录    public boolean login(){         if(name!=null && name.startsWith("hncu")&&                  pwd!=null && pwd.length()>5){             return true;         }         return false;    }    public boolean save(){        //把this对象中的信息进行保存(注册)        //略...        return true;    }    public List<Person> getAll(){        //调用dao        return null;    }}
<%@page import="cn.hncu.jspV2.domain.User"%><%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <title>讲解JSP的几代开发技术</title>  </head>  <body>    <h2>JSP的第2代开发技术:JSP+EJB</h2>    <br/>    <br/>    <form action="<%=request.getContextPath()%>/jsps/v2/login.jsp" method="post">       Name:<input type="text" name="name"/><br/>       Pwd:<input type="password" name="pwd"/><br/>       <input type="submit" value="登录"/>    </form>    <hr/>    <!-- 有一些专用于对javaBean进行操作的jsp标签 -->    <h3>以下演示一些专用于对javaBean进行操作的jsp标签</h3>    <!-- 创建(声明)JavaBean,,id为我们理解的对象名 -->    <jsp:useBean id="p" class="cn.hncu.jspV2.domain.Person"></jsp:useBean>    <%//上一行等价于:       //cn.hncu.jspV2.domain.Person p = new cn.hncu.jspV2.domain.Person();    %>    <!-- 给JavaBean设置属性 -->    <!-- 下一行的作用:给名为p的JavaBean设置name属性为:张三 ,, name为我们理解的对象名-->    <jsp:setProperty property="name" value="张三" name="p"/>    ${p.name}    <br/><br/>    <jsp:useBean id="u1" class="cn.hncu.jspV2.domain.User"></jsp:useBean>    <jsp:setProperty property="name" name="u1" value="李四"/>    <!--JavaBean中Integer类型的属性,直接用字符串格式去赋值,内部会自动帮我们转换成Integer的 -->    <jsp:setProperty property="age" name="u1" value="30"/>    <!-- 这种方式不行       &lt; jsp:setProperty property="birth" name="u1" value="2017-07-18"/ &gt;     -->    <!-- String与基本数据类型的属性赋值,我们只要给字符串格式就行,jsp标签会帮我们自动转换的。                   其它的复杂类型如Date,不行!,对这种情况,我们得在javaBean自己手写代码转换,把对应属性的setter-getter方式写成面向String处理  -->    <!--注意,jsp底层是通过下面的property推测出对应的setter-getter方法名,而且进行调用。因此这里property的取值要根据bean中的setter-getter方法名反推,若直接用bean的属性名来赋可能会出问题  -->    <jsp:setProperty property="birthday" name="u1" value="2008-07-08"/>        输出u1-bean的信息: ${u1.name},${u1.age},${u1.birthday}<br/>        ${u1}     <hr/>     <h2>以下讲解javaBean的作用域和 接收表单参数技术</h2>     <!-- 作用域:默认放在page(代表pageContext)中,,当然我们也可以指定放在request,session或application容器中,通过给scope属性赋值 -->     <jsp:useBean id="u2" class="cn.hncu.jspV2.domain.User" scope="request"></jsp:useBean>     <%         User uu = (User) pageContext.getAttribute("u2", PageContext.PAGE_SCOPE );         out.println("uu:"+uu);       //User uu2 = (User) request.getAttribute("u2");         User uu2 = (User) pageContext.getAttribute("u2",PageContext.REQUEST_SCOPE); //等价于上一句,,还可用常量:SESSION_SCOPE,APPLICATION_SCOPE         out.println("<br/>uu2:"+uu2);     %>    <br/>    <h3>以下表单用于演示: 用jsp标签接收表单参数</h3>    <form action="<%=request.getContextPath()%>/jsps/v2/login2.jsp" method="post">       Name:<input type="text" name="name"/><br/>       Pwd:<input type="password" name="pwd"/><br/>       <input type="submit" value="登录"/>    </form>   </body></html>