Jsp+Servlet+JavaBean实现最基本的注册登陆功能

Jsp+Servlet+JavaBean是MVC思想,Jsp=V(视图) Servlet=C(控制器) JavaBean=M(模型)

一.创建一个注册页面和登陆页面(V层)

<html>
<head>
   <title>注册</title>
</head>
<body>
<h3>小可爱请注册</h3>
<form action="/registerServlet" name="register" method="post">
								
<br><input name="username" type="text" placeholder="请设置账户">
								
<br><input name="password"  type="password" placeholder="请设置密码">							
<br><input type="submit" value="注册">

</form>
</body>
</html>
<html>
<head>
   <title>登陆</title>
</head>
<body>
<h3>小可爱请登陆</h3>
<form action="/loginServlet" name="register" method="post">
								
<br><input name="username" type="text" placeholder="请输入账号">
								
<br><input name="password"  type="password" placeholder="请输入密码">							

<br><input type="submit" value="登陆" ">

</form>
</body>
</html>

二.创建JavaBean层实现对数据的查询与插入(M层)

创建Dao层用户实体类

package com.JavaBean;

/**
 * 
 * @author: Doomed
 * @date: 2019/1/15
 * @place: usth
 *
 */

public class User {
	private String name;
	private String password;
	
	//封装用户信息 -- JavaBean层
	public String getName()
	{
		return name;
	}
	
	public void setName(String name)
	{
		this.name = name;	
	}
	
	public String getPassword()
	{
		return password;
	}
	
	public void setPassword(String password)
	{
		this.password = password;
	}
	
}

创建Dao层公共工具类

package com.JavaBean;

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

public class DB_Dao {
	
	static final String url = "jdbc:mysql://localhost/..";
	static final String user = "root";
	static final String pass = "root";
	static final String driver = "com.mysql.jdbc.Driver";
	Connection conn = null;
	
	//Dao
	public Connection getCon() throws ClassNotFoundException, SQLException {
		//注册驱动
		Class.forName(driver);
		//连接驱动
		conn = DriverManager.getConnection(url, user, pass);
		
		return conn;
	}
	
	//关闭资源,避免出现异常
	public static void close(Connection con, PreparedStatement ps , ResultSet rs)
	{
		if(rs != null)
		{
			try 
			{
				rs.close();
			}
			catch(SQLException e)
			{
				e.printStackTrace();
			}
		}
		if(ps != null)
		{
			try {
				ps.close();
			}catch(SQLException e)
			{
				e.printStackTrace();
			}
		}
		if(con != null)
		{
			try {
				con.close();
			}catch(Exception e)
			{
				e.printStackTrace();
			}
		}
		
	}
	
}

创建Dao层实现类

package com.JavaBean;

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

/**
 * 
 * @author: Doomed
 * @date: 2019/1/15
 * @place: usth
 *
 */

public class UserDaoImpl implements UserDao{
	
	Connection conn = null;
	PreparedStatement ps = null;
	PreparedStatement ps1 = null;
	ResultSet rs = null;
	
	public boolean setUser(User user) {
		DB_Dao dao = new DB_Dao();
		try {
			conn = dao.getCon();
                        //判断传送过来的username数据库中是否已经存在,如果存在则返回false
			String sql1 = "select count(1) from userinfo where username = ?";
			ps1 = conn.prepareStatement(sql1);
			ps1.setString(1,user.getName());
			rs = ps1.executeQuery();
			while(rs.next())
			{
				if(rs.getInt(1)>0)
				{
					//close(conn,ps,rs);
					return false;
				}
			}
			//如果没被注册,执行插入语句
			String sql = "insert into userinfo(username,password) values(?,?)";
			ps = conn.prepareStatement(sql);
			ps.setString(1,user.getName());
			ps.setString(2,user.getPassword());
                        //执行更新
			ps.executeUpdate();
			//close(conn,ps,rs);
			return true;
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//判断账号是否已被注册
			return false;
	}

	
	//=====登陆校验=====
	public User getUser(User user)
	{

		DB_Dao dao = new DB_Dao();
		try {
			conn = dao.getCon();
			String sql = "select * from userinfo where username = ? and password = ?";
			ps = conn.prepareStatement(sql);
			ps.setString(1, user.getName());
			ps.setString(2, user.getPassword());
                        //执行全部查询
			rs = ps.executeQuery();
			User users = null;
			if(rs.next())
			{
				users = new User();
				users.setName(rs.getString("username"));
				users.setPassword(rs.getString("password"));
				//close(conn,ps,rs);
				return user;
			}
			else 
				{
					//close(conn,ps,rs);
					return null; 
				}
			}
		catch (ClassNotFoundException | SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			}
		
		return user;
	}
}

创建Dao层接口类

package com.JavaBean;

// JDBC -- JavaBean层
public interface UserDao{
        //用户登录方法的声明
	public User getUser(User user);
        //用户注册方法的声明
	public boolean setUser(User user);
}

三.创建servlet层进行登陆的业务逻辑处理(C层)

创建loginServlet类处理登陆业务

package com.Servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.JavaBean.*;

/**
 * 
 * @author: Doomed
 * @date: 2019/1/15
 * @place: usth
 *
 */

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
		// TODO Auto-generated method stub
		//接收从jsp表单传过来的数据
		String name = request.getParameter("username");
		String password = request.getParameter("password");
		//判断表单数据是否传送过来
		System.out.println(name +" "+password );
		//获取login.jsp页面提交的账号和密码设置到实体类User中
		User user=new User();
		user.setName(name);
		user.setPassword(password);
		UserDao dao = new UserDaoImpl();
		User us = dao.getUser(user);
		if(us != null)
		{
			request.getSession(true).setAttribute("usename", name);
			response.sendRedirect("/loginSucceed.html");
		}
		else
		{
			response.sendRedirect("/loginFail.html");
		}


		
	}

}

创建registerServlet类处理注册业务

package com.Servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.JavaBean.*;

/**
 * 
 * @author: Doomed
 * @date: 2019/1/15
 * @place: usth
 *
 */

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

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		
		// TODO Auto-generated method stub
		//接收从jsp表单传过来的数据
		String name = request.getParameter("username");
		String password = request.getParameter("password");
		//判断表单数据是否传送过来
		System.out.println(name +" "+password );
		//获取registerServlet.jsp页面提交的账号和密码设置到实体类User中
		User user=new User();
		user.setName(name);
		user.setPassword(password);
		UserDao dao = new UserDaoImpl();
		boolean flag = dao.setUser(user);
		if(flag == true)
		{
			response.sendRedirect("/registerSucceed.html");
		}
		else
		{
			response.sendRedirect("/registerFail.html");
		}
	}

}

配置.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>blogs</display-name>	
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>  
        <servlet-name>loginServlet</servlet-name>  
        <servlet-class>com.Servlet.loginServlet</servlet-class> 
  </servlet>	
  <servlet-mapping>
	<servlet-name>loginServlet</servlet-name>
	<url-pattern>/loginServlet</url-pattern>
  </servlet-mapping>

  <servlet>  
	<servlet-name>registerServlet</servlet-name>  
	<servlet-class>com.Servlet.registerServlet</servlet-class> 
  </servlet>	
  <servlet-mapping>
	<servlet-name>registerServlet</servlet-name>
	<url-pattern>/registerServlet</url-pattern>
  </servlet-mapping>
</web-app>

效果图

猜你喜欢

转载自blog.csdn.net/sinat_41721615/article/details/86500251