版权声明:本文为博主原创文章,未经博主允许不得转载。
开始,话不多说,直接上代码:
数据库:
数据库名为: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>
上一张项目图:
注意:大家写代码的时候一定要仔细,我在写连接数据库代码的时候写错了代码,导致报异常,找了好久才发现是自己不仔细,如下图:
运行项目效果如下图:
先输入账号和密码,然后点击登录:
输入账号或者密码会提示,效果见下图:
账号和密码正确就会跳到另外一个页面:
好了整个项目到这就结束了,如果大家发现有错误,请指正,谢谢!