MVC开发模式:
M:Model模型 JavaBean&四种作用域
V:View视图 JSP
C:Controller控制器 Servlet
不使用框架,使用JSP+JavaBean+Servlet进行开发
但是在实际开发中,我们进行更为细致的划分:
分层思想:强内聚,弱耦合
整个业务流程是这样的:
浏览器即用户向服务器端发起请求,服务器端的控制器Servlet接收到用户的请求,做三件事:
1.获取表单的数据2.调用业务层的业务逻辑3.分发转向,其中调用的业务逻辑,业务层会去调用DAO层的基本增删改查方法,每一层都可以对JavaBean|三个域对象进行操作。最终结果通过JSP,返回给用户浏览器显示。
对于每一层,我们通常会创建如下包:
domain:JavaBean,实体bean,用于封装数据
service:业务层接口,如注册,登录……
service.impl:业务层接口的实现类
dao:dao接口,基本的增删改查方法
dao.impl:dao接口的实现类
servlet:servlet类
utils:工具类
exception:自定义异常类
jsp
其中接口可以看作是功能说明书,其中囊括了所有的方法。
下面写一个用户登录注册的Web小程序
根据上述的分层思想,JavaWeb程序的架构如上图所示。
User:实体Bean,封装数据,其中字段的名称需与数据库字段保持一致
Dao:数据访问层接口
其中的方法都是基本的增删改查,可访问数据库中的数据
Dao.impl:Dao接口的实现类
package com.itdream.dao.impl;
import com.itdream.dao.UserDao;
import com.itdream.domain.User;
import com.itdream.exception.UserExcisException;
//自己写的操作数据库的工具类,具体实现方法见之前写的博文《JDBC技术》
import com.itdream.utils.DBUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
/**
* Created by Dream on 2017/12/1.
*/
public class UserDaoImpl implements UserDao {
public void insert(User user)throws Exception{
Connection con = null;
PreparedStatement ps = null;
try{
con = DBUtils.getConnection();
String sql = "insert into users (username,password,email,birthday) values(?,?,?,?)";
ps = con.prepareStatement(sql);
ps.setString(1,user.getUsername());
ps.setString(2,user.getPassword());
ps.setString(3,user.getEmail());
SimpleDateFormat spf = new SimpleDateFormat("yyyy-MM-dd");
String date = spf.format(user.getBirthday());
ps.setString(4,date);
int result = ps.executeUpdate();
}catch (Exception