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)隐藏注释 <%--所要注释的内容--% ...
随机推荐
- openstack (5)-- 部署 Neutron 网络服务
Neutron 概念: 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和删除网络,网络的连 ...
- dotNet Core初学之创建第一个dotNetCore项目
首先创建解决方案dotNetCrazy 一.创建项目 1.这里选择.Net Core 选择ASP.NET Core Web 应用程序 名称暂且叫CoreCrazy 这里我们选择 web应用程序(模型视 ...
- Android 布局自适应屏幕
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenFzNjI3NjExMzA=/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- android 特殊符号开头的联系人归并至“#”下
在PeopleActivity界面.联系人的显示位置是由其display name的第一个字符决定的. 数字开头的联系人会显示在"#"这个header下. 中英文联系人会显示在&q ...
- Delphi中处理URL编码解码
Delphi中处理URL编码解码 一.URL简单介绍 URL是网页的地址,比方 http://www.shanhaiMy.com. Web 浏览器通过 URL 从 web server请求页面 ...
- 获得了Root权限后Read-only file system
获得了Root权限后,adb shell进入文件系统,有时仍然不能对系统文件夹进行写操作,典型的如删除/system/app下的Apk, 例如系统报:rm failed for xxx.apk, Re ...
- 关于redis、memcache、mongoDB的对比
从以下几个维度,对 Redis.memcache.MongoDB 做了对比.1.性能都比较高,性能对我们来说应该都不是瓶颈.总体来讲,TPS 方面 redis 和 memcache 差不多,要大于 m ...
- BZOJ_2565_最长双回文串_manacher
BZOJ_2565_最长双回文串_manacher Description 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不 ...
- bzoj1036 [ZJOI2008]树的统计Count——LCT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1036 LCT水题! 然而没有1A(咬牙)! 注意值有负数,所以取 max 的话要把作为“哨兵 ...
- 深入理解JMM(Java内存模型) --(四)volatile
volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别.理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这 ...