【JSP】JSP与JavaBean || 含举例实战


代码和PPT见github,感谢star

概述

Javabean是一种Java类
通过封装属性和方法成为具有某种功能或者处理某个业务的对象简称bean

具有以下特点:

  1. 可以实现代码的重复利用。
  2. 易编写、易维护、易使用。
  3. 可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。

JSP页面可以将数据的处理过程指派给一个或几个bean来完成,即JSP页面调用bean完成数据的处理,并将有关处理结果存放bean中.JSP页面可以使用Java程序片或某些JSP指令标记显示bean中的数据,

JSP页面的主要工作是显示数据,不负责数据的逻辑业务处理


Javabean分为可视组件非可视组件

在JSP中主要使用非可视组件。对于非可视组件,我们不必去设计它的外观,主要关心它的属性和方法。

编写Javabean就是编写一个Java的类,所以只要会写类就能编写一个Javabean,这个类创建的一个对象称为一个Javabean,简称bean

编写JavaBean

为了能让使用这个bean的应用程序构建工具(比如JSP引擎)知道这个bean的属性和方法,只需在类的方法命名上遵守以下规则:

  1. 如果类的成员变量的名字是xxx,类中提供两个方法:
    getXxx(),用来获取属性xxx。
    setXxx(),用来修改属性xxx.。
    后缀是将成员变量名字的首字母大写的字符序列。
  2. 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用“is”代替上面的“get”和“set”。
  3. 类中声明的方法的访问属性都必须是public的
  4. 类中需提供public、无参数的构造方法

在这里插入图片描述

package tom.jiafei;
public class Circle {
    double radius;
    public Circle() {
       radius=1;
    }
    public double getRadius() {
       return radius;
    }
    public void setRadius(double newRadius) {
       radius=newRadius;
    }
    public double circleArea() {
       return Math.PI*radius*radius;
    }
    public double circlLength() {
       return 2.0*Math.PI*radius;
    }
}

保存bean的字节码

在当前Web服务目录下建立子目录结构:\WEB-INF\classes,然后根据类的包名,在classes下再建立相应的子目录,比如类的包名为tom.jiafei,那么在classes下建立子目录结构:tom\jiafei

将创建bean的字节码文件,比如Circle.class,复制到“\WEB-INF\classes\tom\jiafei”中

在这里插入图片描述

创建与使用bean

使用bean

使用JSP动作标记:useBean
加载使用Bean
语法格式:
<jsp:useBean id="bean的名字" class="创建beans的字节码" scope="bean有效范围"/>
或者

<jsp:useBean id= "bean的名字" class="创建beans的类" scope= "bean有效范围">
...
...
</jsp:useBean>

例如:
<jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page" />

bean的加载原理

当JSP页面使用JSP需要使用一个bean时,JSP引擎将首先根据JSP动作标记给出的bean的id,以及scope,查找JSP引擎内置pageContent对象中是否含有这样的bean,如果这样的bean存在,JSP引擎就分配这样的bean给用户。

如果在pageContent中没有查找到JSP动作标记要求的bean,就根据class指定的字节码创建一个JSP动作标记要求的bean,并将所创建的bean添加到pageContent内置对象中。

bean的有效范围(生命周期)

scope取值范围给出了bean的存活时间(生命周期),即scope取值决定了JSP引擎分配给用户的bean的存活时间

  • page
    有效范围是当前页面.不同用户的scope取值是page的bean也是互不相同的.
  • request
    bean的有效范围是request期间。不同用户的scope取值是request的bean也是互不相同的
  • session
    有效范围是用户的session(会话)期间。不同用户(即不同浏览器)的scope取值是session的bean是互不相同的(占有不同的内存空间)
  • application
    bean的有效范围是application期间。JSP引擎为Web服务目录下所有的JSP页面分配一个共享的bean,不同用户的scope取值是application的bean也都是相同的一个.

举例

例子1中,负责创建bean的类是上述的Circle类,创建的bean的名字是circle, circle的scope取值是page。example4_1.jsp的效果如图4.3所示。

