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

程序员的bug修复宝典 前言 bug, 又名程序缺陷或者程序漏洞, 是每个程序员每天都回避不了的东西。程序员对bug的感情可谓是五味杂陈:一方面bug非常可恶,尤其是一些偶现的bug,它强大到可以摧毁一个优秀程序员的意志;另一方面很多bug又是程序员自己亲手写下的,无奈之余只能自嘲一句:不写bug我们就要失业了! 作为一名职业程序员,同时也是一名开源创作者, 夸张点说,我解过的bug可以绕地球一圈, 每天写bug解bug几乎是我的日常。 但是,作为一个善于思考和总结的技术up主,我怎么能止步于每天写bug和解bug呢?更何况, 阅读详情

url自动携带jsessionid

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

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

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

找到了解决方案:http://blog.youkuaiyun.com/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>
       <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>
   <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, //文字":"+ txt, //文字

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

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

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

info: txt, //文字

Mysql连接失效问题

2017年12月29日20:48:42

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

640?wx_fmt=png

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

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

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

因此就抛出了这个异常…

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

主要是修改C3P0的配置

如果文章有错的地方欢迎指正,大家互相交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:Java3y


汽车改装维修车行网站模板 汽车改装维修车行网站模板里面包含4个子页面,适合汽车公司网站模板下载。 立即下载

相关推荐

实测避坑:华为Atlas 300I DUO推理卡部署Qwen1.5,性能对比3090与完整配置流程

本文深度评测华为Atlas 300I DUO推理卡在部署Qwen1.5-14B大模型时的性能表现,并与RTX 3090进行对比。通过实测数据展示硬件参数、部署流程及性能优化建议,揭示国产AI加速卡在LLM推理中的独特优势与适用场景,为开发者提供完整的配置指南和避坑方案。

weixin_29083475的博客 794

DeepSeek快速模式与专家模式是否共用同一模型权重?

大语言模型服务中的‘快速模式’与‘专家模式’是当前企业级AI落地的关键工程实践,其本质并非两个独立模型,而是基于同一套开源权重(如DeepSeek-MoE-16B)通过推理引擎配置、专家激活策略(Top-k)、KV Cache量化(FP8/FP16)等运行时参数动态调控的服务形态。这种‘同模不同路’设计兼顾低延迟响应与高精度生成,在金融客服、教育SaaS等SLA敏感场景中尤为普遍。技术价值在于以极低成本实现服务质量分级,避免重复训练与存储开销;典型应用包括API路由分发、流式摘要加速与合同条款精审。本文聚焦

weixin_34221112的博客 401

Cisco Secure ACS 5.8.0.32 安装 + Crack 教程

在ESXi 6.7 上经历过无数次的安装尝试测试了各种兼容版本都没有安装成功,记最后一次安装成功的过程.

Junior's Blog 3537

修复bug的12个关键步骤

boss:那么,你需要多长时间来修复这个bug? 没有经验的程序员:给我一个小时?最多两个小时?我能马上搞定它! 有经验的程序员:这么说吧,钓到一条鱼要多久我就要多久?! 要多少时间才能修复bug,事先是很难知道的,特别是如果你和这些代码还素不相识的话,情况就更加扑朔迷离了。James Shore在《The Art of Agile 》一书中,明确指出要想修复问题得先知道问题的所在。而我

程序手艺人 - 嵌入式音频技术之旅 1451

ffmpeg在windows的安装、合并、切片、.m4s、.m3u8处理

自己处理视频,我用的工具是 ffmpeg,因为涉及到.m3u8格式和.m4s格式的一些操作。ffmpeg的介绍我就不多说了,这里是它的官网地址: https://ffmpeg.org/ ,这里是文档: https://ffmpeg.org/documentation.html (看的头大,没咋看下去)...

一只爱吃糖的小羊 2689

Vivado ChipScope Debugging: Overcoming Common DRC Errors in FPGA Design

本文深入解析Vivado ChipScope调试中常见的DRC错误,特别是AVAL-244和AVAL-245等时钟相关问题,提供实用的Tcl命令解决方案和最佳实践。通过将DRC错误降级为警告的技巧,帮助FPGA设计者高效完成调试流程,同时强调何时应保留DRC检查以确保设计可靠性。

weixin_30335575的博客 416

如何维护大项目-修复bug

