java web 学习笔记 - Java Bean
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的更多相关文章
- JAVA Web学习笔记
JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...
- [原创]java WEB学习笔记95:Hibernate 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- java web 学习笔记 编码问题总结
java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...
- Java Web 学习笔记 1
Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...
- [原创]java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java Web学习笔记之---EL和JSTL
Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...
- Java Web学习笔记之---JSP
Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...
随机推荐
- Project Perfect让Swift在server端跑起来-Perfect in Visual Studio Code (四)
编者语 : 本系列文章已经被Perfect官方引用了,这样的感觉非常好.感恩!Thx all ! Visual Studio Code是一个轻量级的编辑器,但也功能丰富,通过插件你能够完毕如Cordo ...
- 【Unix编程】C/C++获取目录下文件或目录
在Unix/Linux系统中,要获取一个指定目录下所有的文件或文件夹,一般用dirent.h(POSIX标准定义的目录操作头文件). 一.数据类型 在头文件<dirent.h>中定义了两种 ...
- 异步FIFO的编程
对于异步FIFO.最基本的两个方面是地址控制和空.满标志位的产生.首先地址控制分别为读地址和写地址,每次读写时能读写地址应该加1.计数次数为ram深度的2倍.当读写地址相等时则空标志位有效,当读写地址 ...
- Cocos2D-X2.2.3学习笔记12(瞬时动作)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVjYmxvZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- APICloud平台的融云2.0集成
融云2.0的官方文档地址:http://docs.apicloud.com/端API/开放SDK/rongCloud2 项目须要IM模块,最后还是选择了融云.在iOS原生开发中,融云sdk集成了聊天界 ...
- HDU 1018 Big Number (log函数求数的位数)
Problem Description In many applications very large integers numbers are required. Some of these app ...
- 仰视源代码,实现strcmp
//这是系统库的实现 int strcmp(const char* src, const char* dest) { int rtn = 0; while(!(rtn = *(unsigned cha ...
- [办公自动化]PPT文件太大,如何压缩?
如果你经常需要制作PPT,文件太大的确是个问题. 那么应该如何压缩呢? 以office 2007为例 第一.可以选中图片,然后双击,在弹出的菜单栏中,选择压缩图片. 然后选择选项, 有三种比例可选,建 ...
- linux用于文件解压缩的命令
1 gzip gzip -<压缩率> 压缩率用数字(1-9)来表示,越大,则压缩率越大. 2 bz2 解压bz2 bzip2 -d filename.bz2
- js 获取函数的所有参数名
具体思路: 利用Function.toString()方法,获取到函数的源码,再利用正则匹配获取到参数名字. 实现代码(代码基于ES6): // 获取函数的参数名 function getParame ...