servlet和jsp用session.setAttribute()存储与显示的一个问题

StringuserName=request.getParameter("userName");Stringpassword=request.getParameter("... String userName = request.getParameter("userName"); String password = request.getParameter("password"); if(userName == "" || userName.trim().length() == 0){ response.sendRedirect("admin.jsp"); } utils un = new utils(); String mm = userName; // session.setAttribute("userName ", userName ); session.setAttribute("mm", mm); 。。。。。 以下代码略只看上面。 先看我注释掉的session 我在session范围内存了一个userName 的值,但是我在页面里用EL或着 <%=request.getSession().getAttribute("userName") %>这样得到的是null值,这是为什么?然后我定义一个变量mm让String userName = request.getParameter("userName");取过来的值赋给mm然后同样用刚才的显示方法在页面显示就有值了,我想知道为什么直接把取过来的值存进session里然后在页面里取不出来呢 展开
 我来答
锦瑟琴瑟2786
2015-03-08 · TA获得超过142个赞
知道答主
回答量:120
采纳率:0%
帮助的人:54.8万
展开全部
1.首先,你在jsp页面可以直接用session.getXXX,不用request.getSession()这么麻烦 2.你以上两种写法没差别,效果一样,所以你就要注意一下,你在对session做set跟get的时候,用的key字符串是否一样 3.断点调试一下,看String userName = request.getParameter("userName");取出来的userName是什么值 追问: String userName = request.getParameter("userName");取出来的是我输入的值 回答: 你省略号里的页面跳转也是用response.sendRedirect方法放入吗?可能是重定向后session不一样了吧 追问: try{ if(un.getAdmin(userName, password)){ RequestDispatcher dispatcher = request.getRequestDispatcher("/direct.jsp"); dispatcher .forward(request, response); }else{ response.sendRedirect("admin.jsp"); } 这是省略号里的内容 回答: 不是这个问题,你mm都能取到的 session.setAttribute("userName ", userName );你userName后面多了空格,get的时候没空格
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式