Java web 实现数据库简单登录功能-----快速入门Java web

第一步:编写Servlet(收发参数)

package com.zhuoyue.action;

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

import com.zhuoyue.dao.LoginDao;

import java.io.PrintWriter;
import javax.servlet.ServletException;
import java.io.IOException;

public class DoLoginAction extends HttpServlet {
    
    
	
	protected void doGet(HttpServletRequest req,HttpServletResponse resp)throws ServletException, IOException{
    
    
		this.doPost(req, resp);
	}
	protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{
    
    
		//设置编码方式
		request.setCharacterEncoding("utf-8");
		//但凡要客户端的东西都问request要
		//要用户名 username 和 密码 userpass
		//String value=request.getParameter("控件名");
		String username=request.getParameter("username");
		String userpass=request.getParameter("userpass");
		
		//但凡给客户端东西都是response给
		//response没有 办法直接给,通过PrintWriter输出
		PrintWriter out=response.getWriter();//自己new的,不具备向客户端写出的能力
		//DB= table = users
		//是否存在表里
		LoginDao dao = new LoginDao();
		
		if(dao.checkLogin(username, userpass)){
    
    
			out.println("congradulation!!!! success!!!");
		}else{
    
    
			out.println("I am so sorry ,your username or userpass is noavaiable....");
		}
		
	}
	
}

第二步:编写Dao层代码

(这里我跳过了Service,个人感觉简单登录功能不需要做的太复杂)

package com.zhuoyue.dao;

import com.zhuoyue.util.DBUtil;
 
import java.sql.*;

public class LoginDao {
    
    
	public boolean checkLogin(String username, String password){
    
    
		boolean flag = false;
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		/*
		创建Connnection, Statement, ResultSet对象
		调用验证登录的方法
		*/
		System.out.println("name"+username+"password"+password);
		String sql ="select * from user where username = '"+ username +"'";
		conn = DBUtil.getConnection();
		try {
    
    
		    st = conn.createStatement();
		    rs = st.executeQuery(sql);
		    while (rs.next()){
    
    
		        if(rs.getString("password").equals(password)){
    
    
		            flag = true;
		        }
		    }
		} catch (SQLException e) {
    
    
		    e.printStackTrace();
		} finally {
    
    
		    DBUtil.close(rs, st, conn);
		}
		return flag;
    }

}

第三步:编写dao层需要的工具类DBUtil

package com.zhuoyue.util;

import java.sql.*;
 
public class DBUtil {
    
    
    private static String driver = "com.mysql.jdbc.Driver";
    private static String url = "jdbc:mysql://localhost:3306/student";
    private static String user = "root";
    private static String pwd = "123456";
 
    //加载驱动
    static{
    
    
        try {
    
    
            Class.forName(driver);
        } catch (ClassNotFoundException e) {
    
    
            e.printStackTrace();
        }
    }
 
    //连接对象
    public static Connection getConnection(){
    
    
        Connection conn = null;
        try {
    
    
            conn = DriverManager.getConnection(url, user, pwd);
        } catch (SQLException e) {
    
    
            e.printStackTrace();
        }
        return conn;
    }
 
    //关闭流
    public static void close(ResultSet rs, Statement st, Connection conn){
    
    
        try {
    
    
            if(rs != null){
    
    
                rs.close();
            }
            if(st != null){
    
    
                st.close();
            }
            if(conn != null){
    
    
                conn.close();
            }
        } catch (SQLException e) {
    
    
            e.printStackTrace();
        }
    }
 
    public static void close(PreparedStatement pst, Connection conn){
    
    
        close(null, pst, conn);
    }
}

服务器最后进行xml项目配置

将写好的Servlet配入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">

	<!-- 一个servlet的配置需要配置两个东西  -->
	<servlet>
		<servlet-name>login</servlet-name><!-- 111  -->
		<!-- 在底层使用到 了reflect  反射 ... 所以,必须是包名加类名的全程 -->
		<servlet-class>com.zhuoyue.action.DoLoginAction</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>login</servlet-name><!-- 此处与111处一致  -->
		<url-pattern>/dologin</url-pattern><!-- 此处与前端form标点一致  -->
	</servlet-mapping>

</web-app>

前端界面编写

<%@ 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>Insert title here</title>
</head>
<body>
	<h1>Login Page</h1>
	
	<form action="dologin" method="post">
		账号:<input name="username" /><br />
		密码:<input type="password" name="userpass" /><br />
		<input type="submit" value="登录" />
		<input type="reset" value="重写" />
	</form>
		
</body>
</html>

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiaozhezhe0470/article/details/108620107