<%@ page contentType="text/html;charset=GB2312" %>
<HTML><body bgcolor=cyan><font size=3>
   <jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page" />
   <%--通过上述JSP标记,用户获得了一个作用域是page,名字是circle的bean --%>
   <P>圆的初始半径是:<%=circle.getRadius()%>
   <% double newRadius =100;  
      circle.setRadius(newRadius);   //修改半径
   %>
   <P>修改半径为<%= newRadius %>
   <br><b>目前圆的半径是:<%=circle.getRadius()%>
   <br><b>圆的周长是:<%=circle.circlLength()%>
   <br><b>圆的面积是:<%=circle.circleArea()%>
</font></body></HTML>

在这里插入图片描述

例子2使用scope取值为session,id为girl的bean,创建该bean的类文件仍然是上述的Circle.class。

例子2的example4_2_a.jsp页面中,girl的半径radius的值是1(图4.4).

然后连接到example4_2_b.jsp页面,显示半径radius的值,然后将girl的半径radius的值更改为99(图4.5),那么以后再刷新example4_2_a.jsp或example4_2_b.jsp时看到的bean的radius的值就都是99了(图4.6)

example4_2_a.jsp

<%@ page contentType="text/html;charset=GB2312" %>
<HTML><body bgcolor=cyan><font size=3>
   <%--通过JSP标记,用户获得一个作用域是session,id是girl的bean: --%>
   <jsp:useBean id="girl" class="tom.jiafei.Circle" scope="session" />
 <br>这里是example4_2_a.jsp页面
 <br>圆的半径是: <%=girl.getRadius()%>
 <a href="example4_2_b.jsp"><br>example4_2_b.jsp </a>
</font></body></HTML> 


********************************************************************************
example4_2_b.jsp

<%@ page contentType="text/html;charset=GB2312" %>
<HTML><body ><font size=3>
 <%--通过JSP标记,用户获得一个作用域是session,id是girl的bean: --%>
 <jsp:useBean id="girl" class="tom.jiafei.Circle" scope="session" />
  <i><br>这里是example4_2_b.jsp页面
  <br>当前圆的半径是: <%=girl.getRadius()%>
  <% girl.setRadius(99);
  //修改radius值
  %>
  <br>修改后的圆的半径是:<%=girl.getRadius()%></i>
  <a href="example4_2_a.jsp"><BR>example4_2_a.jsp</a>
</font></body></HTML>  




在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

例子3中example4_3.jsp将bean的scope的值设为application。当第一个用户访问这个页面时,显示bean的radius的值,然后把radius的值修改为1000(图4.7)。当其他用户访问这个页面时,看到的radius的值都是1000(图4.8)。

<%@ page contentType="text/html;charset=gb2312" %>
<HTML><body bgcolor=yellow>
 <jsp:useBean id="boy" class="tom.jiafei.Circle" scope="application" />
  圆的初始半径是:<%=boy.getRadius()%>
  <% boy.setRadius(1000);
  %>
 <br><b>修改后的圆的半径是:<%=boy.getRadius()%>
</body></HTML>     

在这里插入图片描述

获取和修改beans的属性

JSP页面使用getProperty、setProperty标记获取或修改属性xxx时,必须保证bean有相应的getXxx和setXxx方法,

即对方法的名字的命名有特殊的要求,

而在程序片中直接用bean调用方法就不需要方法命名遵守getXxx和setXxx规则

getProperty动作标记

使用getProperty动作标记可以获得bean的属性值,并将这个值用串的形式发送给用户的浏览器。
使用getProperty动作标记之前,必须使用useBean动作标记获得相应的bean。

<jsp:getProperty  name="id" property="bean属性" />
或
<jsp:getProperty  name=“id"  property="bean属性"/>
......
</jsp:getProperty>

该指令相当于Java表达式:
<%= bean.getXxx() %>



setProperty动作标记

使用setProperty动作标记可以设置bean的属性值。使用这个标记之前,必须使用useBean标记得到一个相应的bean。

  • 将bean属性的值设置为一个表达式的值或字符串
    • 将bean属性的值设置为一个表达式的值的语法格式
      • <jsp:setProperty name=“id" property="bean的属性" value= "<%=expression%>"/>
    • 将bean属性的值设置为一个字符串语法格式
      • <jsp:setProperty name="id" property="bean的属性" value=字符串/>

  • 通过HTTP表单的参数的值来设置bean的相应属性的值

    • 用HTTP表单的所有参数的值设置bean相对应的属性的值
      • <jsp:setProperty name= "id" property="*" />
    • 用HTTP表单的某个参数的值设置bean的某个属性的值
      • <jsp:setProperty name= “bean的名字” property=“bean属性名” param= “表单中的参数名” />

