在整合ssm框架的时候,我想用户进去的时候就创建一个session(“id”)的对象,用于用户登录的时候可以保存用户信息以及用户操作的时候,判断用户session(“id”)是否为空,(这样就能防止我service层判断session(“id”)的时候出现空指针异常),那我session是不是就得在监听器里面创建,那应该怎么创建呢?或者说要在别的配置文件中创建,比如spring.xml,springmvc.xml配置文件。还有就是我service层都能用通过注解得到session了,应该能直接创建一个session(“id”)了吧??求解
在controller就好
不是很懂你的描述到底是需要做什么业务。
据我所知,假如背景是前端登陆页面,那么点击登陆就进入后台controller,进行判断是否有此用户,也就是能否登陆成功。
登陆成功就赋值在session中存储该用户对象。
一般是在登陆的时候,登陆的控制层接收到用户登陆的请求(参数有HttpSession session),用户名密码验证通过的时候,在返回新的页面的时候,通过session.setAttribute()方法存入对象, 我之前写的案例如下
@PostMapping(value = "/login")
public Object login(User user, HttpSession session) {
ResultVo resultVo = new ResultVo();
/**
* 验证用户登陆是否正确
* 用户或密码错误抛出对应的自定义异常,通过异常类型回调对应错误信息给前端
*/
try {
user = userService.login(user);
resultVo.setMsg("登陆成功");
resultVo.setOk(true);
/**
* 封装用户数据信息
*/
session.setAttribute("user",user);
}catch (CustomException e){
/**
* 回调错误信息给前端
*/
resultVo.setMsg(e.getMessage());
resultVo.setOk(false);
}
return resultVo;
}