mvc实现登陆 java_基于MVC 用户登录的实现(JavaBean + Servlet + JSP)

本文介绍了使用Java MVC架构实现用户登录功能的详细步骤,包括数据库设计、web.xml配置、User类、DatabaseConnection类、IUserDAO接口、UserDAOImpl实现、UserDAOProxy代理类、DAOFactory工厂类以及LoginServlet和Login.jsp的编写。通过这些组件,实现了从用户输入验证到数据库查询的完整登录流程。
摘要由CSDN通过智能技术生成

结构图

3033455824012355511.jpg

数据库设计

797137134046663602.jpg

1、web.xml配置

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

login.jsp

loginServlet

org.zxj.mvcdemo.servlet.LoginServlet

loginServlet

/LoginServlet

2、User

package org.zxj.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;

}

}

3、DatabaseConnection

package org.zxj.mvcdemo.dbc;

import java.sql.*;

public class DatabaseConnection{

private static final String DBDRIVER = "com.mysql.jdbc.Driver";

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

private static final String DBUSER = "root";

private static final String DBPASSWORD ="pf";

private static Connection con = null;

public DatabaseConnection() throws Exception{

try{

Class.forName(DBDRIVER);

this.con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);

}catch(Exception e){

throw e;

}

}

public Connection getConnection(){

return this.con;

}

public void close() throws Exception {

if(this.con != null){

try{

this.con.close();

}catch(Exception e){

throw e;

}

}

}

}

4、IUserDAO

package org.zxj.mvcdemo.dao;

import org.zxj.mvcdemo.vo.User;

public interface IUserDAO{

public boolean findLogin(User user) throws Exception;

}

5、UserDAOImpl

package org.zxj.mvcdemo.dao.impl;

import org.zxj.mvcdemo.vo.User;

import org.zxj.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 user 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("name"));

flag = true;

}

this.pstmt.close();

return flag;

}

}

6、UserDAOProxy

package org.zxj.mvcdemo.dao.proxy;

import org.zxj.mvcdemo.vo.User;

import org.zxj.mvcdemo.dbc.*;

import org.zxj.mvcdemo.dao.*;

import org.zxj.mvcdemo.dao.impl.*;

import java.sql.*;

public class UserDAOProxy implements IUserDAO{

private DatabaseConnection dbc = null;

private IUserDAO dao = null;

private PreparedStatement pstmt = 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;

}

}

7、DAOFactory

package org.zxj.mvcdemo.factory;

import org.zxj.mvcdemo.dao.*;

import org.zxj.mvcdemo.dao.proxy.*;

public class DAOFactory{

public static IUserDAO getIUserDAOInstance(){

return new UserDAOProxy();

}

}

8、LoginServlet

package org.zxj.mvcdemo.servlet;

import java.io.*;

import java.util.*;

import javax.servlet.*;

import javax.servlet.http.*;

import org.zxj.mvcdemo.factory.*;

import org.zxj.mvcdemo.vo.*;

public class LoginServlet extends HttpServlet{

public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException {

String path = "login.jsp";

String userid = req.getParameter("userid");

String userpass = req.getParameter("userpass");

List info = new ArrayList();

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,res);

//RequestDispatcher rd = null;

//rd = req.getRequestDispatcher(path);

//rd.forward(req,res);

}

public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException,IOException {

doGet(req,res);

}

}

9、Login.jsp

登录

request.setCharacterEncoding("GBK");

List info = (List)request.getAttribute("info");

if(info != null){

Iterator iter = info.iterator();

while(iter.hasNext()){

out.println(iter.next());

}

}

%>

用户:

密码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值