# 软件开发与管理 **Repository Path**: zhanghaoxuan1/web-framework ## Basic Information - **Project Name**: 软件开发与管理 - **Description**: No description available - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 511 - **Created**: 2021-03-11 - **Last Updated**: 2021-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件开发与管理项目 - 作业 ## 1.搭建环境 #### 介绍 1. 创建了一个web-framework的maven项目 2. 配置了jdk1.8,maven3.5.4,tomcat8.5.35,IDEA2017.3.4,mysql-8.0.19-winx64 ## 2.基于Model2的登陆功能 #### 介绍 1. 页面:Login.jsp,LoginSuccess(main).jsp 2. Java类:LoginServlet.java,User.java 3. 数据库:user表 #### 说明 1. 完成Login.jsp,LoginSuccess.jsp,LoginServlet.java,User.java类 2. 在pom.xml中引入了jstl的依赖,commons-lang依赖,servlet-api的依赖 3. 在web.xml中配置了servlet的映射 4. 完成了使用jdbc连接数据库的操作,并将用户输入数据和数据库数据进行比较,正确数据可以跳到LoginSuccess.jsp页面中去 5. 上传这次使用的test1.sql数据库 6. 作业二提交完成 ## 3.基于Filter的用户登陆 #### 介绍 1. 退出系统后不能访问登陆成功页面,只能访问登陆页面登陆页面 2. 登陆成功后,只要在浏览器的地址栏中输入登陆页面的网址,会自动跳到这个用户登陆成功的界面,不能在访问登陆页面了 3. 使用了网页伪静态 4. 配置了访问错误的页面,404和500错误 #### 说明 1. 新增ExitFilter,JspFilter,LoginFilter过滤器,分别处理退出,.jsp页面,登陆的时候请求 2. 做的过程中主要是需要注意过滤器的顺序,有些过滤器只能按照当前顺序进行排序 ## 3.基于Listener完成在线用户统计 #### 介绍 1. 用户登陆之后可以看到有多少个人登陆这个系统了 2. 用户点击退出按钮,或者当前页面等待10分钟之后,因为我设置的session的有效期是10分钟,然后刷新页面,会退出到登陆界面,并且用户的在线人数会少一个 #### 说明 1. 新增SessionFilter,负责过滤session过期退出到登陆页面的 2. 在ExitFilter中只要执行了invalidate这个方法,就会调用session监听器的毁灭方法 3. 新增UserLoginListener,负责监听在线用户 4. 做的过程中主要是刚开始没理解session这个会话的意思,走了很多弯路,session会话,就是只要url中访问了这个服务器,就会有一个session会话,和你建立没建立session没关系,这里我把sessionid和用户名存到application中,没登陆的时候是游客,在登陆那里,创建session的时候,我得到了同一个sessionid,更新了hashmap,统计了登陆人数,这里要注意的是要在刚开始访问的jsp页面中加入session=false,否则可能会得到两个不同的sessionid