从零开始写项目终极【维护网站、修复Bug】

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 在我使用浏览器收藏了我写的网站的时候,有的时候会访问不了页面。看了一下原因,是由于url携带了jsessionId,我就奇怪为啥会自动携带jsession了。

url自动携带jsessionid


在我使用浏览器收藏了我写的网站的时候,有的时候会访问不了页面。

看了一下原因,是由于url携带了jsessionId,我就奇怪为啥会自动携带jsession了。

我分析是由“记住我“功能引起的这个bug,于是我就去查找了一下Shiro的相关资料。

找到了解决方案:http://blog.csdn.net/yyf314922957/article/details/51038322

我把Shiro的版本升级了,加入了配置文件信息:


<!--Shiro与Spring整合-->
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-spring</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-web</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-core</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!--Shiro与ehcache整合-->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.5.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shiro</groupId>
            <artifactId>shiro-ehcache</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!--javaEE基本API-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
<!-- 会话管理器 -->
    <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        <!--不允许url重写sessionId-->
        <property name="sessionIdUrlRewritingEnabled" value="false" />
        <!-- session的失效时长,单位毫秒 -->
        <property name="globalSessionTimeout" value="800000"/>
        <!-- 删除失效的session -->
        <property name="deleteInvalidSessions" value="true"/>
    </bean>


Shiro拦截器比SpringMVC拦截器先要执行


经过一段时间的使用,发现自动登陆的功能还是没有做好。

打了debug才发现原来Shiro拦截器比SpringMVC拦截器先要执行,这意味着我的SpringMVC实现自动登陆的代码是没用的!!

后来自己重新定义一个Filter放在Shiro拦截器前面,在访问的时候就报错了。也就是说Shiro拦截器的优先级是最高的

那也就是说:我的自动登陆逻辑不能放在拦截器或者过滤器中

最后,我的自动登陆逻辑就写在了表单认证器上


修复在线聊天名字冲突问题


在测试的时候,发现获取了当前用户的名字,而不是发送者的名字。

原来在逻辑上出错了,当时获取的时候是这样子:


info: $("#userNickname").val()+":"+ txt, //文字

这样是不合理的,因为无论是谁发的,都是获取得到自己的名字。

最后修改成:在发送端就指明用户了,在获取的时候直接把发送的数据获取就好了。


message: $("#userNickname").val() + ":" + $("#inputText").val()
 info: txt, //文字


Mysql连接失效问题


2017年12月29日20:48:42

其实这个问题在前一段时间我已经知道了,只是我刷新页面,它就不会出现这个问题了。我前一段时间又忙着期末考,于是就没管他了。

93.jpg

今天考完期末考了,我又回来了….

上网上查找了一些资源,出现这个异常的主要原因是:“我的Mysql有效时间少于我配置C3P0连接池的时间”,由于连接池的连接是有效的,但是Mysql已经失效了“

在wait_timeout时间里,mysql的connection处于等待状态,过了这时间mysql5就关闭了,但是java application的连接池仍然有合法的connection,当你再操作数据库时,就会出现这样的问题。

因此就抛出了这个异常…

参考资料:https://www.cnblogs.com/chihirotan/p/6253175.html

主要是修改C3P0的配置

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
消息中间件 安全 Dubbo
Log4j安全漏洞前车之鉴,呕心整理工作中常用开源组件避坑版本
Log4j安全漏洞前车之鉴,呕心整理工作中常用开源组件避坑版本
648 0
|
4天前
|
项目管理 数据库
设计团队如何避免‘项目脱轨’?这些管理工具必须了解一下
设计团队的创造力和高效项目管理同样重要。本文探讨了设计团队在需求变化、跨部门协作、文件管理等方面的常见挑战,并推荐了五款专为设计团队量身打造的高效项目管理工具:板栗看板、Figma、Notion、Trello 和 Asana。这些工具在任务分配、进度跟踪、协作和版本管理等方面各具特色,帮助设计团队提升工作效率,实现项目顺利交付。
25 5
|
2月前
|
存储 数据可视化 数据库
团队文档管理有困难?总有一款工具合适你
本文介绍了团队文档管理的重要性及其在提升工作效率、保障协同作业和知识传承中的关键作用。随后,详细评述了六款广受好评的团队文档管理工具:板栗看板、Notion、Confluence、Quip、Google Workspace 和 Microsoft 365,分别从功能类型、发展历程、价格费用、产品特色、优缺点、适用场景及应用案例等方面进行了对比分析,旨在帮助读者根据自身需求选择最合适的工具。
团队文档管理有困难?总有一款工具合适你
|
7月前
|
开发者 C++ UED
你以为的Bug VS 实际的Bug:解密程序开发中的意外之旅
作为开发者,我们在日常开发过程中经常会遇到各种各样的Bug,有些Bug可能很容易发现并解决,但也有一些Bug让人感到困惑摸不到头脑,甚至是无厘头Bug,就像我们以为的Bug与实际的Bug之间的差异一样,让人头大。所以我们在日常开发过程中,一定要细心、细致、细顾,在面对任何Bug的时候都要抱着敬畏的心态去解决,因为我们永远不知道在实际程序开发中的意外是啥,有什么意外在等着我们去发现和解决。那么本文就来讨论分享一下开发者在工作过程中遇到的“你以为的Bug”与“实际的Bug”之间的差异在哪里?,然后通过一个有趣的比喻,我们将深入分析这些不同类型的Bug,还有就是在解决问题时的重要性和挑战。
95 1
你以为的Bug VS 实际的Bug:解密程序开发中的意外之旅
|
小程序 程序员 测试技术
软件问题修复跟踪系统实战开发教程(上篇)
软件问题修复跟踪系统实战开发教程(上篇)
软件问题修复跟踪系统实战开发教程(上篇)
|
测试技术
如何处理不能复现的bug?软件测试工程师避坑指南
软件测试工作中常常会遇到不能复现的bug,遇到这种情况其实很正常,但是很多测试新手都按照自己的想法处理,没有提交bug,或者匆匆关闭bug。线上出现问题,就只能自己背锅了。
568 0
|
Web App开发 关系型数据库 项目管理
|
测试技术
软件测试面试题:在频繁的版本发布中,如何回归测试?
软件测试面试题:在频繁的版本发布中,如何回归测试?
258 0
|
测试技术
软件测试面试题:软件上线后有bug怎么处理?
软件测试面试题:软件上线后有bug怎么处理?
202 0
|
缓存 测试技术 数据库
【测试基础理论】卡死我了!这算bug么?(非功能-效率性)
【测试基础理论】卡死我了!这算bug么?(非功能-效率性)