Student.java

package tom.jiafei;
public class Student  {
   String name=null;
   double height;
   public String getName() {
      return name;
   }
   public void setName(String newName){
      name=newName;
   }
   public double getHeight() {
      return height;
   }
   public void setHeight(double newHeight) {
      height=newHeight;
   }
}

举例1
在这里插入图片描述

<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="zhang" class="tom.jiafei.Student" scope="request"/>
<HTML><body bgcolor=pink><font size=3>
<jsp:setProperty name="zhang" property="name" value="张三"/>
<b> 学生姓名:<jsp:getProperty name="zhang" property="name"/></b>
<jsp:setProperty name="zhang" property="height" value="<%=1.78%>"/>
<br><b> 学生身高:<jsp:getProperty name="zhang" property="height"/></b>
</font></body></HTML>

在这里插入图片描述

<%-- a--%>

<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="iPhone" class="tom.jiafei.Goods" scope="request"/>
<HTML><body bgcolor=yellow><font size=3>
  <form action="" Method="post" >
     手机名称:<input type=text name="name">
     <br>手机价格:<input type=text name="price">
     <br><input type=submit value="提交给本页面">
  </form>
    
<%-- 指向到b页面--%>
   <form action="example4_5_b.jsp" Method="post" >
     手机名称:<input type=text name="name">
     <br>手机价格:<input type=text name="price">
     <br><input type=submit value="提交给example4_5_b.jsp页面">
  </form>
<%-- 设置set的值,再get设置的值--%>
  <jsp:setProperty name="iPhone" property="name" param ="name" />
  <jsp:setProperty name="iPhone" property="price" param ="price"/>
  <br><b>名称:<jsp:getProperty name="iPhone" property="name"/>
  <br><b>价格:<jsp:getProperty name="iPhone" property="price"/>
</font></body></HTML>

***************************************************************
<%-- b--%>

<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="iPhone" class="tom.jiafei.Goods" scope="request"/>
<HTML><body bgcolor=cyan><font size=3>
  <jsp:setProperty name="iPhone" property="name" param ="name" />
  <jsp:setProperty name="iPhone" property="price" param ="price"/>
  <br><b>名称:<jsp:getProperty name="iPhone" property="name"/>
  <br><b>价格:<jsp:getProperty name="iPhone" property="price"/>
</font></body></HTML>

在这里插入图片描述

beans的辅助类

有时在写一个bean的时候,除了需要用import语句引入JDK平台提供的类,可能还需要其它自己编写的一些类。

那么只要将这些类和创建bean的类写在一个java源文件中即可,但必须将源文件编译后产生的全部字节码文件复制到相应的目录中

在这里插入图片描述

package tom.jiafei;
import java.io.*;
class FileExtendName implements FilenameFilter {
   String str=null;
   FileExtendName (String s) {
      str="."+s;
   }
   public  boolean accept(File dir,String name) {
      return name.endsWith(str);
   }              
}
public class ListFile {
   String extendsName=null;
   String [] allFileName=null; 
   String dir=null;
   public void setDir(String dir) {
      this.dir =dir;
   }
   public String getDir() {
      return dir;
   }
   public void setExtendsName(String s) {
      extendsName=s;
   }
   public String getExtendsName() {
      return extendsName;
   }
   public String [] getAllFileName() {
      if(dir!=null) {
        File mulu=new File(dir);
        FileExtendName help=new FileExtendName(extendsName);
        allFileName=mulu.list(help);
      }
      return allFileName;
   }  
}


<%@ page contentType="text/html;charset=gb2312" %>
<jsp:useBean id="file" class="tom.jiafei.ListFile" scope="request"/>
<HTML><body bgcolor=cyan><font size=2>
<form action="" Method="post">
  输入目录名,例如:D:/2000<input type=text name="dir" size=15><br>
  输入文件的扩展名,例如:java<input type=text name="extendsName" size=6>
  <input type=submit value="提交">
