Java Web程序设计

刘肃平、聂军、王华、李勇波、魏碧晴

目录

  • 1 Java Web概述
    • 1.1 任务导引
    • 1.2 动态网页技术介绍
    • 1.3 JSP的运行环境
    • 1.4 JSP的运行原理
    • 1.5 JSP程序开发模式
    • 1.6 JSP开发工具
    • 1.7 任务实施:JSP开发环境搭建及第一个Hello World程序
  • 2 JSP基本语法
    • 2.1 任务导引
    • 2.2 JSP的基本组成
    • 2.3 脚本元素
    • 2.4 指令元素
    • 2.5 动作元素
    • 2.6 任务实施
  • 3 服务器交互
    • 3.1 任务导引
    • 3.2 JSP内置对象概述
    • 3.3 out对象
    • 3.4 request对象
    • 3.5 response对象
    • 3.6 session对象
    • 3.7 application对象
    • 3.8 其他内置对象
    • 3.9 任务实施:使用JSP内置对象实现登录和注销功能
  • 4 JavaBean技术
    • 4.1 任务引导
    • 4.2 JavaBean概述
    • 4.3 JavaBean的应用
    • 4.4 JavaBean的作用域
    • 4.5 任务实施
    • 4.6 JSP中的文件操作
  • 5 Servlet技术
    • 5.1 任务引导
    • 5.2 Servlet基础
    • 5.3 Servlet开发
    • 5.4 Servlet常用API
    • 5.5 任务实施
  • 6 第6章 过滤器和监听器
    • 6.1 任务导引
    • 6.2 Servlet过滤器
    • 6.3 过滤器创建与配置
    • 6.4 Servlet监听器
    • 6.5 Servlet3.0新特性
    • 6.6 任务实施
  • 7 Java Web的数据库操作
    • 7.1 任务导引
    • 7.2 JDBC技术
    • 7.3 使用JDBC驱动程序访问数据库
    • 7.4 数据库连接的JavaBean
    • 7.5 JDBC对事务的操作
    • 7.6 连接池技术
    • 7.7 任务实施
    • 7.8 扩展阅读
  • 8 JSP高级技术
    • 8.1 任务导引
    • 8.2 EL概述
    • 8.3 JSTL标签库简介
    • 8.4 JSTL核心标签
    • 8.5 JSP与Ajax
    • 8.6 任务实施
    • 8.7 扩展阅读
  • 9 JSP实用组件技术
    • 9.1 任务导引
    • 9.2 上传与下载组件
    • 9.3 发送E-mail
    • 9.4 JSP动态图表
    • 9.5 在线编辑器
    • 9.6 任务实施
JavaBean的应用


        采用JavaBean+JSP的模式,不仅可以实现表现层和业务逻辑层的分离,还可以提高JSP程序的运行效率和代码重用的程度,并且可以实现并行开发,是JSP编程中常用的技术。在JSP页面中使用JavaBean时,可以使用JSP脚本元素调用JavaBean,也可以使用JSP提供的3个标准动作元素来访问.

(1) <jsp:useBean>用于在网页中创建JavaBean实例

<jsp:useBean id="beanname"  class="package.class" 

 [scope="page|request|session|application"] />



(2)<jsp:getProperty>用于读取JavaBean的属性值,实际调用的是JavaBean的getXxx()方法。

<jsp:getProperty name="name" property="propertyName" />


(3)<jsp:setProperty>用于为JavaBean的属性赋值

①<jsp:setProperty name="beanName"  property="propertyName"   value="propertyValue" />
②<jsp:setProperty name="beanName"  property="propertyName"   param="paramName" />
③<jsp:setProperty name="beanName" property="propertyName"/>
<jsp:setProperty name="beanName" property="propertyName" param="propertyName"/>
④<jsp:setProperty name="beanName"  property="*" />

【案例4-2】JSP中使用JavaBean

<%@ page contentType="text/html;charset=UTF-8" %>

<%@ page language="java" import="ch4.Person" %>

<html>

<head><title>JSP中使用JavaBean</title>

</head>

<body>

<jsp:useBean id="person" class="ch4.Person" scope="page"></jsp:useBean> 

<jsp:setProperty name="person" property="name" value="lan"/>

<jsp:setProperty name="person" property="sex" value="男"/>

<jsp:setProperty name="person" property="age" value="18"/>

<h3>显示人的信息</h3>

<table border="1">

<tr><td>人名</td>

<td><jsp:getProperty name="person" property="name"/></td></tr>

<tr><td>性别</td>

<td><jsp:getProperty name="person" property="sex"/></td></tr>

<tr><td>年龄</td>

<td><jsp:getProperty name="person" property="age"/></td></tr>

</table>

</body>

</html>

效果图如下:



【案例4-3】使用JavaBean在JSP中显示时间

创建DataTimeBean的类,将其放置ch4的包中,可以实现时间、星期的封装。

ch4.DateTimeBean:

package ch4;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

  

public class DateTimeBean {

    private String dateTime;

    private String week;

    //Calendar对象

    private Calendar calendar=Calendar.getInstance();

    /*

     * 获取日期和时间

     *

     * */

    public String getdateTime(){

        //获取当前时间

        Date currDate=Calendar.getInstance().getTime();

        //实例化SimpleDateFormat

        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH点mm分ss秒");

        //格式化日期时间

        dateTime=sdf.format(currDate);

        return dateTime;

    }

    /*

     * 获取星期几

     *

     * */

    public String getweek(){

        //定义数组

        String[] weeks={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

        //获取一星期的某天

        int index=calendar.get(Calendar.DAY_OF_WEEK);

        //获取星期几

        week=weeks[index-1];

        return week;        

    }

}

而4_2.jsp则实例化DateTimeBean对象。

4_2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <head>

    <base href="<%=basePath%>">

      

    <title>电子时钟</title>

    <style type="text/css">

      #clock{

      width:500px;

      height:100px;

      padding-top: 20px;

      border:solid 5px black;

      } 

    #week{

    padding-top: 20px;

      

    }

    </style>

    <meta http-equiv="Refresh" content="1">

    <meta http-equiv="pragma" content="no-cache">

    <meta http-equiv="cache-control" content="no-cache">

    <meta http-equiv="expires" content="0">   

    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

    <meta http-equiv="description" content="This is my page">

    <!--

    <link rel="stylesheet" type="text/css" href="styles.css">

    -->

  </head>

    

  <body>

    <jsp:useBean id="date" class="ch4.DateTimeBean"></jsp:useBean>

    <div id="clock">

    <div id="time">

    <jsp:getProperty property="dateTime" name="date"/>

    </div>

   <div id="week">

    <jsp:getProperty property="week" name="date"/>

    </div>

    </div>

  </body>

</html>

效果图如下,每隔1秒自动刷新一次: