使用MVC框架简单搭建一个数据库-后台-服务器Web项目

在对Tomcat技术基本了解之后,用MVC框架简单搭建一个数据库-后台-服务器Web项目

MVC框架简介

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
  • Model(模型)表示应用程序核心(比如数据库记录列表)
  • View(视图)显示数据(数据库记录)
  • Controller(控制器)处理输入(写入数据库记录)

首先,构建数据库,在servlet用户下建表

create user servlet identified by servlet;
grant connect,resource to servlet;
create table t_user(
       tid number primary key,
       uname varchar2(20),
       pwd 
);
select * from t_user for update;
alter table t_user add sex number check (sex in('1','0'))

总共四个字段:id,用户名。密码,性别

开始搭建一个简单web项目
在这里插入图片描述

看到有生成的目录结构在这里插入图片描述

按照之前的链接: IDEA的Servlet类链接tomcat,我的第一个Web项目简单部署一下Idea项目和Tomcat关联

在File->project structure->libraries中导入oracle的驱动
在这里插入图片描述
结果:在这里插入图片描述

在src目录下创建以下几个package:

  • com.my.dao:数据访问层(持久化层)——数据的增删改查,与数据库建立连接;封装了对数据库的curd操作
  • com.my.pojo:简单的Java对象
  • com.my.service:业务逻辑层——做一些业务逻辑地处理,并给控制层返回结果
  • com.my.servlet:servlet类,用于控制页面交互逻辑,运行在服务器上的java程序
  • com.my.util:工具类

在这里插入图片描述

项目搭建完成后:

.my.dao:数据访问层(持久化层)
my.dao.UserDao
package com.my.dao;

import com.my.pojo.User;

public interface UserDao {
    public User Login(String uname,String pwd);
}

my.dao.UserDaoImpl
package com.my.dao;

import com.my.pojo.User;
import com.my.util.DBUtil;

import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDaoImpl implements UserDao {
    @Override
    public User Login(String uname,String pwd) {
        String sql = "select * from t_user where uname = ? and pwd = ?";
        ResultSet rs = DBUtil.select(sql, uname, pwd);
        User u = null;
        try {
            if(rs.next()){
                String name = rs.getString("uname");
                String password = rs.getString("pwd");
                int sex = rs.getInt("sex");
                u = new User();
                u.setUname(name);
                u.setPwd(password);
                u.setSex(sex);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return u;
    }
}

.my.service:业务逻辑层
my.service.UserService
package com.my.service;

import com.my.pojo.User;

public interface UserService {
    public User Login(String uname,String pwd);
}
my.service.UserSericeImpl
package com.my.service;

import com.my.dao.UserDaoImpl;
import com.my.pojo.User;

public class UserServiceImpl implements UserService {
    private UserDaoImpl udi;
    public UserServiceImpl() {
        udi = new UserDaoImpl();
    }
    @Override
    public User Login(String uname,String pwd) {
        return udi.Login(uname,pwd);
    }
}
.my.pojo:简单的Java对象
my.pojo.User
package com.my.pojo;

import java.io.Serializable;

public class User implements Serializable {
    private String uname;
    private String pwd;
    private int sex;

    public User() {
    }

    public User(String uname, String pwd, int sex) {
        this.uname = uname;
        this.pwd = pwd;
        this.sex = sex;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "User{" +
                "uname='" + uname + '\'' +
                ", pwd='" + pwd + '\'' +
                ", sex=" + sex +
                '}';
    }
}

.my.servlet:servlet类
my.servlst.Servlet1
package com.my.servlet;

import com.my.pojo.User;
import com.my.service.UserService;
import com.my.service.UserServiceImpl;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "Servlet1",urlPatterns = "/ser1")
public class Servlet1 extends HttpServlet {
    private UserServiceImpl usi;
    public Servlet1() {
        usi = new UserServiceImpl();
    }

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String uname = req.getParameter("uname");
        String pwd = req.getParameter("pwd");
        //访问业务层访问层
        User user = usi.Login(uname,pwd);
        if(user!=null){
            HttpSession session = req.getSession();
            session.setAttribute("user",user);
            resp.sendRedirect("ser2");
        }else{
            resp.getWriter().write("用户名或密码错误,请重新输入");
        }
    }
}
my.servlst.Servlet2
package com.my.servlet;

import com.my.pojo.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet(name = "Servlet2",urlPatterns = "/ser2")
public class Servlet2 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        HttpSession session = req.getSession();
        User user = (User) session.getAttribute("user");
        if(user.getSex()==0) {
            resp.getWriter().write("登录成功" + user.getUname()+"女士");
        }else{
            resp.getWriter().write("登录成功" + user.getUname()+"先生");
        }
    }
}
.my.util:工具类
my.util.DBUtil用于连接数据库
package com.my.util;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;


public class DBUtil {
    private static String url = null;
    private static String user = null;
    private static String password = null;
    private DBUtil(){}


    static {
       Properties pro =new Properties();
       try {
           InputStream in = DBUtil.class.getClassLoader().getResourceAsStream("db.properties");
           pro.load(in);
           url = pro.getProperty("url");
           user = pro.getProperty("user");
           password = pro.getProperty("password");
       } catch (IOException e) {
           e.printStackTrace();
       }
   }
    private static Connection conn =null;
    public static Connection getConn(){
        if(conn==null) {
            try {
                conn = DriverManager.getConnection(url, user, password);
                conn.setAutoCommit(false);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        return conn;
    }
    private static Statement stat =null;
    public static Statement getStat(){
        try {
            conn = getConn();
            stat = conn.createStatement();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return stat;
    }

    private static PreparedStatement pstat =null;
    public static PreparedStatement getPstat(String sql){
        try {
            conn = getConn();
            pstat = conn.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return pstat;
    }

    public static int update(String sql,Object...obj){
        pstat = getPstat(sql);
        int n = 0;
        try {
            for (int i = 0; i < obj.length; i++) {
                pstat.setObject(i + 1, obj[i]);
            }
            n = pstat.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return n;
    }

    static ResultSet rs = null;
    public static ResultSet select(String sql,Object...obj){
        pstat = getPstat(sql);
        try {
            for (int i = 0; i < obj.length; i++) {
                pstat.setObject(i + 1, obj[i]);
            }
            rs = pstat.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return rs;
    }
    public static void close() {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (stat != null) {
            try {
                stat.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
db.properties数据库连接配置
url = jdbc:oracle:thin:@localhost:1521:orcl
user = servlet
password = servlet
主页面 index.html
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>用户登录</title>
</head>
<body>
    <form action="ser1" method="get">
        用户名:<input type="text" name="uname"></br>
        密码:<input type="password" name="pwd"></br>
        性别:<input type="radio" name="sex" value="1" /><input type="radio" name="sex" value="0" /></br>
        <input type="submit" value="提交"></br>
    </form>
</body>
</html>
项目截图

在这里插入图片描述

项目试运行:

1.部署项目,大概1-2分钟
在这里插入图片描述
2.服务器自动跳转到index.html
在这里插入图片描述
3.试登录
在这里插入图片描述
可以看到当前数据库中有两个用户
尝试登录张三账号
在这里插入图片描述
提交后:
在这里插入图片描述
登录李四账号
在这里插入图片描述
提交后:
在这里插入图片描述
登录错误账号:
在这里插入图片描述
提交后:
在这里插入图片描述

初次搭建MVC框架简单搭建一个数据库-后台-服务器Web成功,还有很多不足值得改进,希望学习更进一步。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值