目录
一、项目搭建准备工作
二、登录功能实现
三、注销功能实现
四、登录拦截实现
一、项目搭建准备工作
1、搭建一个maven web项目
2、配置Tomcat
3、测试项目是否能够跑起来
4、导入项目中会遇到的jar包(servlet、jsp、mysql驱动、jstl、standard)
5、创建项目包结构(pojo、dao、service、servlet、util、filter)
6、编写实体类(ORM 表-类映射)
7、编写基础公共类
1、数据库配置文件
2、编写数据库的公共类
package com.liang.dao;import java.io.IOException;
import java.io.InputStream;
import java.sql.*;
import java.util.Properties;//操作数据库的公共类
public class BaseDao {private static String driver;private static String url;private static String username;private static String password;//静态代码块,类加载的适合就初始化了static{Properties properties = new Properties();//通过类加载器读取对应的资源InputStream is = BaseDao.class.getClassLoader().getResourceAsStream("db.properties");try {properties.load(is);} catch (IOException e) {throw new RuntimeException(e);}driver = properties.getProperty("driver");url = properties.getProperty("url");username = properties.getProperty("username");password = properties.getProperty("password");}//获取数据库的链接public static Connection getConnection(){Connection connection = null;try {Class.forName(driver);connection = DriverManager.getConnection(url, username, password);} catch (Exception e) {throw new RuntimeException(e);}return connection;}//编写查询公共方法public static ResultSet execute(Connection connection,String sql,Object[] params,PreparedStatement preparedStatement,ResultSet resultSet) throws Exception{//预编译的sql,在后面直接执行就可以了,后一步不用传参preparedStatement = connection.prepareStatement(sql);for (int i = 0; i < params.length; i++) {//setObject,占位符从1开始,但数组是从0开始的,所以使用i+1preparedStatement.setObject(i+1,params[i]);}resultSet = preparedStatement.executeQuery();return resultSet;}//编写增删改公共方法public static int execute(Connection connection,String sql,Object[] params,PreparedStatement preparedStatement,int i)throws Exception{preparedStatement = connection.prepareStatement(sql);for (int j = 0; j < params.length; j++) {preparedStatement.setObject(j+1,params[j]);}i = preparedStatement.executeUpdate();return i;}//释放资源public static boolean close(Connection connection,PreparedStatement preparedStatement,ResultSet resultSet){boolean flag = true;if(resultSet!=null){try {resultSet.close();//GC回收resultSet = null;} catch (SQLException e) {flag = false;throw new RuntimeException(e);}}if(preparedStatement!=null){try {preparedStatement.close();//GC回收preparedStatement = null;} catch (SQLException e) {flag = false;throw new RuntimeException(e);}}if(connection!=null){try {connection.close();//GC回收connection = null;} catch (SQLException e) {flag = false;throw new RuntimeException(e);}}return flag;}
}
3、编写字符编码过滤器
8、导入静态资源
二、登录功能实现
1、编写前端页面
2、设置首页(欢迎页)
3、编写dao层,得到登录用户的接口
4、编写dao层的实现类
5、业务层接口
6、业务层实现类
7、编写Servlet
8、 注册Servlet
9、测试访问,确保以上功能成功!
三、注销功能实现
1、移除Session,返回登录页面
2、注册Servlet
四、登录拦截实现
1、编写一个过滤器,并注册