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)隐藏注释 <%--所要注释的内容--% ...
随机推荐
- 戴尔iDRAC服务器远程控制设置
对于远程的服务器,我们不能经常性的去机房维护,所以远程控制对于服务器来说就显得至关重要.那么你是用什么方式对服务器进行远程控制呢?远程桌面?还是KVM切换器?NO,你OUT了!如果你用的是戴尔的服务器 ...
- 1451 - Average 高速求平均值
怎样高速求取一段区间的平均值 用前缀的思想来看 很easy 可是 本题题意要求的是 大于等于一段长度的区间的平均值的最大值 并且给出的数据范围非常大 O(n*L)的直白比較算法 用于解决此问题不合适 ...
- 函数绑定 bind
函数拓展-bind bind实现的是:对函数绑定作用域 更改作用域的方法:call,apply,with,eval,bind call 和 apply 的比较 相同点:1.都是在使用时候(使用即执行) ...
- div拖拽缩放jquery插件编写——带8个控制点
项目中需要对div进行拖拽缩放,需要有控制面板8个控制点的那种,原以为这么常见的效果应该能搜索到很多相关插件,然而可以完成拖拽的实繁,却找不到我想要的,还是自己动手丰衣足食吧 效果预览(只支持pc端) ...
- SQL Server 海量数据查询代码优化以及建议
1.应尽量避免在 where 子句中对字段进行 null 值推断,否则将导致引擎放弃使用索引而进 行全表扫描,如: select id from t where num is nu ...
- VS2012 ASP.NET 母版页的创建与使用
在做牛腩新闻公布系统的过程中,须要使用ASP.NET的母版页来抽出全部网页的公共部分,以便更好的复用自己的网页布局和设计. 首先我们来看怎样创建一个新的母版页,例如以下图所看到的: 加入之后,例如以下 ...
- XAML实例教程系列 - 标记扩展(Markup Extensions) 六
XAML实例教程系列 - 标记扩展(Markup Extensions) 分类: Windows 8 Silverlight2012-06-21 13:00 1139人阅读 评论(0) 收藏 举报 扩 ...
- 【POI2004】【Bzoj2069】T2 洞穴 zaw
T2 洞穴zaw [问题描述] 在 Byte 山的山脚下有一个洞穴入口. 这个洞穴由复杂的洞室经过隧道连接构成. 洞穴的入口是 1 号点.两个洞室要么就通过隧道连接起来,要么就经过若干隧道间接的相连. ...
- linux下的zookeeper启动
zookeeper的安装目录:/usr/local/zookeeper-3.4.6/bin/zkServer.sh; 配置文件路径:../conf/zoo.cfg 端口 :2181: ZooKeepe ...
- Python split 分割中文
str8="中国 和 韩国 的区别" # a=str8.find("Python") # print a b=str8.find("和") ...