JavaWeb学习第二十七天——项目实例

项目实例:

客户管理系统

先写原型:只有页面,并没有实际的功能;

功能分析:

添加客户;查询;编辑;删除;多条件组合查询;

创建表

创建包:公司名.项目名.分层

com.haut.damain

com.haut.Dao

com.haut.service

com.haut.servlet

 

程序流程:

例如删除功能:

从主页面点击链接—>Servlet中,直接找到delete方法(1 获取参数id2传递cidservice的方法完成删除,3 保存成功信息到request4转发到msg.jsp显示成功页面)à到service中(调用Dao中的方法)->Dao中(执行)  最后Servlet将成功信息传递到msg.jsp页面。

 

多条件组合查询:

Query.jsp—>Servlet中找到query方法(1 封装表单数据(表单传递过来的几个参数) 2 调用service方法,返回查询结果集,3保存到request 4 转发到页面中)àservice(调用Dao中的方法)àDao(query(){查询,返回结果listservice})

 

Dao中最重要的是SQL语句的编写:

StringBuilder sql = new StringBuilder(select * from stu where 1=1);

List<Objece>  param = newarrayList<Object>;

String name=stu.getName();

If(name!=null&&!name.trim().isEmpty()){

Sql.append(“add name like ?”); param.add(“%” + name +”%”);}

String gender = stu.getGender();

If(gender!=null&&gender.trim().isEmpty()){

Sql.append(“add name like ?”);param.add(“%” + gender+”%”);

}……

执行: return qr.query(sql.toString,newBeanListHandler<Stu>(stu.class)

Param.toString))

分页显示:

1 分页的优点:只查询一页,

2 分页的数据:页面的数据都是Servlet传过来的

Servlet:当前页:pageCodepc

        总页数:totalPagestp 总记录数(dao获取)/每页的记录数

        当前页数据:beanList

数据的传递:

把分页的数据封装到Javabean中;

数据有:当前页码,总页数(不需要定义这个变量,只需要定义这个get 方法,),总记录数,每页记录数,当前页记录(

List<T> beanList

分页在各层中的处理:

页面:给出分页相关的链接。

Servlet:创建pageBean对象,给所有数据赋值然后传递给页面

Service

Dao:查询记录数据

行数:select count(*)  t  表名

记录数:select * from 表名 limit x,y(x行开始,一共y )

JavaWeb监听器

三大组件:Servlet   Listener(监听器)  filter

Listener:是一个接口,内容有我们来实现,他需要注册,例如注册在按钮上,监听器中的方法,会在特殊事件发生时被调用。

观察者模式:

JavaWeb中的监听器:

事件源:三大域

1 ServletContext

声明周期监听ServletContextListener接口:他有两个方法,一个出生命时调用,

contextDestroyed(ServletContextEvent sce)

一个结束时调用。

contextInitialized(ServletContextEvent sce)

属性监听ServletConnectionAttributeListener他有三个方法,一个在添加属性是调用,attributeAdded(ServletContextAttributeEventscab)

一个在死亡时调用,

一个在移除是调attributeRemoved(ServletContextAttributeEventscab)

最后一个是在替换属性是调用。

attributeReplaced(ServletContextAttributeEvent scab)

2 HTTPSession

声明周期监听:HttpSessionListener:他有两个方法,一个出生时调用,一个结束时调用。

属性监听HTTPSessionAttributeListener他有三个方法,一个在添加属性是调用,一个在死亡时调用,一个在替换是调用,最后一个是在移除属性是调用。

3 ServletRequest

生命周期监听:ServletRequestListener:他有两个方法,一个出生时调用,一个结束时调用。

属性监听ServletRequestListener他有三个方法,一个在添加属性是调用,一个在死亡时调用,一个在替换是调用,最后一个是在移除属性是调用。

Javaweb中,完成编写监听器

写一个监听器,就必须要去实现某个监听器接口;

注册,在web.xml中配置完成注册

事件对象:八大监听器

ServletContextEventServletContext  getservletConnection()

HttpSessionEvent: HttpSession getSession()

ServletRequest

   ServletContextgetServletContext()

   ServletRequest  getServletRequest()

ServletContextAttributeEven

HTTPSessionBinding

ServletRequestAttributeEven

感知监听:

他用来添加到Javabean,而不是添加到三大域上

这两个监听器都不需要在web.xml中注册

HTTPSessionBindingListener:添加到Javabean上,Javabean就知道自己是否添加到session中了。

国际化

资源文件命名:基本名+locale部分+.properties

例如:stu_zh_CN.properties,其中基本名是stu,而zh_CHLocale部分,必须所有的资源文件基本名相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值