登錄功能
注釋:過程中的錯誤看5、6、7,(DBUtil類中,用戶名密碼填寫自己的用戶名和密碼)。
1、首先進行Mysql數據庫的建立
在mysql數據庫中建立test數據庫,新建表user,表中兩個列,分別為name,userpassword。·如下圖
2、之后打開eclipse新建Demo的web應用。如下圖
3、在Demo的 Java Resources的文件夾下新建4個包,包名分別為bean,dao,db,servlet
在bean包中新建Userbean類,內容如下:
package bean;
import java.util.Date;
public class Userbean
{
private String username;
private String userpassword;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpassword() {
return userpassword;
}
public void setUserpassword(String userpassword) {
this.userpassword = userpassword;
}
public Userbean() {
}
public Userbean(String username,String userpassword) {
super();
this.username = username;
this.userpassword = userpassword;
}
}
在dao包中新建Admindao類,內容如下:
package dao;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import db.DBUtil;
import bean.Userbean;
public class Admindao
{
public Userbean checkLogin(String username, String password)//檢測登錄
{
Connection conn=DBUtil.getConn();//連接
Userbean userbean=null;
Statement state=null;
ResultSet rs=null;
try
{
state=conn.createStatement();
rs=state.executeQuery("select * from user where name='"+username+"'");//查詢
if(rs.next())
{//查詢成功
if(rs.getString("userpassword").equals(password))
{
userbean = new Userbean();
userbean.setUsername(rs.getString("name"));
userbean.setUserpassword(rs.getString("userpassword"));
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
DBUtil.close(rs, state, conn);
}
return userbean;//返回值
}
}
在db包中新建DBUtil類,內容如下->(注:用戶名密碼填寫自己的用戶名和密碼):
package db;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DBUtil
{
public static String db_url="jdbc:mysql://localhost:3306/test?uerUnicode=true&characterEncoding=UTF-8";//test是連接的數據庫名
public static String db_user="root";//連接mysql的用戶名,填寫你自己的
public static String db_password="root";//連接mysql的密碼,填寫你自己的
public static Connection getConn()
{
Connection conn=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection(db_url,db_user,db_password);
}
catch(Exception e)
{
e.printStackTrace();
}
return conn;
}
public static void close(Statement state,Connection conn)//關閉
{
if(state!=null)//判斷
{
try
{
state.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
public static void close(ResultSet rs,Statement state,Connection conn)
{
if(rs!=null)
{
try
{
rs.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(state!=null)
{
try
{
state.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}
catch(SQLException e)
{
e.printStackTrace();
}
}
}
}
在servlet包中新建Adminservlet類,內容如下:(出錯誤看后面的5須要加tomcat服務)
package servlet;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.Userbean;
import dao.Admindao;
@SuppressWarnings("serial")
public class Adminservlet extends HttpServlet
{
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
// TODO Auto-generated method stub
req.setCharacterEncoding("utf-8");
String method = req.getParameter("method");
if ("login".equals(method))
{
try {
login(req, resp);
} catch (ClassNotFoundException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
} catch (SQLException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
}
}
private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, ClassNotFoundException, SQLException
{
req.setCharacterEncoding("utf-8");
String username = req.getParameter("username");
String password = req.getParameter("password");
Admindao adminDao = new Admindao();
Userbean userbean = adminDao.checkLogin(username, password);
if(userbean==null)
{
System.out.println("0");
req.getRequestDispatcher("/fail.jsp").forward(req, resp);
}
else
{
System.out.println("1");
req.getRequestDispatcher("/success.jsp").forward(req, resp);
}
}
}
3、在WebContent文件夾中新建login.jsp文件,內容如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登錄</title>
<script language="javascript">
function checkinfo(){
var username = document.getElementById('username');
var password = document.getElementById('password');
if(username.value ==""&&password.value =="")
{
document.getElementById('username').focus();//給用戶名獲取焦點
alert('請輸入用戶名和密碼!!!');
}
else if(username.value =="")
{
document.getElementById('username').focus();//給用戶名獲取焦點
alert('請輸入用戶名!!!');
}
else if(password.value =="")
{
document.getElementById('password').focus();//給密碼獲取焦點
alert('請輸入密碼!!!');
}
else
{
document.getElementById("form").submit();
}
}
</script>
</head>
<body onload= "javascript:document.getElementById('username').focus();">
<form id="form" action="${pageContext.request.contextPath}/admin/adminServlet?method=login" method="post" >
<table width="252" border="1" align="center">
<tr>
<td width="72"><strong>用戶名:</strong></td>
<td width="164"><input id="username" name="username" type="text" /></td>
</tr>
<tr>
<td><strong>密碼:</strong></td>
<td><input id="password" name="password" type="password" /></td>
</tr>
<tr>
<td> </td>
<td><button type="button" name="login" onclick="checkinfo()" >登錄</button>
</td>
</tr>
</table>
</form>
</body>
</html>
新建success.jsp文件,內容如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>success</title>
</head>
<body>
登錄成功!!!
<input type="submit" value="退出" onclick="javascript:window.location.href='${pageContext.request.contextPath}/login.jsp';" >
</body>
</html>
新建fail.jsp文件,內容如下:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>fail</title>
<script language="javascript">
function fanhui(){
alert('用戶名或密碼不正確!');
document.getElementById("form").submit();
}
</script>
</head>
<body onload= "fanhui();">
<form id="form" action="${pageContext.request.contextPath}/login.jsp" >
</form>
</body>
</html>
4、在WebContent文件夾的WEB-INF文件夾中,右擊新建其他,新建web.xml文件,或者選擇新建文件,在名字后加上.xml(名字別亂起,文件位置必須是此路徑),內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" >
<servlet>
<servlet-name>Adminservlet</servlet-name>
<servlet-class>servlet.Adminservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Adminservlet</servlet-name>
<url-pattern>/admin/adminServlet</url-pattern>
</servlet-mapping>
</web-app>
5、錯誤修改,錯誤如下
還有
此錯誤是因為tomcat服務沒有加載,解決方法:
(1)右擊Demo項目,選擇構建路徑,點擊配置構建路徑,顯示如下圖:
(2)點擊Add Library 之后,點擊下一步,選擇Server Runtime,之后選擇自己的tomcat服務,點擊完成,如下圖:
之后點擊確定,
6、還有一個是Mysql的jar須要加進去,須要連接Mysql數據庫
(方法1)可以在WebContent文件夾的WEB-INF中的lib文件夾中加入mysql的jar,如下圖:
(2)右擊Demo項目,選擇構建路徑,點擊配置構建路徑,之后點擊添加外部JAR,選擇自己路徑下的Mysql的jar,選擇后點擊確定,最后一步如下圖:
7、Mysql的服務必須啟動,將cmd(命令提示符)用管理員身份運行,之后輸入 net start mysql 點擊回車(mysql是我的mysql服務的名字,請輸入你自己的mysql服務的名字)。聯系QQ:1906608931。歡迎提出問題!