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. java.lang.IllegalArgumentException: sheetName &#39;&#39; is invalid

    1.错误描写叙述 java.lang.IllegalArgumentException: sheetName '' is invalid - character count MUST be great ...

  2. mac 查看python路径

    1,terminal : input: which python 2,  terminal: input : python  --->import sys  ----> print sys ...

  3. Python爬虫开发【第1篇】【HTTP与HTTPS请求与响应】

    一.HTTP.HTTPS介绍 HTTP协议(超文本传输协议):一种发布.接收HTML页面的方法 HTTPS协议:简单讲是HTTP安全版,在HTTP下加入SSL层 SSL(安全套接层),用于WEB的安全 ...

  4. HDUOJ Number Sequence 题目1005

     /*Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  5. 数据结构 - 希尔排序(Shell&#39;s Sort) 具体解释 及 代码(C++)

    数据结构 - 希尔排序(Shell's Sort) 具体解释 及 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/2 ...

  6. JBOSS和EJB学习一

    1.使用软件 IDE:Eclipse4.3(开普勒) EE版本 服务器:jboss EAP 6.2 eclipse-jboss plugin:jbosstools-Update-4.1.2.Final ...

  7. the largest value you actually can transmit between the client and server is determined by the amount of available memory and the size of the communications buffers.

    the largest value you actually can transmit between the client and server is determined by the amoun ...

  8. scapy基础-网络数据包结构

    网络层次模型,数据包的组成是学习scapy的基础,下文主要关注模型中各个层次的用途,ethernet II和ip包数据结构.    1.五层模型简介 名称 作用 包含协议 应用层 面向程序对程序的传输 ...

  9. luogu 4429 染色

    bjoi 2018 染色 推了个错误结论得了60分? 题目大意: 一个无重边和自环的无向图,并且对每个点分别给了一个大小为2的颜色集合,只能从这个集合中选一种颜色给这个点染色 求一个染色方案使得没有两 ...

  10. 微信公众平台appid和appsecret在哪

    1.appid和appsecret是微信公众平台服务号才有的,如果自己家的公众平台不是服务号,需要升级为服务号. 2.登录服务号,登录“服务”条目,“服务中心”如图. 3.点击“自定义菜单”-“开发模 ...