很多人对MVC模式搞不懂,刚开始是我也犯迷糊,知道看到一个前辈写的代码,我顿时有的恍然大悟,拿来分享给各位
MVC:
就是M:模型、V:视图(前台界面)C:后台处理的servlet
话不多说、上代码
bean中代码(用到的变量)
packagebean;public classUserbean {private String username;//用户名
privateString phone;privateString email;private String password;//密码都是与数据库匹配的,下面是set和get函数
publicString getPhone() {returnphone;
}public voidsetPhone(String phone) {this.phone =phone;
}publicString getEmail() {returnemail;
}public voidsetEmail(String email) {this.email =email;
}publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}
}
View Code
com.Dao中代码(对数据库增删改查操作)
packagecom.Dao;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importcom.DBUtil.DBUtil;;public classuserDao {public intlogin(String name,String password) {
Connection conn= DBUtil.getConn();//这里就是从DBUtil类里面得到连接
Statement sql=null;
ResultSet rs=null;try{
sql=conn.createStatement();
}catch(SQLException e){
System.out.println(e);
}int flag=0;try{
rs= sql.executeQuery("select * from customer where name='"+name+"' and password='"+password+"'");if(rs.next())
{if(rs.getString("password").equals(password))
{
flag=1;
}
}
}catch(Exception e)
{
e.printStackTrace();
}finally{
DBUtil.close(rs, sql, conn);
}returnflag;
}
}
View Code
com.DbUtil中代码(连接数据库,返回conn)
packagecom.DBUtil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classDBUtil
{static String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";static String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=BookShop";static String user1="sa";static String pwd = "8000153";public static Connection getConn()//获取连接,返回Connection类型,必须设置为static这样才能在其他类中使用
{
Connection conn=null;try{
Class.forName(driver);//加载驱动
conn=DriverManager.getConnection(url,user1,pwd);//连接数据库
}catch(Exception e)
{
e.printStackTrace();
}returnconn;
}public static void close(Statement state,Connection conn)//关闭函数
{if(state!=null)//只有状态和连接时,先关闭状态
{try{
state.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}if(conn!=null)
{try{
conn.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}
}public static voidclose(ResultSet rs,Statement state,Connection conn)
{if(rs!=null)//有结果集,状态和连接时,先关闭结果集,在关闭状态,在关闭连接
{try{
rs.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}if(state!=null)
{try{
state.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}if(conn!=null)
{try{
conn.close();
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
}
View Code
servlet中代码(要配置web.xml文件,处理完以后把值传给前台界面)
packagecom.servlet;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.Dao.userDao;importbean.Userbean;
@WebServlet("/Userservlet")public class Userservlet extendsHttpServlet {private static final long serialVersionUID = 1L;publicUserservlet() {super();
}protected void doGet(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {//1.
Userbean usermessage=newUserbean();//2.
HttpSession session=request.getSession();//3.
String username=request.getParameter("username");
String password=request.getParameter("password");//4.
usermessage.setUsername(username);
usermessage.setPassword(password);
userDao userdao= new userDao();//创建Userdao的实例
int flag = userdao.login(username, password);//用来判断是否登陆成功
if(flag==1)
{
session.setAttribute("username", "username");
response.sendRedirect("Showbookservlet");
}else{
response.getWriter().print("");
response.setHeader("refresh", "1;URL=Enter.html");
}
}protected void doPost(HttpServletRequest request, HttpServletResponse response) throwsServletException, IOException {
doGet(request, response);
}
}
View Code
xml文件配置
BookShop
Userservlet
com.servlet.Userservlet
Userservlet
/Servlet/Userservlet
View Code
前台界面代码(如果想高端大气上档次可以在网上找一些css的样式)
/>
{ setTimeout(hideURLbar,0); }, false);
function hideURLbar() { window.scrollTo(0, 1); }
Sign Up
View Code
运行界面(输入用户名和密码,通过和数据库中的文件比对后返回结果。登陆成功则到显示页面,失败则重新返回到这个页面并弹窗显示ERROR)
先写这些把,后面的功能下一次在写(●ˇ∀ˇ●)