1. Java Bean 是一个简单的 java 类,一般放在WEB-INF下的 classes目录下(如果没有则需要手工新建)

 一个简单的Bean包括属性,getter ,setter方法,如果没有申明构造函数则会默认建一个无参的构造函数。   

jsp中引用javaBean有两种方式

<%@ page import="lib.liys.demo.*">

<jsp:useBean id="simpleBean"  scope="page" class="lib.liys.demo.*">

2. javaBean与表单form的关系

javaBean中的成员变量与form中的输入项一一对应。

 一个form提交后,可以用以下方式获得数据

<%request.setCharacterEncoding("GBK")%>

<jsp:useBean id="simpleBean"  scope="page" class="lib.liys.demo.*">

<jsp:setProperty name="simpleBean" property="*">

显示属性时可以是<%=simpleBean.getNmae%>

也可以是<jsp:getProperty name="SimpleBean" property="name">标签形式

以后推荐用标签形式来获得

3. javaBean 的保存范围

有四种,page  request  session application

4. javaBean 的删除

内置对象之间删除,例如 session.removeAttribute("simpleBean");

***重点掌握***

5.DAO设计模式

企业级应用主要分一下几层:

DAO分以下几部分

a. DatabaseConnection:

新建一个DatabaseConnection.java文件,包名可设置为 lib.liys.dbc

申明几个数据库连接参数的常量

private static final String DBDRIVER="org.gjt.mm.mysql";

private static final String DBURL="jdbc:msyql:localhost:3006/mldn";

private static final String DBUSER="admin";

private static final String DBPASSWD="system";

主要用到了以下两个语句

Class.forName(DBDRIVER);

conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWD);

最后定义一个getConnection 一个close()函数

b.VO 也就是value对象,一个实例对象对应数据库中的一条实际记录

主要包括成员变量,get,set函数

c.定义一个DAO接口主要将核心函数列出来

package lib.liys.dao;

import lib.liys.vo.*

import java.util.*

public Interface IEmpDAO{

public  boolean docreate(Emp emp) throws Exception;

public   List<Emp>  findAll(String keyWord)  throws Exception;

public   Emp findById(int empno) throws Exception;

 }

d.再定义一个DAO的实现类 impl

package lib.liys.dao.impl;

import java.sql.*;

import java.util.*;

import lib.liys.vo.*;

import lib.liys.dao.*;

public class EmpDAOImpl implements  IEmpDAO  {

private Connection conn =  null;

private PrepareStatement pstmt = null;

public void EmpDAOImpl( Connection conn){

   this.conn = conn;

}

public boolean docreate(Emp emp) throws Exception{

   boolean flag = false;

private String sql ="insert Emp(name,age,.......)value(?,?,?,?,?)";

   pstmt = this.conn.prepareStatement(sql);

pstmt.setString(1,emp.getName());

pstmt.setInt(2,emp.getAge());

....

flag = pstmt.executeUpdate();

this.pstmt.close();

return flag;

}

public   List<Emp>  findAll(String keyWord)  throws Exception{

private String sql ="select * from Emp where empname like ? or job like ? ";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1,"%"+keyWord+"%");

pstmt.setString(2,"%"+keyWord+"%");

     Result rs = this.pstmt.executeQuery();

   List<Emp> listEmp = null;

   Emp emp = null;

   while(rs.next()){

    emp = new Emp();

emp.setName(rs.getString(1));

。。。

listEmp.add(emp);

   }

this.pstmt.close();

return listEmp; 

}

public   Emp findById(int empno) throws Exception{

  String sql = "select name,job ... from emp where empno =?";

pstmt = conn.prepareStatement(sql);

pstmt.setInt(1,empno);

ResultSet rs = pstmt.executeQuery();

Emp emp =null

if(rs.next()){

emp = new Emp();

emp.setName(rs.getString(1));

.....

  }

pstmt.close();

return emp;

}

 }

d.接着定义一个DAO的代理类 proxy

package lib.liys.dao.proxy;

import java.util.*;

import lib.liys.dbc;

import lib.liys.vo.*

import lib.liys.dao.impl;

public class EmpDAOProxy implements IEmpDAO{

DatabaseConnection dbc= null;

IEmpDao dao= null;

public EmpDAOProxy(){

this.dbc = new DatabaseConnection();

this.dao= new EmpDAOImpl(dbc.getConnection());

}

public  boolean docreate(Emp emp) throws Exception{

boolean flag = false;

try{

  flag = this.dao.docreate(emp);

}catch (Exception e){

throw e;

}finally{

this.dbc.close();

}

return flag;

}

public   List<Emp>  findAll(String keyWord)  throws Exception{

List<Emp> listEmp;

try{

  listEmp = this.dao.findAll(keyWord);

}catch (Exception e){

throw e;

}finally{

this.dbc.close();

}

return listEmp;

}

public   Emp findById(int empno) throws Exception{

Emp emp = null;

try{

  emp = this.dao.findById(empno);

}catch (Exception e){

throw e;

}finally{

this.dbc.close();

}

return emp;

}

}

