session.setattribute报错
时间: 2023-04-23 07:03:33 浏览: 170
session.setAttribute报错可能是因为以下原因之一:
1. session对象未初始化:在使用session.setAttribute之前,必须先创建session对象。可以使用request.getSession()方法获取session对象。
2. 参数错误:session.setAttribute方法需要两个参数,第一个参数是属性名称,第二个参数是属性值。如果参数错误,会导致方法报错。
3. 属性名称或属性值类型错误:属性名称必须是字符串类型,属性值可以是任意类型。如果属性名称或属性值类型错误,会导致方法报错。
4. session已经失效:如果session已经失效,再调用session.setAttribute方法会报错。可以使用session.isNew()方法判断session是否失效。
需要根据具体的报错信息和代码进行排查和解决。
相关问题
pagecontext.setattribute报错
pageContext.setAttribute报错是指在JSP页面中使用pageContext.setAttribute方法时出现了错误。可能是因为参数传递错误、变量名重复、数据类型不匹配等原因导致的。需要仔细检查代码并进行调试。
if (cx.equals(“管理员”)) { table = “admins”; Admins user = adminsService.login(username, pwd); if (user == null) { return showError(“用户名或密码错误”); } session.setAttribute(“id”, user.getId()); session.setAttribute(“username”, user.getUsername()); session.setAttribute(“cx”, cx); session.setAttribute(“login”, cx); session.setAttribute(“username”, user.getUsername()); session.setAttribute(“pwd”, user.getPwd()); JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(user)); jsonObject.put(“cx”, session.getAttribute(“cx”)); jsonObject.put(“username”, session.getAttribute(“username”)); jsonObject.put(“login”, session.getAttribute(“login”)); assign(“session”, jsonObject); } 把这段代码转换成伪代码
如果cx等于“管理员”,则执行以下操作:
- 将table赋值为“admins”;
- 调用adminsService的login方法,将username和pwd作为参数传入,将结果赋值给user;
- 如果user为null,则返回showError("用户名或密码错误");
- 将user的id、username、pwd等属性值分别存入session中;
- 将user转换为JSON格式,并将session中的cx、username、login属性值也存入JSON对象中;
- 将JSON对象存入一个名为session的变量中。
伪代码如下:
```
if (cx.equals("管理员")) {
table = "admins";
user = adminsService.login(username, pwd);
if (user == null) {
return showError("用户名或密码错误");
}
session.id = user.id;
session.username = user.username;
session.cx = cx;
session.login = cx;
session.username = user.username;
jsonObject = json(user);
jsonObject.cx = session.cx;
jsonObject.username = session.username;
jsonObject.login = session.login;
session = jsonObject;
}
```
阅读全文