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

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

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

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

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

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

因此就抛出了这个异常…

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

主要是修改C3P0的配置

本文分享自微信公众号 - Java3y(gh_085b56c42174)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

从websocket看go的应用

Go是互联网时代的通用编程语言。这样它就和命令行时代的C语言、图示界面时代的C++、以及互联网早期的Java语言等有不同的侧重。它强调保持自身的精巧和独立,从而...

43880
来自专栏张戈的专栏

linux/scp命令报“bash: scp: command not found lost connection”错误的解决办法

这两天接到的任务是给 JAVA 开发项目组部署【JAVA+MySQL 主从+Redis 主从】运行环境。部署过程中大问题倒没有,小问题却不少,因此也涨了不少经验...

40340
来自专栏Golang语言社区

一种高效无锁内存队列的实现

Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。 第一部分。引子 谈到并发程序设计,有几...

1.2K80
来自专栏Golang语言社区

锁的优化和注意事项151

1. 锁优化的思路和方法 在[高并发Java 一] 前言中有提到并发的级别。 一旦用到锁,就说明这是阻塞式的,所以在并发度上一般来说都会比无锁的情况低一点。 这...

454110
来自专栏Golang语言社区

问题帖子--Concurrent Read/Write Map

DK1.5 引入了 concurrent package, 提供了更多的concurrent 控制方法。 还提供了一个 ConcurrentHashMap 类...

380120
来自专栏腾讯Bugly的专栏

Android开发必备知识:为什么说Kotlin值得一试

1、Hello, Kotlin 1.1 Kotlin的身世 写了许久 Java,有没有发现其实你写了太多冗余的代码? 后来你体验了一下 Python,有没有觉得...

48790
来自专栏腾讯Bugly的专栏

快速定位crash的炫酷方式

本人所在项目组主要负责一款Android平台产品的开发,因为用户量比较大,正式版本发布后,每天Crash次数的上报量都在几十万量级,即便是内测版,每天Crash...

418120
来自专栏腾讯Bugly的专栏

从 Android 静音看正确的查找 bug 的姿势

0、写在前面 没抢到小马哥的红包,无心回家了,回公司写篇文章安慰下自己TT。。话说年关难过,bug 多多,时间久了难免头昏脑热,不辨朝暮,难识乾坤。。。艾玛,扯...

37860
来自专栏腾讯Bugly的专栏

当dex分包遇上NoClassDefFoundError & ClassNotFoundException

简介 本文记录的是:国庆节前夕,解决Crash率高达9.08%问题成功避免加班拿3倍工资的故事 PS: 除了在时间上两者相遇外,本文中提到的两个(top1&to...

53390
来自专栏Golang语言社区

Go-指针、传值与传引用、垃圾回收

要点 Go使用的*、&、new()这些运算符,和C++的用法完全一样。 有传值和传引用/传地址的概念,和C++一样。 Go没有new对应的delete操作,而是...

34250

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励