阅读代码是程序员的必须技能,但是对于新手却比较难。特别是维护一个大的项目, 当需要修改其中bug时,不知道怎么去读代码。也许有一些技巧可以使用: 第一个技巧:有效利用特定错误信息 如果有特定的错误信息,无论在弹出框中,界面中,还是日志中,可以直接搜索错误信息中不变的部分。这时一般可以找到问题所在。 第二个技巧:边重构边阅读 当代码可读性不强时,需要边重构边理解。以下是

bxprog的专栏 1112

Unity IAP插件实战:从零搭建Google Play内购系统

本文详细介绍了如何使用Unity IAP插件从零搭建Google Play内购系统,涵盖环境准备、双端配置、核心API实现及常见问题排查。通过实战代码示例,帮助开发者快速掌握跨平台内购功能开发,提升手游商业化效率。

weixin_28692867的博客 430

RabbitMQ 3.7.13 维护版本技术解析:绑定同步修复、CLI 增强与各插件 Bug Fix 全解读

RabbitMQ `3.7.13` 是一个面向 bug 修复与易用性改进的维护版本,覆盖核心服务器、CLI 工具、Management 插件、Federation、Shovel、HTTP AuthN/AuthZ 后端与 Trust Store 插件等模块。本文以该版本官方 release notes 为主体,结合当前仓库源码逐一展开修复原理、命令用法与升级注意事项,帮助你理解每个变更背后的实现细节

gitblog_00649的博客 896

Day 01: 与Python的第一次亲密接触

环境搭建 、第一个程序 Hello, World!、以及Python之禅 (The Zen of Python) 的解读。

杨小扩的博客 220

Agisoft Metashape 基于RTK技术的无人机航测免像控技术流程

利用无人机进行航空摄影测量,其使用方便、快速获得成果,已经是测绘行业外业生产的主要方式。RTK定位系统的出现,其厘米级的定位系统,使得航测无人机在作业时,能够准确获取拍照时的GPS位置,能够大量减少像控点,即使不使用像控点也能满足规范对精度的要求。可以有效解决特殊地形(如山川、峡谷、河流、沼泽、水库等)外业人员很难布设像控点的情况。

penglu366366的博客 2188

Dark Reader动态主题修复终极指南:自动化解决网站适配难题

Dark Reader是一款广受欢迎的浏览器扩展,能帮助用户将任何网站转换为深色模式,有效减轻眼部疲劳并提升夜间浏览体验。本指南将详细介绍如何利用Dark Reader的动态主题修复功能,自动化解决各类网站的适配问题,让你轻松享受完美的深色浏览体验。 ## 为什么需要动态主题修复? 尽管Dark Reader的算法已经能够智能转换大多数网站,但由于网页设计的多样性,部分网站可能会出现元素显示异

gitblog_00327的博客 935

第八届传智杯WPS智能办公能力挑战赛练习题库

本文是关于WPS Office软件操作知识的选择题汇总,内容涵盖WPS文字、表格和演示三大组件的常用功能。主要包括:云文档协同编辑、文本框插入、幻灯片打印设置、数据排序与筛选、函数应用(如SUMIF、COUNT)、动画效果设置、格式刷使用、页眉页脚设置、单元格引用类型等基础操作要点。同时涉及计算机基础概念如二进制、ROM存储器等。题目以单选和多选形式呈现,附带详细答案解析,全面检验用户对WPS办公软件的功能掌握程度和实际操作能力,适用于办公软件技能培训和水平测试。

qq_73044452的博客 1432

【Java EE】从零开始写项目【总结】

从零开发项目概述 最近这一直在复习数据结构和算法,也就是前面发出去的排序算法八大基础排序总结,Java实现单向链表,栈和队列就是这么简单,十道简单算法题等等… 被虐得不要不要的,即使是非常简单有时候绕半天,想不明白。 本来这篇博文是想留到我最后Java基础复习完再写出来的,鉴于公众号有的同学想看看邮箱登陆的案例,想看看Java开发后台是怎么的,于是我就提前写了这篇博文 这个项目是我自己手写...

3y 1009

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

WordPress故障排除终极指南:10个常见问题诊断和快速修复方法

WordPress是全球最受欢迎的内容管理系统,但在使用过程中难免会遇到各种技术故障。本指南将为您提供专业的WordPress故障排除解决方案,帮助您快速诊断和修复常见的网站问题。😊 ## 🤔 为什么需要WordPress故障排除? 当您的WordPress网站出现问题时,系统可能会呈现类似这样的故障视觉效果: [![WordPress技术故障诊断](https://raw.gitcod

gitblog_00092的博客 1027

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

