MVC的一個簡單實例


基本思路:

  一個Regist.jsp注冊頁面,用於收集用戶信息,發送請求給控制器Servlet;控制器層Servlet封裝模型層對象 jBean,並調用其方法regiser實現用戶信息的保存;模型層JavaBean.java 接收控制器層的對象,完成對數據庫的操作。

話不多說,上代碼。

首先有個數據庫訪問公共類,以后凡是操作數據庫的頁面都可以調用。不容多說:

Unilt.java

/**
 * 
 */
package javaBeanServlet;

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

/**
 * @author Administrator
 *
 */
public class Unilt {
    private static final String URL = "jdbc:mysql://localhost:3306/userdb";
    private static final String USER = "root";
    private static final String PASSWORD = "111111";
    protected static Statement s = null;
    protected static ResultSet rs = null;
    protected static Connection coon = null;
    public static synchronized Connection getConnection() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            coon = DriverManager.getConnection(URL, USER, PASSWORD);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return coon;
    }
    public static int executeUpdate(String sql) {
        int result = 0;
        try {
            s = getConnection().createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            result = s.executeUpdate(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return result;
    }
    public static ResultSet executeQuery(String sql) {
        try {
            s = getConnection().createStatement();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            rs = s.executeQuery(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return rs ;
    }
    public static PreparedStatement executePreparedStatement(String sql) {
        PreparedStatement ps = null;
        try {
            ps = getConnection().prepareStatement(sql);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return ps;
    }
    public static void rollback() {
        try {
            getConnection().rollback();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void close() {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (s != null) {
            try {
                s.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        if (coon != null) {
            try {
                coon.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
}
View Code

 

接下來是一個簡單的注冊頁面:

Register.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
        <form action = "/ch1/Servelt" method = "post">
            <input type ="text" value = "username" name = "username"/>
            <input type ="password" value = "password" name = "password"/>
            <input type = "submit" value = "提交" name = "submit" />
        </form>
</body>
</html>
View Code

Servlet.java

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

/**
 * Servlet implementation class Servelt
 */
@WebServlet("/Servelt")
public class Servelt extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servelt() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 設置編碼格式
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset = utf-8"); 
        /* 實例化JavaBean 的一個對象 jBean ,並通過request.getParameter()獲取Regist表單提交的
           username、password值    
        */
        JavaBean jBean = new JavaBean();
        jBean.setFd_username(request.getParameter("username"));
        jBean.setFd_password(request.getParameter("password"));
        jBean.register(jBean);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
View Code

JavaBean.java

/**
 * 
 */
package javaBeanServlet;
import java.sql.*;
import javaBeanServlet.*;
import javaBeanServlet.Unilt;
/**
 * @author Administrator
 *
 */
public class JavaBean {
    // 依據數據表結構聲明成員變量
    private String fd_username ;
    private String fd_password ;
    // 為屬性提供setter和getter方法
    public String getFd_username() {
        return fd_username;
    }
    public void setFd_username(String fd_username) {
        this.fd_username = fd_username;
    }
    public String getFd_password() {
        return fd_password;
    }
    public void setFd_password(String fd_password) {
        this.fd_password = fd_password;
    }
    
    public boolean register(JavaBean javaBean){
        String sql = "insert into users(username ,password) values (?,?)";
        int result = 0;
        PreparedStatement ps = Unilt.executePreparedStatement(sql);
        try {
            ps.setString(1,javaBean.fd_username);
            ps.setString(2,javaBean.fd_password);
            result = ps.executeUpdate();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        // 注冊成功,返回true;注冊失敗,返回false
        if (result > 0) {
            System.out.println("注冊成功");
            return true;    
        }
        else {
            System.out.println("注冊失敗");
            return false;
        }
    }
}
View Code

 

下面是運行的效果:

 

 

    新手上路,請多指教!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM