登录之JavaWeb

来源:互联网 发布:香水时代的淘宝店怎么 编辑:程序博客网 时间:2024/06/05 20:10

版权声明:本文为博主原创文章,未经博主允许不得转载。

开始,话不多说,直接上代码:

数据库:

数据库名为:db_login

表名为:t_user

注意:我用的MySql

前端代码:

login.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录界面</title>
</head>
<body>
    <div align="center" style="padding-top: 50px;">
        <form action="login" method="post">
            <table>
                <tr>
                    <td>账号:</td>
                    <td><input type="text" name="userName" id="userName"/></td>
                </tr>
                <tr>
                    <td>密码:</td>
                    <td><input type="password" name="password" id="password"/></td>
                </tr>
                <tr>
                    <td><input type="submit" value="登录"/></td>
                    <font color="red">${error }</font>
                </tr>
            </table>
        </form>
    </div>
</body>
</html>

效果如下图:


main.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>首页</title>
</head>
<body>
登录成功
</body>
</html>


后台代码:

User.java

package model;

public class User {
    
    private int id;
    private String userName;
    private String passowrd;
    
    public User(String userName, String passowrd) {
        super();
        this.userName = userName;
        this.passowrd = passowrd;
    }

    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
   
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassowrd() {
        return passowrd;
    }
    public void setPassowrd(String passowrd) {
        this.passowrd = passowrd;
    }
    
}

UserDao.java

package dao;

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

import model.User;

public class UserDao {
    
    public User userLogin(Connection con,User user)throws Exception{
        User resultUser=null;
        String sql="select * from t_user where userName=? and password=?";
        PreparedStatement pstmt=con.prepareStatement(sql);
        pstmt.setString(1, user.getUserName());
        pstmt.setString(2, user.getPassowrd());
        ResultSet rs=pstmt.executeQuery();
        if(rs.next()){
            resultUser=new User();
            resultUser.setUserName(rs.getString("userName"));
            resultUser.setPassowrd(rs.getString("password"));
        }
        return resultUser;
    }
}

DbUtil.java(注意:连接数据库记住导入相对应的jar包)

package util;

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

public class DbUtil {
    
    //数据库地址
    private String dbUrl="jdbc:mysql://localhost:3306/db_login";
    //账号
    private String userName="root";
    //密码
    private String password="123456";
    //驱动
    private String jdbcName="com.mysql.jdbc.Driver";
    
    //连接数据库
    public Connection getCon() throws Exception{
        Class.forName(jdbcName);
        Connection con=DriverManager.getConnection(dbUrl,userName,password);
        return con;
    }
    
    //关闭数据库
    public void closeCon(Connection con)throws Exception{
        if(con!=null){
            con.close();
        }
    }
    
    //测试
    public static void main(String[] args) {
        DbUtil dbUtil=new DbUtil();
        Connection con=null;
        try {
            //连接数据库
            con=dbUtil.getCon();
            System.out.println("连接数据库成功");
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {
                //关闭数据库
                dbUtil.closeCon(con);
                System.out.println("关闭数据库成功");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}


LoginServlet.java

package web;

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 dao.UserDao;
import model.User;
import util.DbUtil;

public class LoginServlet extends HttpServlet{

    /**
     *
     */
    private static final long serialVersionUID = 1L;
    
    DbUtil dbUtil=new DbUtil();
    UserDao userDao=new UserDao();

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName=request.getParameter("userName");
        String password=request.getParameter("password");
        User user=new User(userName,password);
        Connection con=null;
        try {
            //连接数据库
            con=dbUtil.getCon();
            User currentUser=userDao.userLogin(con, user);
            if(currentUser==null){
                request.setAttribute("error", "账号或密码错误");
                request.getRequestDispatcher("login.jsp").forward(request, response);
            }else{
                request.getRequestDispatcher("main.jsp").forward(request, response);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally{
            try {
                //关闭数据库
                dbUtil.closeCon(con);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
   
}

注意:写了Servlet要配置web.xml文件

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Login</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
 
  <servlet>
      <servlet-name>loginServlet</servlet-name>
      <servlet-class>web.LoginServlet</servlet-class>
  </servlet>
 
  <servlet-mapping>
      <servlet-name>loginServlet</servlet-name>
      <url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>


上一张项目图:

注意:大家写代码的时候一定要仔细,我在写连接数据库代码的时候写错了代码,导致报异常,找了好久才发现是自己不仔细,如下图:


运行项目效果如下图:

先输入账号和密码,然后点击登录:


输入账号或者密码会提示,效果见下图:

账号和密码正确就会跳到另外一个页面:

好了整个项目到这就结束了,如果大家发现有错误,请指正,谢谢!

原创粉丝点击