# 软件开发与管理 **Repository Path**: yangxinmingfang/web-framework ## Basic Information - **Project Name**: 软件开发与管理 - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 511 - **Created**: 2021-03-08 - **Last Updated**: 2021-03-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件开发与管理项目 #### 介绍 本仓库属于软件开发与管理课程。 包含作业和项目两个部分。 #### 要求 * 每次提交前填写以下的完成内容 * 并在提交消息中写明具体内容 #### 完成内容列表 尝试提交 1. 搭建环境,完成安装Intellij IDEA,JDK,Tomcat,Maven,MySQL 正式提交: 1. 添加maven和web框架支持 2. 配置tomcat服务器,设置各种编码为utf-8,设置热部署 3. 在index.jsp中简单实现helloworld 4. 完成页面、java类以及数据库中表的建立 5. 完成代码编写的主要逻辑以及功能,接下来进行测试 6. 完成作业2:基于model2的登录功能 7. 设置cookie,同时解决output输出乱码问题,在tomcat的conf文件夹下的logging.properties文件,全部设置为utf-8 8. 完成(作业3:基于Filter的用户登录验证)的基本逻辑以及代码的编写 9. 遇到一个问题,即第一次登录时,session为null,会被过滤器拦截,从而又重定向到Login.jsp页面,导致,output窗口一直输出“用户登录成功”,但是却没有发生页面跳转-------调试了几个小时,发现是本地浏览器里存在cookie数据,使得每次都重定向到Login.jsp页面 10. 完成作业3:基于Filter的用户登录验证 11. 作业4(基于litener的在线用户统计),编程思想,通过获取session获取ip地址,最终使用ip地址来统计在线人数 12. 完成litener监听器的基本代码编写,接下来需要设置前端Jsp页面,同时遇到2点问题: 问题1:本人通过sessionId获取ip,同时将sessionId和ip作为一对值封装,存入list集合中,放到applicationContext中,不同浏览器访问服务器,可存在不同的sessionId,此时存在sessionId与ip无法一一对应的问题,需要做出判断(即这个ip地址是否已经存在) 问题2:需要同时记录用户的登录信息到applicationContext中吗? 13. 解决问题1:不能单独使用sessionId作为key值,因为一台电脑的不同浏览器可以产生多个sessionId,这样的话,就是多个key值对应一个value值。 解决问题2:需要记录用户到登录信息到applicationContext中,以用户名和sessionId值作为key值,IP作为value值,这样才能一对一。实现在线人数的统计。 14.完成作业4(基于litener的在线用户统计),统计username和ip地址,因为多个用户可以在一台电脑上登录,所以如果username不同,id相同,则计数器加1,username不同,id不同,计数器也加1.