`
bolovesang
  • 浏览: 16929 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

MVC设计模式实现的简单登陆程序

    博客分类:
  • JSP
阅读更多

这是一个简单的MVC设计模式实现的登陆程序.

 

 

先实现DAO;

 

vo:

package org.mvcdemo.vo;
public class User
{
	private String userid;
	private String name;
	private String password;

	public void setUserId(String userid){
		this.userid = userid;
	}
	public void setName(String name){
		this.name = name;
	}
	public void setPassword(String password){
		this.password = password;
	}
	public String getUserid(){
		return this.userid;
	}
	public String getName(){
		return this.name;
	}
	public String getPassword(){
		return this.password;
	}
}

 

dbc; //数据库连接;

package org.mvcdemo.dbc;
import java.sql.*;
public class DatabaseConnection
{
	private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";

	private static final String DBURL = "jdbc:mysql://localhost:3306/mysql";

	private static final String DBUSER = "root";

	private static final String DBPASSWORD = "123";
	
	private Connection conn = null;
	public DatabaseConnection() throws Exception{
		try{
			Class.forName(DBDRIVER);
			this.conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
		}catch(Exception e){
			throw e;
		}
	}	
	public Connection getConnection(){
		return this.conn;
	}
	public void close()throws Exception{
		if(this.conn!=null){
			try{
				this.conn.close();
			}catch(Exception e){
				throw e;
			}
		}
	}

}

 

定义接口类;

package org.mvcdemo.dao;
import org.mvcdemo.vo.User;
public interface IUserDAO
{
	//现在完成的是登陆验证,那么登陆操作只有两种返回结果
	public boolean findLogin(User user) throws Exception;
}

 

实现接口;

package org.mvcdemo.dao.impl;
import org.mvcdemo.vo.User;
import org.mvcdemo.dbc.*;
import org.mvcdemo.dao.*;
import java.sql.*;
public class UserDAOImpl implements IUserDAO
{
	private Connection conn = null;
	private PreparedStatement pstmt = null;
	public UserDAOImpl(Connection conn){
		this.conn = conn;
	}
	public boolean findLogin(User user)throws Exception{
		boolean flag = false;
		String sql = "SELECT name FROM user1 WHERE userid=? AND password=?";
		this.pstmt = this.conn.prepareStatement(sql);
		this.pstmt.setString(1,user.getUserid());
		this.pstmt.setString(2,user.getPassword());
		ResultSet rs = this.pstmt.executeQuery();
		if(rs.next()){
			user.setName(rs.getString(1));
			flag = true;
		}
		this.pstmt.close();
		return flag;
	}
}

 

代理类;

package org.mvcdemo.dao.proxy;
import org.mvcdemo.vo.User;
import org.mvcdemo.dbc.*;
import org.mvcdemo.dao.*;
import org.mvcdemo.dao.impl.*;
import java.sql.*;
public class UserDAOProxy implements IUserDAO
{
	private DatabaseConnection dbc = null;
	private IUserDAO dao = null;
	public UserDAOProxy(){
		try{
			this.dbc = new DatabaseConnection();
		}catch(Exception e){
			e.printStackTrace();
		}
		this.dao = new UserDAOImpl(dbc.getConnection());
	}
	public boolean findLogin(User user)throws Exception{
		boolean flag = false;
		try{
			flag = this.dao.findLogin(user);//调用真实主题,完成操作
		}catch(Exception e){
			throw e;
		}finally{
			this.dbc.close();
		}
		return flag;
	}
}

 

工厂类;

package org.mvcdemo.dao.factory;
import org.mvcdemo.dao.*;
import org.mvcdemo.dao.proxy.*;
public class DAOFactory
{
	public static IUserDAO getIUserDAOInstance(){
		return new UserDAOProxy();
	}
}

 

Servlet;

package org.mvcdemo.servlet;
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.mvcdemo.dao.factory.*;
import org.mvcdemo.vo.*;
public class LoginServlet extends HttpServlet
{
	public void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
		String path = "login.jsp";
		String userid = req.getParameter("userid");
		String userpass = req.getParameter("userpass");
		List<String> info = new ArrayList<String>();
		if(userid==null||"".equals(userid)){
			info.add("用户id不能为空!");
		}
		if(userpass==null||"".equals(userpass)){
			info.add("密码不能为空!");
		}
		if(info.size()==0){
			User user = new User();
			user.setUserId(userid);
			user.setPassword(userpass);
			try{
				if(DAOFactory.getIUserDAOInstance().findLogin(user)){
					info.add("用户登陆成功,欢迎" + user.getName() + "光临");
				}else{
						info.add("用户登陆失败,错误的用户名或密码");
					}
			}catch(Exception e){
				e.printStackTrace();
			}
		}
		req.setAttribute("info",info);
		req.getRequestDispatcher(path).forward(req,resp);
	}
	public void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
		this.doGet(req,resp);
	}
}

 

前台的JSP页面;

<%@ page contentType="text/html;charset=GBK"%>
<%@ page import="java.util.*"%>
<html>
<head>
	<title>www.baidu.com</title>
</head>
<body>
<script language="javascript">
	function validate(f){
		if(!(/^\w{5,15}$/.test(f.userid.value))){
			alert("用户ID必须是5~15位!");
			f.userid.focus();
			return false;
		}
		if(!(/^\w{5,15}$/.test(f.userpass.value))){
			alert("密码必须是5~15位!");
			f.userpass.focus();
			return false;
		}
	}
</script>
<%
	request.setCharacterEncoding("GBK");
%>
<%
	List<String> info = (List<String>) request.getAttribute("info");
	if(info!=null){
		Iterator<String> iter = info.iterator();
		while(iter.hasNext()){
%>
	<h4><%=iter.next()%></h4>
<%
		}
	}
%>
	<form action="LoginServlet" method="post" onSubmit="return validate(this)">
		用户ID:<input type="text" name="userid"><br>
		密&nbsp;&nbsp码:<input type="password" name="userpass"><br>
		<input type="submit" value="登陆">
		<input type="reset" value="重置">
	</form>
</body>
</html>

 

数据库脚本;

USE mysql
create table user(
	userid	varchar(30)	primary key,
	name	varchar(30)	not null,
	password	varchar(32) not null
);
insert into user(userid,name,password) 
values('admin','administrator','admin');

 

 

 

1
0
分享到:
评论

相关推荐

    MVC设计模式例子程序

    总结来说,"MVC设计模式例子程序"是一个演示了如何在C#的Windows Forms环境下实现MVC模式的应用。通过模型、视图和控制器的分离,这个程序实现了业务逻辑、用户界面和数据管理的清晰划分,增强了代码的可读性和可...

    学完JSP,运用MVC设计模式实现简单的CRUD操作

    在《学完JSP,运用MVC设计模式实现简单的CRUD操作(改进版)》这篇文章中,作者可能详细阐述了如何实现这些功能,包括如何配置Servlet,如何设计模型和视图,以及如何实现分页。通过阅读这篇文章和分析提供的源代码...

    MVC设计模式范例

    总结来说,MVC设计模式是一种有效的软件设计策略,它有助于保持应用程序的结构清晰,提高代码复用,并简化了开发和维护过程。在本例子中,通过实现一个简单的球体计算应用,我们可以深入理解MVC模式的各个组成部分...

    mvc设计模式介绍与详细讲解

    下面我们将通过一个简单的例子来介绍如何在Java Web应用中实现MVC设计模式。 ##### 1. 模型(Model) - **实体类**:例如`Product`类,包含产品的基本信息。 - **DAO(Data Access Object)**:如`ProductDAO`,负责...

    mvc设计模式之网络留言板

    综上所述,构建“mvc设计模式之网络留言板”涉及到的技术栈包括MVC设计模式的运用,使用dbutils进行数据库操作,借助fckeditor提供富文本编辑功能,以及通过数据源高效管理数据库连接。实际开发过程中,还需要考虑...

    基于 MVC 模式的博客(BLOG)系统的设计与实现

    ### 基于MVC模式的博客(BLOG)系统的设计与实现 #### 一、引言 ...通过采用MVC设计模式和Struts框架,该系统实现了良好的性能表现和用户体验。这对于构建类似的在线信息发布平台具有重要的参考价值。

    mvc设计模式和模板模式ppt

    ### MVC设计模式详解 #### 一、MVC模式的起源 MVC模式即“模型-视图-控制器”模式(Model-View-Controller),这一概念最早由Trygve Reenskaug于1978年提出[1]。该模式最初是在施乐帕罗奥多研究中心(Xerox PARC)为...

    java 简易计算器 mvc 设计模式

    **Java简易计算器基于MVC设计模式的实现** 在软件开发中,MVC(Model-View-Controller)设计模式是一种常用架构模式,它将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。这个模式...

    在Java Swing中实现MVC设计模式(英文)

    在Java Swing中实现MVC设计模式的知识点涉及软件设计原则、编程范式以及Swing框架的具体应用。MVC(Model-View-Controller)设计模式是一种将数据表示和数据处理分离的架构,目的是让开发者能够独立开发和维护数据...

    MVC设计模式的简单例子

    **MVC设计模式详解及其在Tomcat中的应用** MVC(Model-View-Controller)设计模式是一种广泛应用在Web开发中的架构模式,它将应用程序的业务逻辑、数据模型和用户界面进行了分离,使得代码更加模块化,易于维护和...

    控制台简易版银行管理系统(MVC设计模式)

    总的来说,这个控制台简易版银行管理系统展示了如何运用MVC设计模式来构建一个功能完善的程序,使用Java语言实现了核心的银行业务逻辑,并通过控制台界面与用户交互。这种设计使得代码结构清晰,易于维护和扩展。

    学生信息管理系统、MVC设计模式,实现学生信息管理(增删改查)使用MYSQL、C3P0、DBUtils

    综上所述,这个学生信息管理系统利用MVC设计模式,实现了对学生数据的高效管理。通过集成MySQL数据库进行数据存储,C3P0连接池优化数据库连接管理,以及DBUtils简化数据库操作,系统具有良好的结构和性能。...

    运用MVC模式及观察者模式的java小程序

    在这个名为“运用MVC模式及观察者模式的java小程序”的项目中,我们重点探讨了两种经典的设计模式:Model-View-Controller(MVC)模式和Observer(观察者)模式。这两种模式在JavaWeb开发中扮演着至关重要的角色。 ...

    MVC设计模式在WEB应用程序中的研究与实现

    ### MVC设计模式在WEB应用程序中的研究与实现 #### 引言与背景 MVC(Model-View-Controller)设计模式是软件工程中一种常见的架构模式,尤其在Web应用程序的开发中占据着举足轻重的地位。传统的Web开发方式,如JSP...

    .NET平台下MVC设计模式的实现

    #### .NET下的MVC设计模式实现 .NET平台提供了强大的工具和框架来支持MVC模式的实现,特别是ASP.NET MVC框架,它是.NET Framework的一部分,专门用于构建动态网站和网络应用。通过使用ASP.NET MVC,开发者可以轻松...

    MVC设计模式

    **MVC设计模式详解** **一、什么是MVC设计模式** ...通过深入学习MVC设计模式,开发者能够构建出更加高效、灵活和可扩展的Web应用程序。结合实际项目经验,不断探索和优化,MVC模式将助你成为一名出色的Web开发者。

    基于MVC设计模式开发出的简单PHP框架,学习必备

    理解并熟练运用MVC设计模式,可以帮助开发者更好地组织代码,提高代码的可读性和可维护性。对于初学者,通过学习基于MVC的PHP框架,可以更快地掌握Web开发的基本流程,同时为进阶到更复杂的框架如Laravel、Symfony等...

    Qt使用MVC、数据库单例模式实现登录注册

    首先,让我们理解MVC设计模式。MVC将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。模型负责处理数据和业务逻辑,视图负责显示数据,而控制器作为模型和视图之间的桥梁,处理用户...

    MVC模式实现书城购物车系统

    MVC模式是一种软件设计模式,它将应用程序分为三个核心部分:模型(Model)、视图(View)和控制器(Controller)。这种分离使得各部分职责明确,易于维护和扩展。 1. **模型(Model)**:负责处理业务逻辑和数据...

Global site tag (gtag.js) - Google Analytics