쌍용교육센터에서 공부한 내용을 정리하며 기록하는 글이고 주관적인 생각이 들어갈 수 있습니다.
잘못된 내용이나 피드백 및 생각 공유는 언제든 환영입니다.
댓글로 남겨주시면 확인 후 수정하겠습니다.
내용에 대한 소스 코드는 https://github.com/2jaehoon/sangyongSpring에 올려두었습니다.
include
- 중복 디자인이나 코드를 줄일 목적으로 사용
- JSP를 include 할 수 있다.
- <%@include %> : 중복 코드를 처리할 때
- <jsp:include/> : 중복 디자인을 처리할 때 ( URI만 가능 )
- <c:import /> : 중복디자인을 처리할 때 ( URI, URL 모두 가능 )
* jsp include
- webapp 폴더 하위 jsp가 존재하는 경우
<!-- 처리된 데이터를 보여주지 않는 JSP -->
<jsp:include page="/경로/jsp명"/>
- WEB-INF/views 폴더 jsp가 존재하는 경우
<!-- 처리된 데이터를 보여주는 JSP -->
<jsp:include page="/WEB-INF/views/jsp명"/>
<!-- 직접 include 하는 것 보다는 do를 include하는 것이 좋다. -->
<!-- 외부에서 직접 요청을 할 수 없지만 include 가능 -->
* do include
- 액션 태그, JSTL 가능 - 코드의 병합은 안됨( <%@ include %> 같은 코드 안됨 )
<!-- jjsp 사용 -->
<jsp:include file="요청.do"/>
<!-- jstl 사용 -->
<c:import url="요청.do"/>
- include되는 jsp에서는 외부 JSP에 요청된 web parameter를 받을 수 있다.
관계 유지
-session, cookie
* session
- 접속자 브라우저에 id를 부여하고, 접속자의 정보를 서버 측 메모리에 저장하는 기술
- HttpServletRequest, HttpSession, @SessionAttributes를 사용할 수 있다.
* HttpServletRequest 사용
// 1. 요청 처리 method의 매개변수를 HttpServletRequest로 선언한다.
public String method(HttpServletRequet request){
// 2. 세션 얻기
HttpSession session=request.getSession();
}
* HttpSession 사용
// 1.요청처리 method의 매개변수를 HttpSession으로 선언한다.
public String method(HttpSession session){
// 세션 값 설정
session.setAttribute("이름",값);
// 세션 값 얻기
session.getAttribute("이름");
// 세션 생존 시간 설정 : DD 설정
session.setMaxInactiveInterval( 초 );
// 세션 값 삭제
session.removeAttribute("이름");
// 세션무효화
session.invalidate();
}
* @SessionAttributes
- class 위에 선언한다.
- Model에 같은 이름으로 값을 설정하면 세션에 값이 할당 된다.
- 값 설정
// 1. SessionAttributes 선언
@SessionAttributes({"이름", ...})
@Controller
public class Test{
// 2. method에서 Model을 매개변수로 선언
public String method( Model model ){
// 3. SessionAttributes에 존재하는 이름과 동일한 이름으로 값을 설정
model.addAttribute("이름",값); //request scope과 session scope에 값이 들어간다.
}
}
- 값 얻기 : Spring 5.2부터는 Model.getAttribute method가 추가되었다.
Controller 얻기( HttpSession 사용 )
public String method( HttpSession session ){
session.getAttribute("이름");
}
JSP얻기
<!-- 스크립트릿 사용 -->
<%= session.getAttribute("이름") %>
<!-- EL 사용 -->
${ sessionScope.이름 }
- 세션 삭제
org.springframework.web.bind.support.SessionStatus interface사용
HttpSession으로는 세션 삭제가 되지 않는다.
// 1. SessionStatus를 매개변수로 선언
public String method( SessionStatus ss ){
// 2. 세션 모든 값 삭제
ss.setComplete();
}
Cookie
- 값을 설정하는 코드는 이전의 코드를 그대로 사용
- @CookieValue를 사용하여 값을 손쉽게 얻을 수 있다.
- 쿠키 값 설정
1. 쿠키를 심기위해 HttpServletResponse를 입력받는다.
public String method( HttpServletResponse response){
2. 쿠키 생성.
Cookie cookie=new Cookie(“이름”, “값”);
3. 생존시간 설정. –설정하지 않으면 브라우저가 열려있는 동안만 유지
cookie.setMaxAge(생존시간);
4. 쿠키심기
response.addCookie( cookie );
- 쿠키 값 얻기( 매개변수로 쿠키에 설정된 값을 얻는다. )
@CookieValue(value="쿠키이름",defaultValue="쿠키가 없을 때 설정될 값")
public String method(@CookieValue( value="쿠키이름",defaultValue="쿠키가 없을 때 설정될 값" )데이터형 변수명, ... ){
return "링크페이지";
}
FileUpload
- Parameter 전송방식이 아닌 파일 전송방식으로 요청을 처리
- 요청 처리 method에 매개변수로 VO를 넣는다고 입력값이 들오지 않는다.
// 1. 매개변수에 HttpServletRequest를 선언
public String method( HttpServletRequest request ){
// 2. pom.xml에 <dependencies>노드 하위에 cos.jar에 관한 아래 노드를 정의하고
// 파일 업로드 컴포넌트에 요청 처리 객체를 넘겨준다.
// MultipartRequest ( cos.jar에 있는 메서드 )
MultipartRequest mr=new MultipartRequest( request ,... );
// 3. 파일업로드 컴포넌트를 통해 파라메터를 받는다.
mr.getFileSystemName("이름")
mr.getParameter("이름")
mr.getParameterValues("이름");
'성장 일기 > 쌍용교육센터' 카테고리의 다른 글
0512/Spring, 강결합, 약결합 (1) | 2023.05.15 |
---|---|
0511/AJAX (0) | 2023.05.15 |
0509/Controller에서 View로 데이터 전송 (0) | 2023.05.09 |
0508/Spring MVC (0) | 2023.05.08 |
0504/Spring 흐름 (0) | 2023.05.04 |