如何避免会话属性变为空?预先感谢!解决方案 如何避免会话属性变为空? 您可以使用HttpSessionAttributeListener监视session scope中的属性状态(添加/删除/替换).示例代码:public class MySessionAttributeListener implements HttpSessionAttributeListener { public MySessionAttributeListener() { } public void attributeAdded(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute added, session " + session + ": " + sessionBindingEvent.getName() + "=" + sessionBindingEvent.getValue()); } public void attributeRemoved(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute removed, session " + session + ": " + sessionBindingEvent.getName()); } public void attributeReplaced(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute replaced, session " + session + ": " + sessionBindingEvent.getName() + "=" + sessionBindingEvent.getValue()); }} web.xml :(在web.xml中添加以下行)<listener> <listener-class>com.x.y.z.MySessionAttributeListener</listener-class></listener>I am new to servlets and jsp. In my program the flow is as below:loginpage.html -> controller(servlet - here I created session like this)HttpSession session = request.getSession(true);session.setAttribute("uid", uname);System.out.println("session:"+session.getAttribute("uid"));// shows the value of uid->create_user.html-> conroller( now it shows uid value as null)->view_customers.jsp (need uid value here but its null).How to avoid session attribute from becoming null? Thanks in advance! 解决方案 How to avoid session attribute from becoming null? You can monitor the attribute state (added/removed/replaced) in session scope using HttpSessionAttributeListener.Sample code:public class MySessionAttributeListener implements HttpSessionAttributeListener { public MySessionAttributeListener() { } public void attributeAdded(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute added, session " + session + ": " + sessionBindingEvent.getName() + "=" + sessionBindingEvent.getValue()); } public void attributeRemoved(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute removed, session " + session + ": " + sessionBindingEvent.getName()); } public void attributeReplaced(HttpSessionBindingEvent sessionBindingEvent) { // Get the session HttpSession session = sessionBindingEvent.getSession(); // Log some information System.out.println("[SessionAttr] " + new java.util.Date() + " Attribute replaced, session " + session + ": " + sessionBindingEvent.getName() + "=" + sessionBindingEvent.getValue()); }}web.xml: (add below line in web.xml)<listener> <listener-class>com.x.y.z.MySessionAttributeListener</listener-class></listener> 这篇关于Servlets-Session属性变为NULL的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!
10-27 16:27