三层架构集成

目录

JSP基本介绍和Tomcat

基本语法和表单提交

页面跳转

Session和Cookie 

富文本编辑器和文件上传 

三层架构 

三层架构实例 

 util包:DBHelper:数据库连接包

 pojo包:User:用户的实体类

 biz包:IUserBiz:业务逻辑层的接口

 biz.impl包:UserBizImpl:业务逻辑层接口的实现类

 dao包:IUserDao:数据库访问层的接口

 dao.impl包:UserDaoImpl:数据库访问层接口的实现

JSP基本介绍和Tomcat

什么是JSP
是一种文件格式
写java,html,css,js
jsp本质上是java的额外封装,解析过程中优先解析java
<a href=“<%=“www.baidu.com”%>”>
.jsp -> .java -> .class -> jvm执行
Tomcat
默认端口 8080
如果出现了端口异常,修改端口

基本语法和表单提交

基本指令
<%=输入内容 %>
<% java脚本 %>
<%@page 页面指令 %>
<%@include 包含指令 %>
表单提交方式
get 通过地址栏带参,参数有长度限制
post 不通过地址栏带参,参数没有长度限制
文件上传的时候 必须是post,必须是多段式表单

页面跳转

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

Session和Cookie 

【都可以设定存在时间:session-30分钟,cookie-浏览器关闭】

  • session 服务端存储

  • cookie 客户端存储

    应用场景:

    • 浏览记录 cookie
    • 鉴权 session
    • 存数据库里面,缓冲数据库

富文本编辑器和文件上传 

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

三层架构 

没有学习三层架构:

jsp 将页面显示出来
dao 去数据库取数据,处理数据
dao层:1.拿数据 2.负责处理数据【系统的耦合性:各个模块连接的紧密度】
【三层架构】

各司其职
高内聚,低耦合
【结构】

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

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

三层架构实例 

建包和建类和接口

 util包:DBHelper:数据库连接包

package com.test.util;
/**
 * 连接数据库的工具包
 * @author 王真教掌门
 *
 */

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import oracle.jdbc.driver.OracleDriver;

public class DBHelper {
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	//导入驱动(sqlserver,oracle,mysql),一定要执行 build path,且需要导入对应的jar包
	static {
	//OracleDriver
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	//编写连接语句
	private static final String URL="jdbc:oracle:thin:@localhost:1521:orcl";
	/**
	 * 获得连接的方法
	 * @return
	 */
	public static Connection getCon() {
		try {
			return DriverManager.getConnection(URL,"scott","tiger");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
	/**
	 * 关闭资源的方法
	 * @param con
	 * @param ps
	 * @param rs
	 */
	public static void close(Connection con,PreparedStatement ps,ResultSet rs) {
		try {
			if(con!=null&&!con.isClosed()) {
				con.close();
			}
			if(!ps.isClosed()) {
				ps.close();
			}
			if(!rs.isClosed()) {
				rs.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	//测试是否连接到了数据库
	public static void main(String[] args) {
		System.out.println(DBHelper.getCon());
	}
}

 pojo包:User:用户的实体类

package com.test.pojo;
/**
 * 用户的实体类
 * @author 王真教掌门
 *
 */
public class User {
	private int userId;
	private String userName;
	private String userPwd;
	
	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getUserPwd() {
		return userPwd;
	}
	public void setUserPwd(String userPwd) {
		this.userPwd = userPwd;
	}
	
	public User() {
		// TODO Auto-generated constructor stub
	}
	
	public User(int userId, String userName, String userPwd) {
		super();
		this.userId = userId;
		this.userName = userName;
		this.userPwd = userPwd;
	}
	
}

 biz包:IUserBiz:业务逻辑层的接口

package com.test.biz;

import com.test.pojo.User;
/**
 * 业务逻辑层的接口
 * @author 王真教掌门
 *
 */
public interface IUserBiz {

	String login(User user);
	
}

 biz.impl包:UserBizImpl:业务逻辑层接口的实现类

package com.test.biz.impl;

import com.test.biz.IUserBiz;
import com.test.dao.IUserDao;
import com.test.dao.impl.UserDaoImpl;
import com.test.pojo.User;
/**
 * 业务逻辑层接口的实现类
 * @author 绥彼岸
 *
 */

package com.test.biz.impl;

import com.test.biz.IUserBiz;
import com.test.dao.IUserDao;
import com.test.dao.impl.UserDaoImpl;
import com.test.pojo.User;
/**
 * 业务逻辑层接口的实现类
 * @author 王真教掌门
 *
 */

public class UserBizImpl implements IUserBiz{
	private IUserDao userDao=new UserDaoImpl();
	
	@Override
	public String login(User user) {
		User use = userDao.login(user);
		//判断账号是否正确,正确的话不会为null
		if(use==null) {
			return "account not found";
		}
		//判断密码是否正确
		if(!use.getUserPwd().equals(user.getUserPwd())) {
			return "password error";
		}
		//登录成功
		return "login success";
	}
}

 dao包:IUserDao:数据库访问层的接口

package com.test.dao;

import com.test.pojo.User;
/**
 * 数据库访问层的接口
 * @author 王真教掌门
 *
 */

public interface IUserDao {
	
	User login(User user);

}

 dao.impl包:UserDaoImpl:数据库访问层接口的实现

package com.test.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.test.dao.IUserDao;
import com.test.pojo.User;
import com.test.util.DBHelper;
/**
 * 数据库访问层接口的实现
 * @author 王真教掌门
 *
 */
public class UserDaoImpl implements IUserDao{
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	
	@Override
	public User login(User user) {
		try {
			con = DBHelper.getCon();
			String sql="SELECT * FROM T_USER WHERE USE_NAME=?";
			ps=con.prepareStatement(sql);
			ps.setString(1, user.getUserName());
			rs=ps.executeQuery();
			if(rs.next()) {
				User use=new User();
				use.setUserName(rs.getString(2));
				use.setUserPwd(rs.getString(3));
				return use;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

以上就是Java 三层架构集成的一些内容!!

 感 谢 阅 读 ……

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值