diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index a1c2a238a965f004ff76978ac1086aa6fe95caea..0000000000000000000000000000000000000000
--- a/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# Compiled class file
-*.class
-
-# Log file
-*.log
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.nar
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..07fa4525d020adea903de6afa69021f855a51011
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/../../../../:\java_proj\web-framework\.idea/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000000000000000000000000000000000000..85a2ced08616d2ed6eca6e3bec1c3c20087a7961
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63e900193296f8ed911a1b9f5b051cf908099431
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
new file mode 100644
index 0000000000000000000000000000000000000000..712ab9d985c20018a0c97b93d2148ac1ffe588a5
--- /dev/null
+++ b/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..439db8d8064bca23d4be6a5abea7dc839f56609d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e96534fb27b68192f27f985d3879e173ec77adb8
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35eb1ddfbbc029bcab630581847471d7f238ec53
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/web-framework.iml b/.idea/web-framework.iml
new file mode 100644
index 0000000000000000000000000000000000000000..78b2cc53b203f0b97534bb1184cdc7b474339fb4
--- /dev/null
+++ b/.idea/web-framework.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/README.en.md b/README.en.md
deleted file mode 100644
index bd2cb730acb8953f053bb4efffb6c69acc969952..0000000000000000000000000000000000000000
--- a/README.en.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# 软件开发与管理
-
-#### Description
-{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
-
-#### Software Architecture
-Software architecture description
-
-#### Installation
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Instructions
-
-1. xxxx
-2. xxxx
-3. xxxx
-
-#### Contribution
-
-1. Fork the repository
-2. Create Feat_xxx branch
-3. Commit your code
-4. Create Pull Request
-
-
-#### Gitee Feature
-
-1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
-2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
-3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
-4. The most valuable open source project [GVP](https://gitee.com/gvp)
-5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
-6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
diff --git a/README.md b/README.md
index c4520c6c23f8c3cd6d1cf424abf6264297fe2308..6b7b1a9ef0ea095793dc65b360ade0dcc4c1a0fe 100644
--- a/README.md
+++ b/README.md
@@ -1,22 +1,29 @@
# 软件开发与管理项目
+## 第一次作业:修改ReadMe
-#### 介绍
-本仓库属于软件开发与管理课程。
-包含作业和项目两个部分。
-
-#### 要求
-* 每次提交前填写以下的完成内容
-* 并在提交消息中写明具体内容
+## 第二次作业:完成基于Model2的登录功能
#### 完成内容列表
-1. 搭建环境
-2. xxxx
-3. xxxx
-4. xxxx
+1. 页面:Login.jsp, LoginSuccess(main).jsp
+2. Java类:LoginServlet.java, User.java
+3. 数据库:user表
#### 补充说明
-1. xxxx
-2. xxxx
-3. xxxx
+
+
+
+
+## 第三次作业:基于Filter的用户登录验证
+
+#### 补充说明
+localhost:8080/main:跳转main.jsp页面
+这里有拦截器进行拦截,将其跳转到登录页面
+
+
+
+## 第四次作业:基于Listener完成在线用户统计
+
+#### 补充说明
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..76e0ae37d4262a5e54c911a1ea19ae3eb168b470
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,99 @@
+
+
+
+ 4.0.0
+
+ org.example
+ work01
+ 1.0-SNAPSHOT
+ war
+
+ work01 Maven Webapp
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.7
+ 1.7
+
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.22
+
+
+
+
+ javax.servlet
+ javax.servlet-api
+ 3.1.0
+
+
+
+
+
+ javax.servlet.jsp
+ javax.servlet.jsp-api
+ 2.3.1
+
+
+
+
+
+ javax.servlet
+ jstl
+ 1.2
+
+
+
+
+
+
+ work01
+
+
+
+ maven-clean-plugin
+ 3.1.0
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ maven-compiler-plugin
+ 3.8.0
+
+
+ maven-surefire-plugin
+ 2.22.1
+
+
+ maven-war-plugin
+ 3.2.2
+
+
+ maven-install-plugin
+ 2.5.2
+
+
+ maven-deploy-plugin
+ 2.8.2
+
+
+
+
+
diff --git a/src/main/java/com/controller/LogoutController.java b/src/main/java/com/controller/LogoutController.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f03d14e6de491ccad11dd77d6decd4bc623d63c
--- /dev/null
+++ b/src/main/java/com/controller/LogoutController.java
@@ -0,0 +1,32 @@
+package com.controller;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+
+/**
+ * @ClassName : LogoutController
+ * @Description : 退出登录
+ * @Author :YUHAIyuan
+ * @Date: 2021-03-19 22:09
+ */
+@WebServlet("/logout")
+public class LogoutController extends HttpServlet {
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+
+ }
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+
+ req.getSession().invalidate();
+ resp.sendRedirect("/login.jsp");
+ }
+}
diff --git a/src/main/java/com/controller/MainController.java b/src/main/java/com/controller/MainController.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1fe1c5f0468195f79f9afcc13b71eabd9a7abe4
--- /dev/null
+++ b/src/main/java/com/controller/MainController.java
@@ -0,0 +1,18 @@
+package com.controller;
+
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebServlet("/main")
+public class MainController extends HttpServlet {
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ resp.sendRedirect("/main.jsp");
+ }
+}
diff --git a/src/main/java/com/controller/UserController.java b/src/main/java/com/controller/UserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..a4f53cca1142418568fe28ae9b0aa9edd0a43008
--- /dev/null
+++ b/src/main/java/com/controller/UserController.java
@@ -0,0 +1,68 @@
+package com.controller;
+
+import com.domain.User;
+import com.service.UserService;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.HashSet;
+
+/**
+ * @ClassName : UserController
+ * @Description : 登录请求
+ * @Author :YUHAIyuan
+ * @Date: 2021-03-19 22:15
+ */
+@WebServlet("/login")
+public class UserController extends HttpServlet {
+ private UserService userService = new UserService();
+
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ req.getRequestDispatcher("/login.jsp").forward(req, resp);
+ }
+
+ @Override
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+ String username = req.getParameter("username");
+ String password = req.getParameter("password");
+
+ //封装成User
+ User user = new User();
+ user.setUsername(username);
+ user.setPassword(password);
+
+ System.out.println("u = "+user);
+ User u = userService.select(user);
+
+ //登录成功
+ if (u != null) {
+ //登录人数加1
+ HttpSession session = req.getSession();
+ ServletContext context = session.getServletContext();
+ HashSet set = (HashSet) context.getAttribute("set");
+ if (null == set) {
+ set = new HashSet();
+ }
+ String sessionId = session.getId();
+ set.add(sessionId);
+ context.setAttribute("set", set);
+
+
+ //存入session
+ req.getSession().setAttribute("user", u);
+// HttpSession session = req.getSession();
+ resp.sendRedirect("/main");
+// req.getRequestDispatcher("/main").forward(req, resp);
+ } else {
+ resp.sendRedirect("/login.jsp");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/dao/UserDao.java b/src/main/java/com/dao/UserDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..dbeab84e3a2336b9123574f37bf2aa283a70870f
--- /dev/null
+++ b/src/main/java/com/dao/UserDao.java
@@ -0,0 +1,73 @@
+package com.dao;
+
+import com.domain.User;
+import com.utils.JDBCUtils;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+/**
+ * @ClassName : UserDao
+ * @Description : User的持久层
+ * @Author : YUHAIyuan
+ * @Date: 2021-03-19 21:29
+ */
+public class UserDao {
+
+ /**
+ * 数据库查询
+ */
+ public User select(User user){
+
+ Connection connection = JDBCUtils.getConnectMysql();
+ //sql语句
+ String sql = "select * from user where username = '"+ user.getUsername() +"' and password = '"+ user.getPassword() +"'";
+
+ //创建Statement对象
+ Statement statement = null;
+
+ //查询结果返回集合
+ ResultSet resultSet = null;
+ try {
+ //获取Statement对象
+ statement = connection.createStatement();
+
+ //执行sql
+ resultSet = statement.executeQuery(sql);
+
+ User u = null;
+ while (resultSet.next()){
+ u = new User();
+ //id、name、money表示数据库对应的字段
+ u.setId(resultSet.getLong("id"));
+ u.setUsername(resultSet.getString("username"));
+ u.setPassword(resultSet.getString("password"));
+ }
+
+ JDBCUtils.close();
+
+ return u;
+
+ } catch (SQLException e) {
+ System.out.println("查询数据库失败");
+ }finally {
+ try {
+ resultSet.close();
+ statement.close();
+ connection.close();
+ } catch (SQLException e) {
+ System.out.println("关闭资源错误");
+ resultSet = null;
+ statement = null;
+ connection = null;
+ }
+
+ }
+
+
+ return null;
+
+ }
+}
diff --git a/src/main/java/com/domain/User.java b/src/main/java/com/domain/User.java
new file mode 100644
index 0000000000000000000000000000000000000000..91c0a793229d679c57fea0e0c818f20666733390
--- /dev/null
+++ b/src/main/java/com/domain/User.java
@@ -0,0 +1,57 @@
+package com.domain;
+public class User {
+ /**
+ * id
+ */
+ private Long id;
+ /**
+ * 用户名
+ */
+ private String username;
+ /**
+ * 密码
+ */
+ private String password;
+
+ @Override
+ public String toString() {
+ return "User{" +
+ "id=" + id +
+ ", username='" + username + '\'' +
+ ", password='" + password + '\'' +
+ '}';
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public User() {
+ }
+
+ public User(Long id, String username, String password) {
+ this.id = id;
+ this.username = username;
+ this.password = password;
+ }
+}
diff --git a/src/main/java/com/filter/LoginFilter.java b/src/main/java/com/filter/LoginFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..17445f2bdfda38d0e97f6ca169b179a4b2aecabc
--- /dev/null
+++ b/src/main/java/com/filter/LoginFilter.java
@@ -0,0 +1,53 @@
+package com.filter;
+
+import com.domain.User;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebFilter;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+
+/**
+ * @ClassName : LoginFilter
+ * @Description : 登录拦截器
+ * @Author :YUHAIyuan
+ * @Date: 2021-03-19 22:09
+ */
+@WebFilter("/main")//访问所有资源之前,都会执行该过滤器
+public class LoginFilter implements Filter {
+
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+
+ }
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException, IOException {
+
+ HttpServletRequest req = (HttpServletRequest)servletRequest;
+ HttpServletResponse resp = (HttpServletResponse) servletResponse;
+ req.setCharacterEncoding("UTF-8");
+ HttpSession session = req.getSession();
+
+ //通过session判断用户是否已经登录
+ User user = (User) session.getAttribute("user");
+
+
+
+ //判断是否已登录
+ if(user != null){
+ //放行
+ filterChain.doFilter(servletRequest,servletResponse);
+ }else {
+ req.getRequestDispatcher("/login.jsp").forward(req,resp);
+ }
+
+ }
+
+ @Override
+ public void destroy() {
+
+ }
+}
diff --git a/src/main/java/com/listener/SessionListener.java b/src/main/java/com/listener/SessionListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..106b4b0bf02e8211d94b0078621f562a3a4806c6
--- /dev/null
+++ b/src/main/java/com/listener/SessionListener.java
@@ -0,0 +1,36 @@
+package com.listener;
+
+import com.domain.User;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionEvent;
+import javax.servlet.http.HttpSessionListener;
+import java.util.HashSet;
+
+
+
+/**
+ * @ClassName : SessionListener
+ * @Description : sessin监听器
+ * @Author :YUHAIyuan
+ * @Date: 2021-03-19 22:20
+ */
+public class SessionListener implements HttpSessionListener {
+
+ @Override
+ public void sessionCreated(HttpSessionEvent se) {
+
+ }
+
+ @Override
+ public void sessionDestroyed(HttpSessionEvent se) {
+ ServletContext context = se.getSession().getServletContext();
+ HashSet set = (HashSet) context.getAttribute("set");
+ HttpSession session = se.getSession();
+ String sessionId = session.getId();
+
+ boolean remove = set.remove(sessionId);
+ System.out.println("已登录人数:" + set.size());
+ }
+}
diff --git a/src/main/java/com/service/UserService.java b/src/main/java/com/service/UserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..8c0032a9b5493d534417c4ab2fa9ab711fdfaa1a
--- /dev/null
+++ b/src/main/java/com/service/UserService.java
@@ -0,0 +1,22 @@
+package com.service;
+
+import com.dao.UserDao;
+import com.domain.User;
+
+import java.sql.*;
+
+/**
+ * @ClassName : UserService
+ * @Description : User的业务层
+ * @Author : YUHAIyuan
+ * @Date: 2021-03-19 21:27
+ */
+public class UserService {
+ private UserDao userDao = new UserDao();
+
+
+ public User select(User user){
+ return userDao.select(user);
+ }
+
+}
diff --git a/src/main/java/com/utils/JDBCUtils.java b/src/main/java/com/utils/JDBCUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..35b7dd0e6c5d2ef6b515a0a3b5a3a310c00963e9
--- /dev/null
+++ b/src/main/java/com/utils/JDBCUtils.java
@@ -0,0 +1,240 @@
+package com.utils;
+
+import java.sql.*;
+
+/**
+ * @ClassName : JDBCMain
+ * @Description :
+ * @Author :YUHAIyuan
+ * @Date: 2021-3-19 22:19
+ */
+public class JDBCUtils {
+
+ static Connection connection = null;
+
+ /**
+ * 获取mysql数据库连接
+ */
+ static public Connection getConnectMysql() {
+ try {
+ //通过类的反射加载类驱动
+ Class.forName("com.mysql.cj.jdbc.Driver");
+
+ //连接数据库相关信息
+ String url = "jdbc:mysql://localhost/login?serverTimezone=GMT%2B8&user=root&password=123456";
+
+ //创建连接
+ connection = DriverManager.getConnection(url);
+ System.out.println("成功连接数据库!!!");
+ return connection;
+
+ } catch (ClassNotFoundException e) {
+ System.out.println("载入JDBC驱动类失败");
+ } catch (SQLException e) {
+ System.out.println("创建数据库连接失败");
+ }
+ return null;
+ }
+
+
+
+ static public void close(){
+ try {
+ connection.close();
+ } catch (SQLException e) {
+ e.printStackTrace();
+ System.out.println("mysql链接关闭异常");
+ }
+ }
+
+ /**
+ * 数据库查询
+ */
+ static void select(){
+ //获取数据库连接
+ Connection connection = getConnectMysql();
+
+ //sql语句
+ String sql = "select * from account";
+
+ //创建Statement对象
+ Statement statement = null;
+
+ //查询结果返回集合
+ ResultSet resultSet = null;
+ try {
+ //获取Statement对象
+ statement = connection.createStatement();
+
+ //执行sql
+ resultSet = statement.executeQuery(sql);
+
+ while (resultSet.next()){
+ //id、name、money表示数据库对应的字段
+ System.out.println("resultSet.getString(\"id\") = " + resultSet.getString("id"));
+ System.out.println("resultSet.getString(\"name\") = " + resultSet.getString("name"));
+ System.out.println("resultSet.getString(\"money\") = " + resultSet.getString("money"));
+ }
+
+
+ } catch (SQLException e) {
+ System.out.println("查询数据库失败");
+ }finally {
+ try {
+ resultSet.close();
+ statement.close();
+ connection.close();
+ } catch (SQLException e) {
+ System.out.println("关闭资源错误");
+ resultSet = null;
+ statement = null;
+ connection = null;
+ }
+
+ }
+
+
+ }
+
+ /**
+ * 数据库插入
+ */
+ static void insert(){
+ //获取数据库连接
+ Connection connection = getConnectMysql();
+
+ //sql语句
+ String name = "Tony";
+ Integer money = 100;
+
+ //sql语句
+ String sql = "insert into account(name,money) values('"+ name +"','"+ money +"')";
+
+ //创建Statement对象
+ Statement statement = null;
+
+ //查询结果返回集合
+ ResultSet resultSet = null;
+ try {
+ //获取Statement对象
+ statement = connection.createStatement();
+
+ //执行sql
+ int i = statement.executeUpdate(sql);
+ System.out.println("数据插入成功,影响的数据条数 = " + i);
+
+
+ } catch (SQLException e) {
+
+ System.out.println("插入数据库失败,"+ e.getMessage());
+ }finally {
+ try {
+ statement.close();
+ connection.close();
+ } catch (SQLException e) {
+ System.out.println("关闭资源错误");
+ statement = null;
+ connection = null;
+ }
+
+ }
+
+
+ }
+
+ /**
+ * 数据库更新
+ */
+ static void update(){
+ //获取数据库连接
+ Connection connection = getConnectMysql();
+
+ //sql语句
+ String name = "汤姆猫";
+ Integer money = 2000;
+
+ //sql语句
+ //String sql = "insert into account(name,money) values('"+ name +"','"+ money +"')";
+ String sql = "update account set name = '"+ name +"', money = '"+ money +"' where id = 28";
+
+
+ //创建Statement对象
+ Statement statement = null;
+
+ //查询结果返回集合
+ ResultSet resultSet = null;
+ try {
+ //获取Statement对象
+ statement = connection.createStatement();
+
+ //执行sql
+ int i = statement.executeUpdate(sql);
+ System.out.println("数据更新成功,影响的数据条数 = " + i);
+
+
+ } catch (SQLException e) {
+
+ System.out.println("更新数据库失败,"+ e.getMessage());
+ }finally {
+ try {
+ statement.close();
+ connection.close();
+ } catch (SQLException e) {
+ System.out.println("关闭资源错误");
+ statement = null;
+ connection = null;
+ }
+
+ }
+
+
+ }
+
+ /**
+ * 删除数据
+ */
+ static void delete(){
+ //获取数据库连接
+ Connection connection = getConnectMysql();
+
+ //sql语句
+ String name = "汤姆猫";
+ Integer money = 2000;
+
+ //sql语句
+ //String sql = "insert into account(name,money) values('"+ name +"','"+ money +"')";
+ String sql = "delete from account where id = 28";
+
+
+ //创建Statement对象
+ Statement statement = null;
+
+ //查询结果返回集合
+ ResultSet resultSet = null;
+ try {
+ //获取Statement对象
+ statement = connection.createStatement();
+
+ //执行sql
+ int i = statement.executeUpdate(sql);
+ System.out.println("数据删除成功,影响的数据条数 = " + i);
+
+
+ } catch (SQLException e) {
+
+ System.out.println("数据库删除数据失败,"+ e.getMessage());
+ }finally {
+ try {
+ statement.close();
+ connection.close();
+ } catch (SQLException e) {
+ System.out.println("关闭资源错误");
+ statement = null;
+ connection = null;
+ }
+
+ }
+
+
+ }
+}
diff --git a/src/main/webapp/LoginSuccess.jsp b/src/main/webapp/LoginSuccess.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..ba3fed2376bde4713c68435cbf3dc81f7f727f58
--- /dev/null
+++ b/src/main/webapp/LoginSuccess.jsp
@@ -0,0 +1,9 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Title
+
+
+登录成功
+
+
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000000000000000000000000000000000000..689a92460d5e8d221e9f68bf341dcf77074ba36b
--- /dev/null
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,11 @@
+
+
+
+ Archetype Created Web Application
+
+ com.listener.SessionListener
+
+
+
diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..e7e80c70326b1b5665a8c12978ac441de5025bf8
--- /dev/null
+++ b/src/main/webapp/index.jsp
@@ -0,0 +1,23 @@
+ <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
+
+ Hello
+
+
+
+
+
+
+
diff --git a/src/main/webapp/login.jsp b/src/main/webapp/login.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..65c1be6c166526d8cdf327846a5948ecdc09ee94
--- /dev/null
+++ b/src/main/webapp/login.jsp
@@ -0,0 +1,32 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/webapp/main.jsp b/src/main/webapp/main.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..d68b183cf5bf57c8a90f74bf2f4fff17e2edb6c4
--- /dev/null
+++ b/src/main/webapp/main.jsp
@@ -0,0 +1,36 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
退出登录
+
+
+ 登录成功
+
+
+
+
+
+
+ 当前在线人数:${applicationScope.set.size()}
+
+
+
+
+
+
diff --git a/target/classes/com/controller/LogoutController.class b/target/classes/com/controller/LogoutController.class
new file mode 100644
index 0000000000000000000000000000000000000000..21dfca1b2327f6c51ba89991463c406a5cc719e8
Binary files /dev/null and b/target/classes/com/controller/LogoutController.class differ
diff --git a/target/classes/com/controller/MainController.class b/target/classes/com/controller/MainController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b6651a80b4278269ba838268e9d1ace7929fb955
Binary files /dev/null and b/target/classes/com/controller/MainController.class differ
diff --git a/target/classes/com/controller/UserController.class b/target/classes/com/controller/UserController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b27cb409c95d570d2d582dde6e7d94f44bdac1a0
Binary files /dev/null and b/target/classes/com/controller/UserController.class differ
diff --git a/target/classes/com/dao/UserDao.class b/target/classes/com/dao/UserDao.class
new file mode 100644
index 0000000000000000000000000000000000000000..427526964827d62216f145de57c1620a07d6bfdf
Binary files /dev/null and b/target/classes/com/dao/UserDao.class differ
diff --git a/target/classes/com/domain/User.class b/target/classes/com/domain/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..701395eb04a409d308b537bfe4bdbc72f70a99c4
Binary files /dev/null and b/target/classes/com/domain/User.class differ
diff --git a/target/classes/com/filter/LoginFilter.class b/target/classes/com/filter/LoginFilter.class
new file mode 100644
index 0000000000000000000000000000000000000000..d279b5c5f9383c4f1bde92a3d89e124c1af9ac59
Binary files /dev/null and b/target/classes/com/filter/LoginFilter.class differ
diff --git a/target/classes/com/listener/SessionListener.class b/target/classes/com/listener/SessionListener.class
new file mode 100644
index 0000000000000000000000000000000000000000..bddc2c885d7129f6091517b938c9bbef860f1922
Binary files /dev/null and b/target/classes/com/listener/SessionListener.class differ
diff --git a/target/classes/com/service/UserService.class b/target/classes/com/service/UserService.class
new file mode 100644
index 0000000000000000000000000000000000000000..acda67000dd6016ec0249bf5ccbafe6cc459e804
Binary files /dev/null and b/target/classes/com/service/UserService.class differ
diff --git a/target/classes/com/utils/JDBCUtils.class b/target/classes/com/utils/JDBCUtils.class
new file mode 100644
index 0000000000000000000000000000000000000000..c63d0776cd128a27ec5cc639b09c8c5db9c3319f
Binary files /dev/null and b/target/classes/com/utils/JDBCUtils.class differ
diff --git a/target/work01/LoginSuccess.jsp b/target/work01/LoginSuccess.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..ba3fed2376bde4713c68435cbf3dc81f7f727f58
--- /dev/null
+++ b/target/work01/LoginSuccess.jsp
@@ -0,0 +1,9 @@
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+
+
+ Title
+
+
+登录成功
+
+
diff --git a/target/work01/META-INF/MANIFEST.MF b/target/work01/META-INF/MANIFEST.MF
new file mode 100644
index 0000000000000000000000000000000000000000..df1a10d0d673af8aa66aeacd9e23bba99bc7d30c
--- /dev/null
+++ b/target/work01/META-INF/MANIFEST.MF
@@ -0,0 +1,5 @@
+Manifest-Version: 1.0
+Created-By: IntelliJ IDEA
+Built-By: 86136
+Build-Jdk: version 1.8.0_161
+
diff --git a/target/work01/WEB-INF/classes/com/controller/LogoutController.class b/target/work01/WEB-INF/classes/com/controller/LogoutController.class
new file mode 100644
index 0000000000000000000000000000000000000000..21dfca1b2327f6c51ba89991463c406a5cc719e8
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/controller/LogoutController.class differ
diff --git a/target/work01/WEB-INF/classes/com/controller/MainController.class b/target/work01/WEB-INF/classes/com/controller/MainController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b6651a80b4278269ba838268e9d1ace7929fb955
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/controller/MainController.class differ
diff --git a/target/work01/WEB-INF/classes/com/controller/UserController.class b/target/work01/WEB-INF/classes/com/controller/UserController.class
new file mode 100644
index 0000000000000000000000000000000000000000..b27cb409c95d570d2d582dde6e7d94f44bdac1a0
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/controller/UserController.class differ
diff --git a/target/work01/WEB-INF/classes/com/dao/UserDao.class b/target/work01/WEB-INF/classes/com/dao/UserDao.class
new file mode 100644
index 0000000000000000000000000000000000000000..427526964827d62216f145de57c1620a07d6bfdf
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/dao/UserDao.class differ
diff --git a/target/work01/WEB-INF/classes/com/domain/User.class b/target/work01/WEB-INF/classes/com/domain/User.class
new file mode 100644
index 0000000000000000000000000000000000000000..701395eb04a409d308b537bfe4bdbc72f70a99c4
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/domain/User.class differ
diff --git a/target/work01/WEB-INF/classes/com/filter/LoginFilter.class b/target/work01/WEB-INF/classes/com/filter/LoginFilter.class
new file mode 100644
index 0000000000000000000000000000000000000000..d279b5c5f9383c4f1bde92a3d89e124c1af9ac59
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/filter/LoginFilter.class differ
diff --git a/target/work01/WEB-INF/classes/com/listener/SessionListener.class b/target/work01/WEB-INF/classes/com/listener/SessionListener.class
new file mode 100644
index 0000000000000000000000000000000000000000..bddc2c885d7129f6091517b938c9bbef860f1922
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/listener/SessionListener.class differ
diff --git a/target/work01/WEB-INF/classes/com/service/UserService.class b/target/work01/WEB-INF/classes/com/service/UserService.class
new file mode 100644
index 0000000000000000000000000000000000000000..acda67000dd6016ec0249bf5ccbafe6cc459e804
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/service/UserService.class differ
diff --git a/target/work01/WEB-INF/classes/com/utils/JDBCUtils.class b/target/work01/WEB-INF/classes/com/utils/JDBCUtils.class
new file mode 100644
index 0000000000000000000000000000000000000000..c63d0776cd128a27ec5cc639b09c8c5db9c3319f
Binary files /dev/null and b/target/work01/WEB-INF/classes/com/utils/JDBCUtils.class differ
diff --git a/target/work01/WEB-INF/lib/javax.servlet-api-3.1.0.jar b/target/work01/WEB-INF/lib/javax.servlet-api-3.1.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..6b14c3d267867e76c04948bb31b3de18e01412ee
Binary files /dev/null and b/target/work01/WEB-INF/lib/javax.servlet-api-3.1.0.jar differ
diff --git a/target/work01/WEB-INF/lib/javax.servlet.jsp-api-2.3.1.jar b/target/work01/WEB-INF/lib/javax.servlet.jsp-api-2.3.1.jar
new file mode 100644
index 0000000000000000000000000000000000000000..74516209429e42af347ec5d00f3e282549ba5e1d
Binary files /dev/null and b/target/work01/WEB-INF/lib/javax.servlet.jsp-api-2.3.1.jar differ
diff --git a/target/work01/WEB-INF/lib/jstl-1.2.jar b/target/work01/WEB-INF/lib/jstl-1.2.jar
new file mode 100644
index 0000000000000000000000000000000000000000..0fd275e94660402f80f01505d28b90a23f7e0209
Binary files /dev/null and b/target/work01/WEB-INF/lib/jstl-1.2.jar differ
diff --git a/target/work01/WEB-INF/lib/mysql-connector-java-8.0.22.jar b/target/work01/WEB-INF/lib/mysql-connector-java-8.0.22.jar
new file mode 100644
index 0000000000000000000000000000000000000000..412d81faa52ff19c78ccf9b5577e600569a47844
Binary files /dev/null and b/target/work01/WEB-INF/lib/mysql-connector-java-8.0.22.jar differ
diff --git a/target/work01/WEB-INF/lib/protobuf-java-3.11.4.jar b/target/work01/WEB-INF/lib/protobuf-java-3.11.4.jar
new file mode 100644
index 0000000000000000000000000000000000000000..7224d23dfd2702ff1f4479ed9243124f9924acb4
Binary files /dev/null and b/target/work01/WEB-INF/lib/protobuf-java-3.11.4.jar differ
diff --git a/target/work01/WEB-INF/web.xml b/target/work01/WEB-INF/web.xml
new file mode 100644
index 0000000000000000000000000000000000000000..689a92460d5e8d221e9f68bf341dcf77074ba36b
--- /dev/null
+++ b/target/work01/WEB-INF/web.xml
@@ -0,0 +1,11 @@
+
+
+
+ Archetype Created Web Application
+
+ com.listener.SessionListener
+
+
+
diff --git a/target/work01/index.jsp b/target/work01/index.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..e7e80c70326b1b5665a8c12978ac441de5025bf8
--- /dev/null
+++ b/target/work01/index.jsp
@@ -0,0 +1,23 @@
+ <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+ <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
+
+ Hello
+
+
+
+
+
+
+
diff --git a/target/work01/login.jsp b/target/work01/login.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..65c1be6c166526d8cdf327846a5948ecdc09ee94
--- /dev/null
+++ b/target/work01/login.jsp
@@ -0,0 +1,32 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
+
+
+
diff --git a/target/work01/main.jsp b/target/work01/main.jsp
new file mode 100644
index 0000000000000000000000000000000000000000..d68b183cf5bf57c8a90f74bf2f4fff17e2edb6c4
--- /dev/null
+++ b/target/work01/main.jsp
@@ -0,0 +1,36 @@
+<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isELIgnored="false" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+
+
+
+
+ love
+
+
+
+
+
+
+
退出登录
+
+
+ 登录成功
+
+
+
+
+
+
+ 当前在线人数:${applicationScope.set.size()}
+
+
+
+
+
+
diff --git a/work01.iml b/work01.iml
new file mode 100644
index 0000000000000000000000000000000000000000..78b2cc53b203f0b97534bb1184cdc7b474339fb4
--- /dev/null
+++ b/work01.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file