EJSP技术理解

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

package cn.hncu.jspV2.domain;

import java.util.List;
//EJB
public 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>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值