JavaWeb.三层架构项目集成

前言:到现在我一共发表了11篇与Web相关的文章,那么今天这一篇在讲三层架构项目集成的同时,我会把之前的在简单的讲一下。

前篇总结

什么是jsp

    -是一种文件格式
    - 写java,html,css,js
    - jsp本质上是java的额外封装,解析过程中优先解析java
        ">
    - .jsp -> .java -> .class -> jvm执行

 安装tomcat
    - 默认端口 8080
    - 如果出现了端口异常,修改端口

jsp的跳转方式
    - 转发 forward 
        - 可以携带数据(请求中的)
        - 地址栏不变
        - 是服务器行为
    - 重定向 redirect 
        - 不可以携带数据(请求中的)
        - 地址栏变
        - 是客户端行为

基本指令
    - <%=输入内容 %>
    - <% java脚本 %>
    - <%@page 页面指令 %>
    - <%@include 包含指令 %>
表单提交方式
    - get  通过地址栏带参,参数有长度限制
    - post 不通过地址栏带参,参数没有长度限制

    > 文件上传的时候 必须是post,必须是多段式表单

jdbc
    - jdbc:oracle:thin:@localhost:1521:orcl

【都可以设定存在时间:session-30分钟,cookie-浏览器关闭】
session 服务端存储
cookie  客户端存储
应用场景:
    * 浏览记录  cookie
    * 鉴权  session
    * 存数据库里面,缓冲数据库

sql语句怎么写?规律
    【规律】 page当前页数 rows显示条数
            page:1 rows:10  1~10
            page:2 rows:10  11~20
            page:3 rows:10  21~30
        begin(开始位置): (page-1)*rows+1
        end(结束位置): page*rows
    【sql】
        select * from (
            select a.*,rownum myr from stu a
        )b where myr between begin and end;

文件上传
    - 文件上传的主要操作
        * 1.将文件保存到电脑路径中
        * 2.将保存的电脑路径存到数据库
        * 3.绑定tomcat映射,为你保存文件的目录加上一个访问路径
    - 如果诞生一个不重复的名字
        * 使用UUID    UUID.randomUUID()
富文本编辑器 (把你输入的语句变成了html来保存)

没有学习三层架构时:
    * jsp 将页面显示出来
    * dao 去数据库取数据,处理数据

    dao层:1.拿数据 2.负责处理数据
    【系统的耦合性:各个模块连接的紧密度】

【三层架构】
    * 各司其职
    * 高内聚,低耦合

【结构】
    * 表示层     
    * 业务逻辑层     biz    
    * 数据库访问层   dao     

【调用顺序】
    表示层->业务逻辑层->数据库访问层
    表示层<-业务逻辑层<-数据库访问层

【命令规则】
    com.biz -> Biz接口
    com.biz.impl ->Biz的接口实现类
    com.dao -> Dao接口
    com.dao.impl -> Dao接口的实现类

三层架构项目集成

我们今天在一篇主要是在上一篇的基础上的完善代码

建立以下包和类和接口:

JavaWeb.三层架构项目集成_第1张图片

 

 用户登录首页代码:

   

处理登陆代码:

<%
//表示层 -> 业务逻辑层(biz) -> 数据库操作层(dao)
//取得用户数据
String username=request.getParameter("username");
String password=request.getParameter("password");
//将数据封装到实体类
User user = new User(username, password);

//登录
IUserBiz userBiz=new UserBizImpl();
//调用业务逻辑层的方法
String msg= userBiz.login(user);
%>

<%=msg%>

IGoodsBiz.java代码:

int insertGoods(Goods goods);

    int deleteGoods(Goods goods);

    int editGoods(Goods goods);

    List queryGoods(Goods goods);

IUserBiz.java代码:

 String login(User user);

GoodsBizlmpl.java代码:

public class GoodsBizlmpl implements IGoodsDao{

	@Override
	public int insertGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int deleteGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int editGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public List queryGoods(Goods goods) {
		// TODO Auto-generated method stub
		return null;
	}

}

IGoodsDao.java代码:

int insertGoods(Goods goods);

	    int deleteGoods(Goods goods);

	    int editGoods(Goods goods);

	    List queryGoods(Goods goods);

IUserDao.java代码:

User queryByName(User user);

GoodsDaolmpl.java代码:

public class GoodsDaolmpl implements IGoodsDao{

	@Override
	public int insertGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int deleteGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public int editGoods(Goods goods) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public List queryGoods(Goods goods) {
		// TODO Auto-generated method stub
		return null;
	}

UserDaolmpl.java代码:

public class UserDaoImpl implements IUserDao{

	@Override
	public User queryByName(User user) {
		// 根据用户名和密码去数据库查询数据
		if("lxy".equals(user.getUsername())&&"lxy123".equals(user.getPassword())) {
            return new User("","");
		}
		return null;
	}

}

User.java代码:

private String username;
	private String password;
	
	
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	public User(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}

DBHelper.java代码:

//加载驱动
    static{
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    //定义链接字符串
    private static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";

    //获得链接
    public static Connection getCon() {
        try {
            return DriverManager.getConnection(URL,"scott","sa123");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    //关闭资源
    public static void close(Connection con,PreparedStatement ps, ResultSet rs) {
        try {
            if (con!=null&&!con.isClosed()) {
                con.close();
            }if (ps!=null) {
                ps.close();
            }
            if (rs!=null) {
                rs.close();
            }
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

今天就到这里,拜拜ヽ(✿゚▽゚)ノ 。

你可能感兴趣的:(java,web,eclipse)