终极指南:如何免费搭建个人教学网站——基于gustavoguanabara.github.io项目

想要创建一个专业的个人教学网站却担心成本高昂?gustavoguanabara.github.io项目为你提供了零成本解决方案!本指南将带你了解如何利用这个开源项目快速搭建属于自己的教学平台,无论是分享编程知识、课程资料还是学习心得,都能轻松实现。 ## 为什么选择gustavoguanabara.github.io搭建教学网站? gustavoguanabara.github.io是一个专为

gitblog_00885的博客 1106

终极指南:如何用Linkinator快速检测和修复网站死链 [特殊字符]

Linkinator是一款强大的**死链检测工具**,能够自动爬取网站并验证所有链接的有效性。无论您需要检查在线网站、本地HTML文件还是Markdown文档,这款链接验证器都能快速高效地发现死链、坏链和无效URL。作为一款专业的**链接检查工具**,它能够大幅提升网站质量,确保用户体验和SEO表现。 ## 🎯 为什么需要死链检测工具? 在网站运营过程中,链接失效是常见问题。404错误不仅影

gitblog_00080的博客 620

HoRain云--Linux登录故障终极排查:从密码重置到系统修复全攻略

本文适用于CentOS/RHEL 7+、Ubuntu 20.04+等主流Linux发行版,涵盖物理机与云服务器场景,提供从基础排查到深度修复的完整解决方案。

2401_86544677的博客 1119

终极指南:如何用Linkinator快速检测和修复网站死链

Linkinator是一款强大的**死链检测工具**,能够自动爬取网站并验证所有链接的有效性。无论您需要检查在线网站、本地HTML文件还是Markdown文档,这款链接验证器都能快速高效地发现死链、坏链和无效URL。作为一款专业的**链接检查工具**,它能够大幅提升网站质量,确保用户体验和SEO表现。 [![Linkinator死链检测工具](https://raw.gitcode.com/gh

gitblog_00793的博客 503

Arduino ESP32下载问题终极解决方案:从零开始快速修复

还在为Arduino ESP32下载失败而苦恼吗?😫 这个问题困扰着众多物联网开发者,特别是当你在Arduino IDE中尝试安装ESP32开发板支持时。别担心,本文为你提供一套完整的故障排除方案,让你快速恢复正常开发工作! ## 🔍 问题深度剖析:为什么下载总是失败? 当你在Arduino IDE的开发板管理器中点击"安装"按钮时,可能会遇到各种让人抓狂的错误。这些问题的根源通常来自几个

gitblog_00387的博客 895

Windows兼容性终极解决方案:驱动更新与系统修复完整指南

面对Windows系统兼容性问题,许多用户感到束手无策。特别是当**驱动更新**不及时或**系统修复**方法不当,会导致软件无法正常运行。本文将从实际使用场景出发,为您提供一套完整的**Windows兼容性**问题解决方案,让您轻松应对各种系统故障。 ## 常见兼容性问题快速识别 在开始修复之前,先了解常见的兼容性症状: ✅ **启动失败** - 程序闪退或无法启动 ✅ **功能异常** -

gitblog_00405的博客 1196

从失效到重生:Chat2DB社区链接修复终极指南

Chat2DB是一款AI驱动的数据库工具和SQL客户端,作为当下最热门的GUI客户端,它支持MySQL、Oracle、PostgreSQL、DB2、SQL Server、SQLite、H2、ClickHouse等多种数据库。本指南将为你提供修复社区链接的完整解决方案,帮助你快速解决链接失效问题,重新享受Chat2DB带来的高效数据库管理体验。 ## 社区链接失效的常见原因 社区链接失效可能由多

gitblog_00939的博客 353

网站链接健康检查终极指南:使用Linkinator快速发现并修复死链

在网站维护和SEO优化过程中,链接失效是每个站长和开发者都会遇到的棘手问题。404错误不仅损害用户体验,还会严重影响搜索引擎排名。Linkinator作为一款强大的网站链接检测工具,能够自动爬取网站并验证所有链接的有效性,帮助您快速发现并修复死链问题。 **核心关键词**:链接检测工具、死链检查、网站质量检查 **长尾关键词**:网站链接健康检查工具、自动爬取验证链接、快速发现死链、修复404

gitblog_01153的博客 477
上一篇: 从零开始写项目第五篇【评论功能、备忘录】
下一篇: 【Java EE】从零开始写项目【总结】
Java3y
Java3y 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 1万+粉丝 509原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值