</form>
  <jsp:setProperty name="file" property="dir" param="dir"/>
  <jsp:setProperty name="file" property="extendsName" param="extendsName"/>
  <br><b>目录 <jsp:getProperty name="file" property="dir"/>中
   扩展名是 <jsp:getProperty name="file" property="extendsName"/> 的文件有:
  <% String [] fileName = file.getAllFileName();
     if(fileName!=null) {
       for(int i=0;i<fileName.length;i++) {
          out.print("<br>"+fileName[i]); 
       } 
     }
  %>
</font></body></HTML>
  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第0章 JSP程序设计课程介绍 4 第1章 JSP简介 5 1.1 软件编程体系 5 1.1.1软件编程体系简介 5 1.1.2企业应用开发架构 5 1.1.3 Java应用开发体系 6 1.1.4 常用应用开发环境介绍 8 1.1.5 JSP技术概述 10 1.1.6 JSP实现原理 12 1.2 TOMCAT服务器的安装与配置 14 第2章 JSP页面 17 2.1JSP页面 17 2.1.1理解服务器端执行 17 2.1.2JSP页面的基本结构 17 2.1.3JSP的运行原理 18 2.1.4JSP页面的成员变量和方法 18 2.1.5JSP代码 19 2.1.6 Java程序片 20 2.1.7Java表达式 22 2.1.8JSP中的注释 23 2.2HTML基础 24 2.2.1 HTML的基本概念 24 2.2.2HTML文件结构 26 2.2.3HTML的常用标记 29 2.2.4表单 31 2.3JAVASCRIPT脚本程序设计 38 2.3.1JavaScript语言概况 38 2.3.2 JavaScript基本数据结构 42 2.3.3 JavaScript程序构成 47 2.3.4基于对象的JavaScript语言 52 2.3.5在JavaScript中创建新对象 62 2.3.6 JavaScript对象系统的使用 66 2.3.7JavaScript窗口及输入输出 72 2.3.8Web应用经典案例研究 86 第3章 JSP标记 89 3.1 指令标记PAGE 89 3.2 指令标记INCLUDE 92 3.3 动作标记INCLUDE 93 3.4 动作标记PARAM 94 3.5 动作标记FORWARD 96 3.6 动作标记USEBEAN 98 第4章 内 置 对 象 99 4.1. REQUEST对象 99 4.1.1获取客户提交的信息 100 4.1.2处理汉字信息 102 4.1.3 request对象的常用方法 104 4.2 RESPONSE对象 105 4.2.1改变contentType属性的值 105 4.2.2 设置响应HTTP头 107 4.2.3重定向 107 4.3 SESSION对象 110 4.3 .1 session对象的ID 110 4.3.2 session对象存储数据 111 4.3.3 session对象的生存周期 115 4.3.4 session对象与URL重写 116 4.3.5 记数器 118 4.4 OUT对象 119 4.5 APPLICATION对象 121 4.5.1 applicaton对象的常用方法 121 4.5.2 用applicaton对象制作留言板 122 第5章 JSPJAVABEAN 126 5.1 编写和使用JAVABEAN 126 5.1.1 编写bean 126 5.1.2 使用 bean 128 5.2 获取和修改BEAN的属性 131 5.2.1动作标签getProperty 131 5.2.2 动作标记setProperty 133 5.3 BEAN的辅助类 139 5.4 举例 141 第6章 JSP文件操作 142 6.1获取文件信息 142 6.2创建与删除文件路径 145 6.3读写文件 147 6.3.2 JSP读取文件 149 6.3.3按行读取文件 152 6.3.4写文件 155 6.4 综合实例 158 6.5文件上传 161 6.6文件下载 166 第7章JSP中使用数据库 169 7.1 创建SQLSERVER数据库 169 7.2JDBC 169 7.3数据库的连接方式 169 7.3.1JDBC-ODBC桥连接 170 7.3.2使用纯Java数据库驱动程序 172 7.4查询操作 175 7.4.1顺序查询 176 7.4.2随机查询 184 7.4.3条件查询 190 7.4.5 模糊查询 196 7.5更新、添加与删除操作 199 7.6使用预处理语句 203 7.7基于CACHEDROWSET分页显示记录 211 7.8常见数据库的连接 218 7.8.1连接Oracle数据库 218 7.8.2连接MySql数据库 220
