java web 動態web開發基礎入門學習 eclipse版(二)

C_Rubit發表於2020-12-05

前言:上一篇寫到專案建立和靜態頁面展示,這節要寫的是前端表單提交資料到後端的操作,前端的表單就不寫了

一、在Java Resources的src中建立一個Package包用於管理servlet控制器

二、在包下建立servlet類,類名隨便取,建立servlet 會自動繼承HttpServlet類

三、seevlet類接受前端資料,根據前端表單的method型別,在類下選擇doGet方法或doPost方法進行實現,servlet接受前端引數的方法就是是由request變數下getParameter(name_key),name_key是指前端表單中的name屬性值。

四、建立po包進行po類管理,並在管理包下建立一個po類,po類是一個物件屬性集,每一個po類都對應者一張資料表,po類中的屬性和資料表中的欄位需要一致。

五、建立db類,這個類完全可以不用包管理,db類主要用於資料庫的連結

案列:

servlet類:

        String name = request.getParameter("uname");
        String pwd = request.getParameter("upwd");
        
        System.out.println(name);
        System.out.println(pwd);
        
        UserServer userServer = new UserServer();
        User user = userServer.sel(name, pwd);
        if (user == null)
        {
            response.sendRedirect("defeat.html");
        }
        else
        {
            response.sendRedirect("success.html");
        }

 

po類:

   private int id;
    private String name;
    private String pwd;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPwd() {
        return pwd;
    }
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }
    @Override
    public String toString() {
        return "UserPo [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
    }

 

db類:

   private static final String URL = "jdbc:mysql://localhost:3306/mybatisdb";
    private static final String NAME = "root";
    private static final String PWD = "root";
    private static final String DRIVER = "com.mysql.jdbc.Driver";
    
    static {
        try
        {
            Class.forName(DRIVER);
        }catch(ClassNotFoundException e) {
            e.printStackTrace();
        }
        
    }
    
    public static Connection getDBConnection() throws SQLException
    {
        return DriverManager.getConnection(URL, NAME, PWD);
    }

 

dao類:

   private Connection conn;
    private PreparedStatement psmt;
    private ResultSet re;
    
    public UserPo sel(String name, String pwd)
    {
        String sql = "SELECT * FROM user WHERE name = ? and pwd = ?";
        try
        {
            conn = DBConnection.getDBConnection();
            psmt = conn.prepareStatement(sql);
            psmt.setString(1, name);
            psmt.setString(2, pwd);
            re = psmt.executeQuery();
            if (re.next())
            {
                UserPo userPo = new UserPo();
                userPo.setId(re.getInt("id"));
                userPo.setName(re.getString("name"));
                return userPo;
            }
        }catch(SQLException e) {
            e.printStackTrace();
        }
        
        return null;
    }

 

service類:

    private UserDao userDao;
    public UserService() {
        // TODO Auto-generated constructor stub
        userDao = new UserDao();
    }
    public UserPo sel(String name, String pwd)
    {
        return userDao.sel(name, pwd);
    }

相關文章