开发者社区> 问答> 正文

一个session的问题


我的环境是:Tomcat 7 + Java 7 + Mysql 5

现在发布在云服务器后,出现一个问题:

在用户登录时,建立一个 Session 保存用户一些基本信息作为登录的标识,

奇怪的是在操作中却无法获取到这个Session,

我检查了下 web.xml 配置文件,也设置有 Session 的参数为 30 分钟了的。


疑问:是不是在云服务器里,还需要针对 Session 作其它的特定配置? 在我本地环境中,程序是能正常运行的。

谢谢!:)

展开
收起
春风十里 2014-08-26 17:46:11 8568 0
2 条回答
写回答
取消 提交回答
  • 回1楼小柒2012的帖子
    您太强了,

    我是在后台获取 Session 作判断的,

    代码大致如下:

        //change photo cover
        @RequestMapping(value = "/displayImage")
        public void displayImage(HttpServletRequest request, HttpServletResponse response){
            
            ActionResult objResult = null;
            
            String photoListPtr = WebUtils.findParameterValue(request, "PhotoListPtr");
            String appSource = WebUtil.decode2( WebUtils.findParameterValue(request, "AppSource") );
            
            try{                
                
                 UserSessionInfo session = (UserSessionInfo)WebUtil.getUserSession(request, "UserInfo");
                
                if(session != null){    

                    if("".equals(photoListPtr)){
                        
                        objResult = actionResultService.getActionResultItem("10001");
                        
                    }else{
                        
                        long userPtr = (long)session.getUserPtr();
                        
                        userService.displayPhotoList(userPtr, Long.parseLong(photoListPtr), WebUtil.USER_PHOTO_DEFAULT_NAME);
                        
                        //保存系统记录
                        UserOptLogo userOptLogo = new UserOptLogo(
                                userPtr,
                                appSource,
                                WebUtil.USER_CHANGE_PHOTO_COVER,
                                "changePhotoDisplay",
                                photoListPtr,
                                userPtr,
                                new Date()
                            );
                        
                        imprintService.saveUserOptLogo(userOptLogo);
                        
                        objResult = actionResultService.getActionResultItem("20019");
                        
                    }

                }else{
                    
                    objResult = actionResultService.getActionResultItem("20008");
                    
                }
                
            }catch (Exception e) {
                
                objResult = actionResultService.getActionResultItem("10000");
                
                e.printStackTrace();
                
            }
            
            WebUtil.responseToJson( response, objResult );
            
        }

    红色部分就是获取登录时保存的 Session ,这不是很复杂的啊,可惜就是获取不到,很奇怪

    -------------------------

    回2楼小柒2012的帖子

    我找到原因了,

    用 ./catalina.sh run 的命令显示出错误提示:找不到 USER_INFO 表,

    原来在 Linux 环境下,MySQL 是区分大小写的表名称,

    用 sudo mysql  shutdown 停止SQL服务,修改 my.xml 的配置:

    在[mysqld]下加入一行:lower_case_table_names=1


    如此这般,现在网站一切正常了。

    -------------------------

    回5楼小柒2012的帖子
    做了一个交友网站,用 Spring MVC 框架,多测试下完善了我开源
    2014-08-26 21:57:35
    赞同 展开评论 打赏
  • 一个程序员,欢迎骚扰!!!
    不需要特定配置的、楼主是在哪来获取session 后台还是页面(⊙_⊙)?

    -------------------------

    我主机配置了好几个java项目都没问题

    -------------------------

    回 4楼(春风十里) 的帖子
    受教了、区分大小写 日志肯定会记录错误的、还有楼主做的什么项目 没用框架

    -------------------------

    回 6楼(春风十里) 的帖子
    我也是做java开发的 有空多交流哈 下面就是我的站点
    2014-08-26 21:05:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载