第1章 Java语言概述······························· (1) 1.1 Java语言及其产生···························· (1) 1.2 Java的特点································ (1) 1.3 Java的体系结构····························· (3) 1.3.1 Java的体系结构···························· (3) 1.3.2 Java虚拟机······························ (3) 1.3.3 垃圾回收机制····························· (3) 1.3.4 代码安全检测····························· (4) 1.4 Java的3种版本······························ (4) 1.5 Java开发环境概述···························· (4) 1.5.1 JDK的安装、配置和使用························ (4) 1.5.2 JDK工具箱····························· (6) 1.5.3 Eclipse开发环境的安装、配置和使用··················· (6) 1.5.4 Java程序的编写···························· (7) 1.6 本章小结································· (9) 习题1···································· (9) 第2章 Java语言基础······························ (11) 2.1 Java语言要素······························ (11) 2.1.1 标识符······························· (11) 2.1.2 关键字······························· (11) 2.1.3 分隔符······························· (12) 2.1.4 注释································ (12) 2.2 基本数据类型······························ (13) 2.2.1 简单类型······························ (13) 2.2.2 引用类型······························ (14) 2.2.3 常量································ (14) 2.2.4 变量································ (15) 2.3 运算符和表达式····························· (16) 2.3.1 算术运算符····························· (16) 2.3.2 关系运算符····························· (17) 2.3.3 逻辑运算符····························· (17) 2.3.4 位运算符······························ (18) 2.3.5 赋值运算符····························· (19) 2.3.6 其他运算符····························· (20) 2.3.7 运算符的优先级与结合性························ (21) 2.3.8 表达式与语句···························· (21) 2.4 控制语句································ (22) 2.4.1 选择结构控制语句·························· (23) 2.4.2 循环结构控制语句·························· (25) 2.4.3 转移语句······························ (27) 2.5 数组·································· (29) 2.5.1 一维数组······························ (29) 2.5.2 二维数组······························ (31) 2.5.3 多维数组······························ (32) 2.6 字符串································· (32) 2.6.1 字符串类······························ (33) 2.6.2 常用方法······························ (33) 2.7 综合应用实例······························ (34) 2.8 本章小结································ (37) 习题2···································· (37) 第3章 Java类和对象······························ (39) 3.1 面向对象基础······························ (39) 3.1.1 类································· (39) 3.1.2 对象································ (40) 3.1.3 消息································ (40) 3.2 继承·································· (40) 3.2.1 创建子类······························ (40) 3.2.2 成员变量和方法··························· (41) 3.2.3 对象的构造和初始化过程························ (44) 3.2.4 上转型对象····························· (45) 3.2.5 关键字this和super·························· (47) 3.2.6 对象的撤销和清理·························· (49) 3.3 多态·································· (50) 3.3.1 基本概念······························ (50) 3.3.2 方法重载······························ (50) 3.3.3 方法覆盖······························ (51) 3.3.4 变量覆盖······························ (53) 3.4 修饰符································· (53) 3.4.1 访问修饰符····························· (53) 3.4.2 非访问修饰符···························· (57) 3.5 内部类和匿名内部类··························· (59) 3.5.1 内部类······························· (59) 3.5.2 匿名内部类····························· (61) 3.6 接口·································· (63) 3.6.1 接口的定义····························· (63) 3.6.2 接口与多重继承··························· (63) 3.6.3 接口的实现····························· (64) 3.6.4 接口中的变量和方法························· (64) 3.7 包··································· (66) 3.7.1 包的作用······························ (66) 3.7.2 Java中定义的包··························· (66) 3.7.3 自定义包的创建和使用························ (66) 3.7.4 编译和生成包···························· (67) 3.8 综合应用实例······························ (68) 3.9 本章小结································ (70) 习题3···································· (71) 第4章 Java的I/O流和异常处理·························· (73) 4.1 I/O流概述································ (73) 4.2 System I/O类和Scanner类························· (75) 4.2.1 System I/O类···························· (75) 4.2.2 Scanner类······························ (76) 4.3 文件类································· (76) 4.3.1 使用File类访问文件系统························ (76) 4.3.2 随机文件读写···························· (78) 4.4 字节级输入输出流···························· (79) 4.4.1 数据输入输出流··························· (79) 4.4.2 文件输入输出流··························· (80) 4.4.3 缓冲输入输出流··························· (81) 4.4.4 管道输入输出流··························· (81) 4.4.5 格式化输出流···························· (81) 4.5 字符级输入输出类···························· (82) 4.5.1 字符输入输出类··························· (82) 4.5.2 缓冲读写类····························· (83) 4.5.3 文件读写类····························· (86) 4.5.4 格式化写类····························· (88) 4.6 对象序列化······························· (89) 4.6.1 对象输入流····························· (89) 4.6.2 对象输出流····························· (90) 4.7 异常处理································ (91) 4.7.1 Java中定义的异常·························· (91) 4.7.2 异常类的层次结构·························· (92) 4.7.3 捕获异常······························ (92) 4.7.4 异常处理的嵌套··························· (96) 4.7.5 自定义的异常和使用························· (97) 4.8 文件流综合应用实例··························· (98) 4.9 本章小结································ (106) 习题4··································· (106) 第5章 Java用户界面类和Applet························· (108) 5.1 AWT简介······························· (108) 5.2 AWT容器类······························ (108) 5.3 基本控件类······························· (110) 5.4 图形类································· (112) 5.5 事件类型及其处理··························· (112) 5.5.1 事件类······························ (113) 5.5.2 事件监听器····························· (113) 5.5.3 事件处理流程···························· (114) 5.6 布局管理器······························· (115) 5.6.1 FlowLayout····························· (115) 5.6.2 BorderLayout···························· (116) 5.6.3 GridLayout····························· (116) 5.6.4 CardLayout····························· (116) 5.6.5 GridBagLayout··························· (117) 5.7 Swing简介······························· (117) 5.7.1 Swing组件的特点·························· (118) 5.7.2 Swing包中的类··························· (118) 5.7.3 Swing包中的控件类························· (118) 5.8 Java Applet······························· (122) 5.8.1 Applet简介···························· (122) 5.8.2 Applet程序的编写·························· (124) 5.8.3 Applet程序的编译和执行······················· (125) 5.8.4 Applet的绘图和控制························· (126) 5.9 GUI设计综合应用实例·························· (128) 5.10 本章小结······························· (130) 习题5··································· (130) 第6章 Java网络编程······························ (132) 6.1 Java网络基础······························ (132) 6.1.1 IP地址······························ (132) 6.1.2 端口······························· (133) 6.1.3 套接字······························ (134) 6.1.4 数据报······························ (134) 6.1.5 传输协议······························ (135) 6.2 基于URL的高层次Java网络编程····················· (135) 6.2.1 从URL中读取内容························· (135) 6.2.2 建立URL连接并读取内容······················· (136) 6.3 基于Socket的网络编程························· (137) 6.3.1 Socket通信过程··························· (138) 6.3.2 创建客户端Socket·························· (139) 6.3.3 创建服务器端Socket························· (139) 6.3.4 打开输入输出流··························· (139) 6.3.5 关闭流和Socket··························· (141) 6.4 基于Datagram的网络编程························ (141) 6.4.1 数据报和套接字··························· (142) 6.4.2 创建客户端Datagram························· (142) 6.4.3 创建服务器端Datagram························ (142) 6.4.4 打开输入输出流··························· (143) 6.4.5 关闭流和Datagram·························· (143) 6.5 网络编程与应用实例·························· (144) 6.6 本章小结································ (150) 习题6··································· (150) 第7章 Java多线程编程····························· (152) 7.1 线程基础································ (152) 7.1.1 线程概述······························ (152) 7.1.2 线程的状态····························· (152) 7.1.3 线程的优先级···························· (153) 7.2 线程的创建······························· (153) 7.2.1 通过继承Thread类创建························ (153) 7.2.2 通过实现Runnable接口创建······················ (155) 7.3 多线程的创建······························ (156) 7.4 线程的调度······························· (159) 7.4.1 线程优先级的获取与设置······················· (159) 7.4.2 线程睡眠······························ (159) 7.4.3 线程让步······························ (159) 7.4.4 线程等待······························ (160) 7.4.5 线程唤醒······························ (160) 7.5 多线程的同步处理··························· (161) 7.5.1 多线程的互斥···························· (161) 7.5.2 synchronized方法·························· (161) 7.6 多线程综合应用实例·························· (164) 7.7 本章小结································ (168) 习题7··································· (168) 第8章 数据库编程······························· (170) 8.1 数据库基础······························· (170) 8.1.1 关系数据库····························· (170) 8.1.2 SQL基本内容···························· (171) 8.1.3 ODBC技术····························· (173) 8.2 JDBC数据库连接技术·························· (174) 8.2.1 JDBC概述····························· (174) 8.2.2 JDBC的实现及其驱动程序······················ (174) 8.2.3 JDBC的常用类和接口························ (175) 8.3 Java访问数据库的基本步骤······················· (176) 8.3.1 加载驱动程序类··························· (176) 8.3.2 建立JDBC连接··························· (177) 8.3.3 执行SQL语句··························· (179) 8.4 JDBC高级特性····························· (180) 8.4.1 预备语句······························ (180) 8.4.2 可滚动和可更新的结果集······················· (180) 8.4.3 元数据······························ (182) 8.4.4 事务······························· (183) 8.5 创建数据库······························· (184) 8.6 JDBC综合应用举例··························· (185) 8.7 本章小结································ (187) 习题8··································· (188) 第9章 Servlet与JSP······························ (189) 9.1 Java EE Web开发技术·························· (189) 9.2 Servlet基础······························· (190) 9.2.1 Servlet定义····························· (190) 9.2.2 Servlet工作方式··························· (191) 9.2.3 Servlet API····························· (192) 9.2.4 Servlet异常····························· (193) 9.3 配置Servlet工作环境·························· (193) 9.3.1 Servlet开发环境··························· (193) 9.3.2 Servlet类的配置··························· (194) 9.3.3 编写简单的Servlet·························· (195) 9.4 JavaBean基础······························ (196) 9.4.1 JavaBean基本概念·························· (196) 9.4.2 JavaBean的属性、方法和事件····················· (197) 9.4.3 一个简单的JavaBean························· (197) 9.5 JSP概述································ (198) 9.5.1 JSP基本概念···························· (198) 9.5.2 JSP技术的特点··························· (199) 9.5.3 JSP的工作方式··························· (199) 9.5.4 JSP和Servlet的区别························· (200) 9.6 编写简单的JSP····························· (200) 9.7 在JSP中访问数据库··························· (200) 9.8 JSP的设计模式····························· (202) 9.8.1 JavaBeanJSP的结合························ (202) 9.8.2 Servlet与JSP的结合························· (203) 9.9 JSP的语法要素····························· (203) 9.9.1 JSP脚本元素···························· (203) 9.9.2 JSP指令和动作元素························· (205) 9.9.3 JSP内置对象···························· (206) 9.10 Web综合应用实例··························· (209) 9.11 本章小结······························· (222) 习题9··································· (223) 第10章 RMI和EJB······························ (224) 10.1 RMI基础······························· (224) 10.1.1 RMI概述···························· (224) 10.1.2 RMI的目标和体系结构······················· (224) 10.1.3 RMI的工作机制·························· (225) 10.1.4 用RMI设计应用系统························ (226) 10.2 RMI API································ (227) 10.3 Java RMI与其他分布式技术······················· (228) 10.4 RMI部署问题····························· (229) 10.5 编写一个RMI应用系统························· (229) 10.6 EJB技术································ (233) 10.6.1 EJB基本概念··························· (233) 10.6.2 EJB组件····························· (234) 10.6.3 EJB容器····························· (235) 10.6.4 开发和部署EJB·························· (236) 10.6.5 EJB和其他分布式技术······················· (237) 10.6.6 基于EJB的Web应用程序实例···················· (238) 10.7 本章小结······························· (244) 习题10··································· (245) 附录A Java运算符及其优先级·························· (246) 附录B Java类路径和类加载器·························· (247) 参考文献···································· (249)
图书详细描述: 本书将Java语言作为大学生的计算机程序设计入门语言,其特色是内容全面、深入浅出、辅助教材立体配套。不但详细介绍了Java语言本身,而且讨论了面向对象的设计思想和编程方法、UML建模语言、图形用户界面的编程方法、网络和数据库程序的编程方法、线程的使用、Java集合框架等实用开发技术。全书以面向对象的程序设计方法贯穿始终,基础性和实用性并重。本书不仅能使读者掌握Java语言,而且能够让读者对现实世界中较简单的问题及其解决方法用计算机语言进行描述。    本书既可供大专院校用作“Java语言程序设计”课程教材,也可供Java 爱好者作为入门的自学教材。 目录第1章 Java语言基础知识 1.1 Java语言与面向对象的程序设计  1.1.1 面向对象的程序设计思想  1.1.2 Java语言的特点  1.1.3 Java类库 1.2 Java程序概述  1.2.1 Java开发环境  1.2.2 Application举例  1.2.3 Applet举例  1.2.4 Servlet举例  1.2.5 JSPJavaBean举例 1.3 基本数据类型与表达式  1.3.1 变量与常量  1.3.2 基本数据类型  1.3.3 表达式与运算符  1.3.4 类型转换 1.4 数组的概念 1.5 数组的创建和引用  1.5.1 数组的声明  1.5.2 数组的创建  1.5.3 数组元素的初始化  1.5.4 数组的引用  1.5.5 多维数组 1.6 本章小结 习题第2章 类与对象的基本概念 2.1 面向对象的程序设计方法概述  2.1.1 抽象  2.1.2 封装  2.1.3 继承  2.1.4 多态 2.2 类与对象  2.2.1 类的声明  2.2.2 对象的声明与引用  2.2.3 数据成员  2.2.4 方法成员  2.2.5 类的组织——包的概念  2.2.6 类的访问控制  2.2.7 类成员的访问控制 2.3 对象初始化和回收  2.3.1 构造方法  2.3.2 内存回收技术 2.4 应用举例  2.4.1 声明BankAccount类  2.4.2 声明toString()方法  2.4.3 声明存取款方法  2.4.4 使用DecimalFormat类  2.4.5 声明类方法生成特殊的实例  2.4.6 声明类变量 2.5 UML简介  2.5.1 类图  2.5.2 对象图 2.6 本章小结 习题第3章 类的方法 3.1 方法的控制流程  3.1.1 if选择结构  3.1.2 switch选择结构  3.1.3 for循环结构  3.1.4 while语句  3.1.5 do while语句  3.1.6 break语句  3.1.7 continue语句 3.2 异常处理简介  3.2.1 异常处理的意义  3.2.2 错误的分类  3.2.3 异常的处理  3.2.4 生成异常对象  3.2.5 声明自己的异常类 3.3 方法的重载 3.4 本章小结 习题第4章 类的重用第5章 接口与多态第6章 输入输出流第7章 对象群体的组织第8章 多线程第9章 图形用户界面第10章 JDBC与数据库访问第11章 Servlet程序设计第12章 JSP程序设计参考文献
JSPJavaServer Pages)、Servlet和JavaBeanJavaWeb开发中常用的技术。 JSP是一种基于Java语言的Web页面模板技术,允许开发者在HTML代码中嵌入Java代码。通过JSP,我们可以将动态内容嵌入静态页面中,使得页面内容能够根据用户的请求和业务逻辑进行动态生成。JSP页面的源码是以.jsp文件的形式存在的,其中包了HTML代码和Java代码。 Servlet是一种基于Java语言的服务器端编程技术,可以处理Web请求和生成Web响应。Servlet与JSP相辅相成,在JSP中嵌入的Java代码实际上是由Servlet来执行的。Servlet是通过继承javax.servlet.http.HttpServlet类并重写其中的方法来实现的,它可以通过接收客户端请求、处理业务逻辑、生成响应并将其发送给客户端来完成特定的任务。Servlet的源码是以.java文件的形式存在的,其中包了处理请求和生成响应的逻辑。 JavaBean是一种可重用的Java对象,通常被用于封装数据和业务逻辑。JavaBean具有特殊的命名和规范,它的属性通常通过getter和setter方法进行访问和设置。JavaBean可以在Servlet和JSP中使用,用于传递数据和执行特定的功能。JavaBean的源码是以.java文件的形式存在的,其中主要包了属性和相应的getter和setter方法。 总结来说,JSP、Servlet和JavaBean是在JavaWeb开发中常用的技术。JSP用于前端页面的动态生成,Servlet用于服务器端请求的处理和响应的生成,而JavaBean用于封装数据和业务逻辑。它们的源码分别是以.jsp、.java和.java的形式存在,分别包了前端页面和业务逻辑的实现。通过组合使用这三种技术,我们可以更加便捷地进行JavaWeb开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值