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. 【Hibernate】Hibernate的多表查询

    在<[Hibernate]Hibernate的聚类查询.分组查询.排序与时间之差>(点击打开链接)一文中已经讲述过怎样利用HQL语句代替SQL语句.进行聚类查询.分组查询.排序与时间之差的 ...

  2. 第1章 SQL核心

    第1章 SQL核心正在更新内容,请稍后

  3. 有时候当你改动了xib &#160; 你调试,各种改的时候又没变化的时候

    当你xib 改变了   调试的时候又没变化的时候,当你各种改错无用的时候,就是xcode xib的缓存问题了.  please clear xcode . command + shift + K . ...

  4. MyEclipse,Eclipse注释规范模板

    注释的作用:myeclipse中java文件头注释格式设置,最终可用于javadoc.exe生成API文档,同时提高了代码的可读性 设置方法: windows->preferences-> ...

  5. grep 并列查询 效率 且 或

    find / | grep -v python | grep -v xl_ | grep -v xiaole |grep redis [root@hadoop3 ~]# find / | grep - ...

  6. hive使用

    运行hadoop [root@hadoop0 ~]# start-all.sh 进入命令行[root@hadoop0 ~]# hive 查询昨天的表 hive> select * from st ...

  7. 蓝书2.4 AC自动机

    T1 玄武密码 bzoj 4327 题目大意: 一些字符串 求这些字符串的前缀在母串上的最大匹配长度是多少 思路: 对于所有串建立AC自动机 拿母串在自动机上匹配 对所有点打标记 以及对他们的fail ...

  8. POJ2208 Pyramids 四面体体积

    POJ2208给定四面体六条棱(有序)的长度 求体积 显然用高中立体几何的方法就可以解决. 给出代码 #include<iostream> #include<cstdio> # ...

  9. Java集合类解析 ***

    collection集合 Map集合 Hashtable和HashMap的区别: Hashtable的方法是同步的,而HashMap的方法不是.HashMap可以将空值作为一个表的条目的key或val ...

  10. RDA PQ工具使用 (屏参调整)

    使用客户规格书,制作屏参文件. 注意:,必填区和计算区,必填区根据屏参的SPEC填写,具体的屏参文件参数通过点击“Calc Sync”生成. 如:HV320WHB-N81的SPEC: 打开“Color ...