e.最后再建一个工厂类Factory

package lib.liys.dao.factory;

import lib.liys.dao.proxy.*;

import lib.liys.dao.*;

public Class DaoFactory{

EmpDAOProxy  daoProxy = null;

public static IEmpDao  getEmpDAOInstance(){

return  new EmpDAOProxy ();

}

d.开始测试

写一个emp_insert.jsp

<html>

<form....action=“emp_insert_do.jsp”  method =“post”>

...

</form>

</html>

再写一个emp_insert_do.jsp, 负责插入雇员信息

...

<%@page import = "ib.liys.dao.factory.*"%>

<%@page import = "java.text.*"%>

<% request.setCharacterEncoding("GBK"); %>

<jsp: useBean id ="emp" scope="request" class="lib.liys.dao.vo.Emp"/>

<jsp: setProperty name="emp" property="*">

try{
if(DAOFactory.getIEmpDAOInstance().doCreate(emp)){
%>
<h3>雇员信息添加成功!</h3>
<%
} else {
%>
<h3>雇员信息添加失败!</h3>
<%
}
%>

.......

}

最后是一个模糊查询页面 list_emp.jsp

<%@page contentTyp="text/html" pageEncoding="GBK"%>

<%@page import="lib.liys.dao.vo.*, lib.liys.dao.factory.*"%>

<%@page import="java.text.*"/>

<html>

...

<form action = "list_emp.jsp"  method ="post">

  请输入查询条件: <input type="text" name="kw">

<input type="submit" value="查询"><br>

<%request.setCharacterEncoding("GBK");%>

<%

String keyWord = request.getParameter("kw") ;
if(keyWord == null){
keyWord = "" ; // 如果没有查询关键字,则查询全部
}

  List<Emp> all = DAOFactory.getEmpDAOInstance().findall(keyWord );

iterator itr = all.getIterator();

while(itr.hasNext()){

Emp emp = itr.next();

。。。。

<td><%=emp.getName()%></td>

<td><%=emp.getAge()%></td>

     <td><%=emp.getJob()%></td>

  }

%>

</form>

 

  

java web 学习笔记 - Java Bean的更多相关文章

  1. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  2. [原创]java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. java web 学习笔记 编码问题总结

       java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...

  6. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  7. [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  8. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  9. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

随机推荐

  1. python可变參数调用函数问题

    一直使用python实现一些想法,近期在使用python的过程中出现这样一个需求,定义了一个函数.第一个是普通參数.第二个是默认參数,后面还有可变參数,在最初学习python的时候,都知道非keywo ...

  2. 2016.3.16__CSS3_选择器_边框_背景_蒙版mask__第九天

    CSS3 假设您认为这篇文章还不错.能够去H5专题介绍中查看很多其它相关文章. 今日课程预览 1. CSS3 的选择器 1.1 子选择器 比如:设置div下一级的p标签的颜色属性 div>p { ...

  3. PAT Rational Arithmetic (20)

    题目描写叙述 For two rational numbers, your task is to implement the basic arithmetics, that is, to calcul ...

  4. Android如何进行单元测试

    Menifest.xml中加入: <application>中加入: <uses-library android:name="android.test.runner&quo ...

  5. TMS320F28335项目开发记录6_28335之cmd文件具体解释

    1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间. 2.C语言生成的段 C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据 ...

  6. Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源代码实现

    假设Spark的部署方式选择Standalone,一个採用Master/Slaves的典型架构,那么Master是有SPOF(单点故障,Single Point of Failure).Spark能够 ...

  7. 2015-2016 ACM-ICPC Pacific Northwest Regional Contest (Div. 2) S Surf

    SurfNow that you've come to Florida and taken up surng, you love it! Of course, you've realized that ...

  8. 中国剩余定理模板&俄罗斯乘法

    void ex_gcd(ll a,ll b,ll &d,ll &x,ll &y){ if(!b){d=a;x=1LL;y=0LL;} else {ex_gcd(b,a%b,d, ...

  9. Ubuntu14.04 x64 zabbix 3.0 安装

    U buntu14.04 x64   zabbix 3.0 安装 苦于网上的文档很多,但是对初学者来说,很多都搭建不成功,我重新安装一下.记录一下. 下载deb wget http://repo.za ...

  10. JFreeChart基础(1) (转自 JSP开发技术大全)

    JFreeChart基础(1) (转自 JSP开发技术大全) JFreeChart是一个Java开源项目,是一款优秀的Java图表生成插件,它提供了在Java Application.Servlet和 ...