spring mvc session管理的有关问题
spring mvc session管理的问题
我在service层声明的事务边界,controller层调用service,感觉每次service函数结束,spring都自动关闭了session,如何实现每次请求共用一个session呢?应该在dao层声明事务边界吗?
[code=java@Service("homeService")
@Transactional
public class HomeService implements IHomeService {
//内部保存dao对象
@Inject
private BoardDao boardDao;
@Inject
private UserDao userDao;
@Inject
private PostDao postDao;
@Override
public void publishPost() {
// TODO Auto-generated method stub
//测试][/code]
[code=java//声明为controller,让spring自动注册并且装配属性
@Controller
public class HomeController {
@Inject
private IHomeService homeService;
@RequestMapping("/jsp/home")
public String showHomePage(Map<String , Object> model,
HttpSession session,
HttpServletResponse response)
{
User user=new User();
if(session.getAttribute("currentUser")!=null){
user=homeService.getUserByUsername((String)session.getAttribute("currentUser"));
}
//返回当前版块board对象,默认版块
Board board=null;
if(session.getAttribute("currentBoard")!=null){
System.out.println("currentBoard:"+(String)session.getAttribute("currentBoard"));
board=homeService.getBoardByName((String)session.getAttribute("currentBoard"));
}else {
board=homeService.getBoardByName("java");
}
//返回版块列表
List<Board> boards=homeService.getAllBoards();
//返回当前版块版主列表
Set<Moderator> moderators=board.getModerators();
//返回默认版块java关联的所有帖子
Set<Post> posts=board.getPosts();
model.put("moderator_Set", moderators);
model.put("current_board", board);
model.put("board_list", boards);
model.put("return_user", user);
model.put("post_Set", posts);
return "home";
}
}
][/code]
------解决思路----------------------
很快就 过来了,好好 干
我在service层声明的事务边界,controller层调用service,感觉每次service函数结束,spring都自动关闭了session,如何实现每次请求共用一个session呢?应该在dao层声明事务边界吗?
[code=java@Service("homeService")
@Transactional
public class HomeService implements IHomeService {
//内部保存dao对象
@Inject
private BoardDao boardDao;
@Inject
private UserDao userDao;
@Inject
private PostDao postDao;
@Override
public void publishPost() {
// TODO Auto-generated method stub
//测试][/code]
[code=java//声明为controller,让spring自动注册并且装配属性
@Controller
public class HomeController {
@Inject
private IHomeService homeService;
@RequestMapping("/jsp/home")
public String showHomePage(Map<String , Object> model,
HttpSession session,
HttpServletResponse response)
{
User user=new User();
if(session.getAttribute("currentUser")!=null){
user=homeService.getUserByUsername((String)session.getAttribute("currentUser"));
}
//返回当前版块board对象,默认版块
Board board=null;
if(session.getAttribute("currentBoard")!=null){
System.out.println("currentBoard:"+(String)session.getAttribute("currentBoard"));
board=homeService.getBoardByName((String)session.getAttribute("currentBoard"));
}else {
board=homeService.getBoardByName("java");
}
//返回版块列表
List<Board> boards=homeService.getAllBoards();
//返回当前版块版主列表
Set<Moderator> moderators=board.getModerators();
//返回默认版块java关联的所有帖子
Set<Post> posts=board.getPosts();
model.put("moderator_Set", moderators);
model.put("current_board", board);
model.put("board_list", boards);
model.put("return_user", user);
model.put("post_Set", posts);
return "home";
}
}
][/code]
------解决思路----------------------
很快就 过来了,好好 干