初学JSP与Servlet之登录界面1.0版本

        实现用户登录界面的实现,用到的知识有1:JAVA;2:JDBC;3:JSP与Servlet;4:mysql;5:HTML脚本语言;6:XML。用到的开发工具:eclipse、mysql数据库、Tomcat服务器、浏览器。用户登录界面的实现可以很好的融合了你学的这些知识,今天只是粗略实现用户登录功能的实现的1.0版本,后期会进行优化。

       1:用户登录界面首先是数据库的创建以及用户表的创建。

CREATE DATABASE db_user;
CREATE TABLE t_user(
	id INT PRIMARY KEY AUTO_INCREMENT,
	userName VARCHAR(20) NOT NULL,
	PASSWORD VARCHAR(20) NOT NULL
)

       2:在eclipse中创建项目名称JspLogin,并沿用MVC的模式去建立项目。并创建dao包,util包,model包,servlet包。并引进mysql数据库的Jar包在lib目录下。

       3:在model包中实现对数据库中id,userName,password字段的封装。

emptypackage com.panli.model;
/**
 * 用户model层
 * @author Peter
 *
 */
public class User {
	private int userId;
	private String userName;
	private String password;
	/**
	 * 父类默认构造方法
	 */
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	/**
	 * 两个参数的构造方法
	 * @param userName
	 * @param password
	 */
	public User(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}


	public int getUserId() {
		return userId;
	}
	public void setUserId(int userId) {
		this.userId = userId;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
	
	
}

       4:在util包中实现对数据库的连接。

package com.panli.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * 数据库的连接
 * @author Peter
 *
 */
public class DbUtil {
	private String dbUrl = "jdbc:mysql://localhost:3306/db_user";
	private String dbUser = "root";
	private String dbPassword = "123456";
	private String jdbcName="com.mysql.jdbc.Driver";
	
	/**
	 * 连接数据库
	 * @return
	 * @throws Exception 
	 */
	public Connection getConn() throws Exception{
		Class.forName(jdbcName);
		Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPassword);
		return conn;
		
	}
	
	/**
	 * 关闭数据库连接
	 * @param conn
	 * @throws SQLException
	 */
	public void closeCon(Connection conn) throws SQLException{
		if(conn!=null){
			conn.close();
		}
	}
	
}

       5:在dao包中实现对用户登录的控制。

package com.panli.dao;

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

import com.panli.model.User;

/**
 * 用户登录控制层
 * @author Peter
 *
 */
public class UserDao {
	
	/**
	 * 用户登录方法
	 * @param conn
	 * @param user
	 * @return
	 * @throws SQLException
	 */
	public User login(Connection conn, User user) throws SQLException{
		User resultUser = null;
		String loginSql = "select * from t_user where userName=? and password=?";
		PreparedStatement pstmt = conn.prepareStatement(loginSql);
		pstmt.setString(1, user.getUserName());
		pstmt.setString(2, user.getPassword());
		ResultSet rs = pstmt.executeQuery();
		if(rs.next()){
			resultUser = new User();
			resultUser.setUserId(rs.getInt("userId"));
			resultUser.setUserName(rs.getString("userName"));
			resultUser.setPassword(rs.getString("password"));
		}
		return resultUser;
		
	}
}

       6:在servlet包中实现对用户登录信息判断与输出,类似于view层。

package com.panli.servlet;

import java.io.IOException;
import java.sql.Connection;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.panli.dao.UserDao;
import com.panli.model.User;
import com.panli.util.DbUtil;

public class UserServlet extends HttpServlet{
	
	UserDao userDao = new UserDao();
	DbUtil dbUtil = new DbUtil();
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		this.doPost(request, response);
	}

	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		
		Connection conn = null;
		try {
			conn = dbUtil.getConn();
			User user = new User(userName, password);
			User currentUser = userDao.login(conn, user);
			if(currentUser==null){
				request.setAttribute("user", user);
				request.setAttribute("error", "用户名或密码错误");
				request.getRequestDispatcher("login.jsp").forward(request, response);
				
				//System.out.println("no");
			}else{
				//System.out.println("ok");
				HttpSession session = request.getSession();
				session.setAttribute("currentUser", currentUser);
				response.sendRedirect("success.jsp");
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值