현재 스프링 3 MVC를 웹 응용 프로그램에 사용하고 있으며 스프링 3 편안한 (@ResponseBody) 기능을 사용하여 모든 컨트롤러를 편안한 웹 서비스로 마이그레이션하는 데 intereseted입니다. JSON 요청 및 응답을 사용하고 있습니다. 하지만 JSON 응답을 사용할 때 여러 웹 요청에서 동일한 데이터를 사용할 수 있도록 세션 관리를 수행하는 방법을 잘 모릅니다. 장단점이있는 모든 항목을 제안하십시오스프링 컨트롤러를 안정된 웹 서비스 컨트롤러로 옮기기
-1
A
답변
1
컨트롤러 내부에서 세션이 필요한 경우 요청을 메소드 매개 변수로 추가하기 만하면 Spring이 작업을 수행합니다. 그런 다음 요청시 getSession()
으로 전화하면 여기에 있습니다.
public void myMethodInController(HttpServletRequest request) {
HttpSession session = request.getSession();
}
이것은 응답자와 아무런 관련이 없습니다. 순수한 스프링 MVC입니다.
편집 :
public ResourceOne myMethodInControllerOne(HttpServletRequest request, DataOne data) {
// call some injected service to create a ResourceOne
ResourceOne response = service.doSomething(data);
if (null != response) {
HttpSession session = request.getSession();
session.setAttribute("dataOne", data);
}
return response;
}
public ResourceTwo myMethodInControllerTwo(HttpServletRequest request, DataTwo data) {
HttpSession session = request.getSession();
DataOne priorData = (DataOne) session.getAttribute("dataOne");
// call some injected service to create a ResourceTwo
ResourceTwo response = service.doSomething(data, priorData);
return response;
}
을하지만이 정말 편안되지 않습니다 : 당신이 세션을 통해 서 컨트롤러 사이의 양식 데이터를 공유하려는 경우, 당신은 예를 들면 할 수 있습니다. Rest는 상태 비 저장 API를 의미합니다. 두 번째 방법으로 API를 변경하고 DataOne과 DataTwo를 보내는 것이 더 좋지 않습니까?
관련 문제
- 1. 스프링 보안 3 웹 + 안정된 로그인
- 2. 안정된 웹 서비스에 대한 보안을 기존 스프링 보안 3.1에 제공하기
- 3. Java의 안정된 AND SOAP 웹 서비스
- 4. 최대 절전 모드가있는 안정된 웹 서비스
- 5. 안정된 웹 서비스 - 외래 키 유지
- 6. 스프링 웹 - 안정된 웹 서비스 - 클라이언트/서버 측에서 ArrayList를 인수/매개 변수로 전달/수신
- 7. 컨트롤러를 컨트롤러로 변환해야합니까?
- 8. 스프링 웹 서비스 문제
- 9. 스프링 및 웹 서비스
- 10. 스프링 웹 서비스 호출
- 11. 스프링 웹 서비스 반환
- 12. 안정된 서비스 URL 매개 변수 - 서비스 스택
- 13. JSP에서 스프링 컨트롤러로 객체 전달하기
- 14. 하나의보기 컨트롤러에서 다른보기 컨트롤러로 레이블 내용을 옮기기
- 15. NSUserdefaults 정보를 하나의 viewcontroller에서 다른보기 컨트롤러로 옮기기
- 16. 스트럿츠 액션을 스프링 액션으로 옮기기
- 17. AngularJS에서 컨트롤러를 통해 웹 서비스 데이터 공유
- 18. 하나의 컨트롤러를 다른 컨트롤러로 리디렉션
- 19. 스프링 보안 웹 서비스 인증
- 20. 액츄에이터가있는 스프링 부트 웹 서비스
- 21. CXF 웹 서비스 및 스프링
- 22. 스프링 웹 서비스 및 Json
- 23. 웹 서비스 대 스프링 리모팅
- 24. 스프링 통합 웹 서비스 지원
- 25. 스프링 웹 서비스 예외 예외
- 26. 스프링 자바 웹 서비스, 비동기
- 27. 스프링 통합 호출 웹 서비스
- 28. GET 요청시 데이터베이스에서 값을 반환하는 groovy에서 안정된 웹 서비스 만들기
- 29. 빈 변경 사항이 CXF에 반영되지 않음 안정된 웹 서비스
- 30. 기존 젠드 액션 컨트롤러를 모듈로 옮기기
마치 다양한 컨트롤러를 사용하여 다양한 작업을 수행 할 수 있으며 모든 컨트롤러를 안정적인 웹 서비스로 변환해야합니다. 이전에는 모든 데이터를 세션에 저장했지만 이제는 각 컨트롤러가 웹 서비스처럼 작동하고 JSON으로 응답을 보냅니다. 내 생각에, httpsession은 유용하지 않을 것이다. 프런트 엔드에서는 node.js를 사용하고 있습니다. – sahas
컨트롤러가 여러 개인 경우 JSON 응답을 보내는 웹 서비스처럼 작동합니다. 몇 가지 데이터로 처음으로 내 웹 서비스 컨트롤러를 호출 할 때. 다른 컨트롤러를 호출 할 때 어떻게 동일한 데이터를 사용할 수 있습니까? – sahas
위의 대답에서 설명한대로'HttpSession'을 사용하십시오. REST/JSON 웹 서비스는 특별한 경우가 아닙니다. – Steve