登录页(初学者)

一、构建web项目

        在选中的项目下建Module子模块

        选中Module子模块双击“Shift”键,搜索Add Framework,点击图中所示选项。

勾选Web,点击ok,

展开子模块会发现多了一个web包,将web包拖动到src中的main文件夹下并改名为webapp

配置子模块的pom.xml文件,点击右上角“m”标志加载配置文件。

<dependencies>

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
    </dependency>

    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.33</version>
    </dependency>
</dependencies>

注意:配置的Mysql的版本号要与你电脑上Mysql的大版本号一致(你的Mysql:8......,那么你配置的Mysql也应该是8......)

加载完毕后,在webapp包在建一个login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h3>用户登录系统</h3>
<form method="post" action="login">
    账号:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <input type="submit" value="登 录">
</form>
</body>
</html>

 在main-->resourcse中建一个jdbc.properties文件

#mysql8??
//mysql 8要带cj
driverClass = com.mysql.cj.jdbc.Driver
#???
//数据库账号名
username = root
#?????
//密码
password = root
#???url
//路径以及编码格式
url = jdbc:mysql://localhost:3306/servlet?CharacterEncoding=UTF-8

 在main-->java-->建一个com.by包-->建一个util包-->建一个Config类,配置jdbc

代码如下:

package com.by.util;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;
public class Config {
        private static String username;
        private static String password;
        private static String url;
        private static String driverClass;

        static{
            //特殊Hashtable
            Properties prop = new Properties();
            try {
                //读取类路径下的配置文件
                InputStream is = Config.class.getClassLoader().getResourceAsStream("jdbc.properties");
                //InputStream in = new FileInputStream("JavaDemo10/config/jdbc.properties");
                //加载配置文件内容
                prop.load(is);
                // acquire the properties from file
                username = prop.getProperty("username");
                password = prop.getProperty("password");
                url = prop.getProperty("url");
                driverClass = prop.getProperty("driverClass");
                // register the driver
                if(driverClass != null && url != null && username != null && password != null){
                    //加载驱动
                    Class.forName(driverClass);
                }
            } catch (FileNotFoundException e) {
                throw new RuntimeException(e);
            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (ClassNotFoundException e) {
                throw new RuntimeException(e);
            }
        }
        /**
         * @description:  获取连接
         * @param
         * @return: java.sql.Connection
         */
        public static Connection getConnection() throws SQLException {
            Connection con = null;
            try{
                con = DriverManager.getConnection(url,username,password);
            }catch (Exception e){
                e.printStackTrace();
            }
            return con;
        }
        /**
         * @description:  释放资源
         * @param con
         * @param stat
         * @param res
         */

        public static void close(Connection con, Statement stat , ResultSet res) throws SQLException {
            if(con != null){
                con.close();
            }
            if (stat != null) {
                stat.close();
            }
            if (res != null) {
                res.close();
            }
        }
    }



com.by包-->建一个util包-->建一个JdbcUtil类

package com.by.util;

import java.sql.*;

/**
 * @Description: jdbc封装工具类
 * @Version: 1.0
 */
public class JdbcUtils {
    private static Connection con = null;
    private static Statement st = null;
    private static ResultSet rs = null;
    private static PreparedStatement ps = null;
    /**
     * @description: 通用更新封装
     * @param sql    sql语句
     * @param params   传入多参,也可以以数组形式传入
     * @return: java.sql.ResultSet
     */

    public static int update(String sql,Object ...params) throws SQLException {
        int flag = 0;
        try {
            con = Config.getConnection();
            ps = con.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setObject(i+1,params[i]);
            }
            System.out.println(ps.toString());
            //flag = ps.executeUpdate();
            flag = ps.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            Config.close(con,ps,null);
        }
        return flag;
    }

    /**
     * @description:  通用查询
     * @param sql
     * @param params
     * @return: java.sql.ResultSet
     */
    public static ResultSet query(String sql,Object ...params) throws SQLException {
        try {
            con = Config.getConnection();
            ps = con.prepareStatement(sql);
            for (int i = 0; i < params.length; i++) {
                ps.setObject(i + 1, params[i]);
            }
            System.out.println(ps.toString());
            rs = ps.executeQuery();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rs;
    }
}


com.by包-->建一个PoJo包管理用户属性 

package com.by.PoJo;

public class User {
    private Integer id;
    private String username;
    private String password;
    private String sex;
    private Integer age;
    private String address;

    public User() {
    }

    public User(String username, String password, String sex, Integer age, String address) {
        this.username = username;
        this.password = password;
        this.sex = sex;
        this.age = age;
        this.address = address;
    }

    public User(Integer id, String username, String password, String sex, Integer age, String address) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.sex = sex;
        this.age = age;
        this.address = address;
    }
}

com.by包-->建一个servlet包-->建一个LoginServlet类

LoginServlet类中代码:

package com.by.servlet;

import com.by.PoJo.User;
import com.by.service.UserService;
import com.by.service.impl.UserServiceImpl;

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

public class LoginServlet extends HttpServlet {

    private UserService userservice=new UserServiceImpl();

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        try {
            //编码格式
            req.setCharacterEncoding("UTF-8");
            //获取前台数据
            String username = req.getParameter("username");
            String password = req.getParameter("password");
            //创建user类对象
            User user=userservice.login(username,password);
            //判断用户对象是否正确 以及跳转页面
            if (user!=null){
                resp.sendRedirect("main.jsp");
            }else {
                resp.sendRedirect("login.jsp");
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

 再配置web.xml文件

<servlet>
        <servlet-name>login</servlet-name>
        //servlet路径
        <servlet-class>com.by.servlet.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>


    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>

com.by包-->建一个service包-->UserService接口和impl包-->在impl包中实现接口

package com.by.service;

import com.by.PoJo.User;

import java.sql.SQLException;

public interface UserService {
    User login(String username, String password) throws SQLException, Exception;
}
package com.by.service.impl;

import com.by.PoJo.User;
import com.by.dao.UserDao;
import com.by.dao.impl.UserDaoImpl;
import com.by.service.UserService;

import java.sql.SQLException;

/**
 *
 */


public class UserServiceImpl implements UserService {

    private UserDao userdao=new UserDaoImpl();
    @Override
    public User login(String username, String password) throws Exception {
        //业务。。。。。。。。
        return  userdao.login(username,password);

    }
}

com.by包-->建一个dao包-->UserDao接口和impl包-->在impl包中实现接口

package com.by.dao;

import com.by.PoJo.User;

import java.sql.SQLException;

public interface UserDao {
    User login(String username, String password) throws SQLException, Exception;
}

 

package com.by.dao.impl;

import com.by.PoJo.User;
import com.by.dao.UserDao;
import com.by.util.JdbcUtils;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 */
public class UserDaoImpl implements UserDao {
    @Override
    public User login(String username, String password) throws Exception {
        String sql="select * from user where username=? and password=?";
        ResultSet rs = JdbcUtils.query(sql, username, password);
        rs.next();
        return new User(rs.getInt("id"),
                rs.getString("username"),
                rs.getString("password"),
                rs.getNString("sex"),
                rs.getInt("age"),
                rs.getString("address"));

    }
}

项目整体基本完成,运行即可。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值