javaWeb知识回顾&三层架构项目集成

目录

web01

安装tomcat

Web02

表单提交方式

Web03

jsp的跳转方式

Web04

数据库连接语句

Web07 

cookie和session的异同

Web09 

分页功能的sql语句

web10

文件上传

操作流程

三层架构项目中的应用 

数据库连接语句 

 创建实体类

业务逻辑层实现代码

逻辑层接口代码

数据库访问层接口代码

数据库访问层实现类代码

                                                                                                                 ——2022.4.13


web01

什么是jsp?

jsp是一种文件格式用于编写java,javascript,htm,jsp本质上就是额外封装,在解析过程中优先解析java代码

安装tomcat

教程:JavaWeb01.web环境搭建

tomcat默认端口:8080

如果出现了端口异常,仅需要双击服务器修改端口

Web02

基本指令

  • <%=输入内容%>
  • <% java脚本 %>
  • <% page页面指令 %>
  • <% include 包含指令 %>

表单提交方式

  • get 通过地址栏带参,参数有长度限制
  • post 不通过地址栏带参,参数没有长度限制

ps:文件上传的时候,必须使用post,必须是多段式表单

Web03

jsp的跳转方式

转发  forward

  • 可以携带数据(请求中的)
  • 地址栏不变
  • 服务器行为

重定向 redirect

  • 不可以携带数据(请求中的)
  • 地址栏会变
  • 是客户端行为

Web04

数据库连接语句

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

 

Web07 

cookie和session的异同


同:都可以设定存在时间:session默认30min,cookie默认浏览器关闭

异:

session  服务端存储
cookie  客户端存储
应用场景:

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

Web09 

分页功能的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 t_news a
)b where myr between begin and end;

web10

文件上传


操作流程

    将文件保存到电脑路径中
    将保存的电脑路径存到数据库
    绑定tomcat映射,为保存文件的目录加上访问路径
ps:文件上传可以使用UUID生成一个不重复的名字        UUID.randomUUID() 

富文本编辑器
使用实质:将输入的语句变成html语句进行保存

三层架构项目中的应用 

创建接口和实现类,用接口去约束实现类里面的方法

 

数据库连接语句 


package com.util;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import oracle.jdbc.driver.OracleDriver;
 
public class DBHelper {
	
	//加载驱动
	static {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//定义url
	private static final String URL="jdbl:oracle:thin:@localhost:1521:orcl";
	
	//获得链接
	public static Connection getCon() {
		Connection con=null;
		try {
			con=DriverManager.getConnection(URL,"scott","sa123");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return con;
	}
	
	//关闭资源
	public static void close(Connection con,PreparedStatement ps,ResultSet rs) {
		try {
			if(!con.isClosed()&&con!=null) {
				con.close();
			}if(!ps.isClosed()) {
				ps.close();
			}if(!rs.isClosed()) {
				rs.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 创建实体类

package com.pojo;
 
public class User {
	private int userid;
	private String username;
	private String userpwd;
	private String usersex;
	private int userage;
	
	public String getUsersex() {
		return usersex;
	}
	public void setUsersex(String usersex) {
		this.usersex = usersex;
	}
	public int getUserage() {
		return userage;
	}
	public void setUserage(int userage) {
		this.userage = userage;
	}
	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;
	}
	
	@Override
	public String toString() {
		return "User [userid=" + userid + ", username=" + username + ", userpwd=" + userpwd + "]";
	}
	
	public User() {
		// TODO Auto-generated constructor stub
	}
	public User(int userid, String username, String userpwd, String usersex, int userage) {
		super();
		this.userid = userid;
		this.username = username;
		this.userpwd = userpwd;
		this.usersex = usersex;
		this.userage = userage;
	}
	

}

业务逻辑层实现代码

package com.biz.impl;
 
import com.biz.IUserbiz;
import com.dao.IUserDao;
import com.dao.impl.UserDaoImpl;
import com.pojo.User;
 
/**
 * 
 * @author lihao
 *
 */
public class UserBizImpl implements IUserbiz{
	IUserDao ud = new UserDaoImpl();
	
	public int logon(String uname,String upwd,String usex,int uage){
		try {
			int uid=ud.queryMaxUserId();
			User u=new User(uid,uname,upwd,usex,uage);
			return ud.logon(u);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}
	
	public String login(String uname,String upwd) {
		User u =ud.login(uname);
		if(u==null) {
			return "account not found";
		}
		if(!upwd.equals(u.getUserpwd())) {
			return "password error";
		}
		return "login success";
	}

}

逻辑层接口代码

package com.biz;
 
import com.pojo.User;
 
import newsProject.T_user;
 
/**
 * 用户逻辑层接口
 * @author lihao
 *
 */
public interface IUserbiz {
	
	int logon(String uname,String upwd,String usex,int uage);
	
	String login(String uname,String upwd);

}

数据库访问层接口代码


package com.dao;
 
import com.pojo.User;
 
public interface IUserDao {
	
	User login(String uname);
	
	int logon(User user);
	
	int queryMaxUserId();
}

数据库访问层实现类代码

package com.dao.impl;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
 
import com.dao.IUserDao;
import com.pojo.User;
 
import newsProject.DBHelper;
 
public class UserDaoImpl implements IUserDao{
	private Connection con;
	private PreparedStatement ps;
	private ResultSet rs;
	
	@Override
	public User login(String uname) {
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("select * from t_user where user_name = ?");
			ps.setString(1,uname);
			rs=ps.executeQuery();
			if(rs.next()) {
				User u = new User();
				u.setUserid(rs.getInt(1));
				u.setUsername(rs.getString(2));
				u.setUserpwd(rs.getString(3));
				u.setUsersex(rs.getString(4));
				u.setUserage(rs.getInt(5));
				return u;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
 
	@Override
	public int logon(User user) {
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("insert into t_user(user_id,user_name,user_pwd,user_sex,user_age) values(?,?,?,?,?)");
			ps.setInt(1,user.getUserid());
			ps.setString(2,user.getUsername());
			ps.setString(3,user.getUserpwd());
			ps.setString(4,user.getUsersex());
			ps.setInt(5,user.getUserage());
			return ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return 0;
	}
	
	public int queryMaxUserId() {
		int i=0;
		try {
			con=DBHelper.getCon();
			ps=con.prepareStatement("select max(user_id) from t_user");
			rs=ps.executeQuery();
			if(rs.next()) {
				i=rs.getInt(1)+1;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return i;
	}
}

                                                                                                                 ——2022.4.13

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值