본문 바로가기

기존카테고리/Spring_문법

servletSession과 springSession

servletSession과 springSession


send.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

<a href="session">세션테스트1</a>

<a href="springSession">세션테스트2</a>


</body>

</html>



sessionView.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

아이디: ${id} <br>

이름: ${name} <br>

className: ${ClassName} <br><br><br><br>

유저아이디: ${userId}<br>

유저이름: ${userName}<br>

클래스명: ${SpringCalssName}<br><br>

이동1: <a href="a1">이동1</a>


</body>

</html>


a1.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>Insert title here</title>

</head>

<body>

아이디: ${id} <br>

이름: ${name} <br>

className: ${ClassName} <br><br><br><br>

유저아이디: ${userId}<br>

유저이름: ${userName}<br>

클래스명: ${SpringCalssName}<br><br>

이동2: <a href="a2">이동2</a>

</body>

</html>



servletSession


package com.spring.sessionTest;


import javax.servlet.http.HttpSession;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;


@Controller

public class ServletSettion {

@RequestMapping("/send")

public String send(){

return "send";

}

@RequestMapping("/a1")

public String a1(){

return "a1";

}

@RequestMapping("/a2")

public String a2(){

return "a2";

}

@RequestMapping("/session")

public String session(Model model, HttpSession session){

session.setAttribute("id", "admin");

session.setAttribute("name", "홍길동");

model.addAttribute("ClassName", this.getClass());

return "sessionView";

}


}




springSession


package com.spring.sessionTest;


import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.SessionAttributes;


@Controller

@SessionAttributes({"userId","userName"})

public class SpringSession {

@RequestMapping("/springSession")

public String send(Model model){

model.addAttribute("userId", "userAdmin");

model.addAttribute("userName", "손예진");

model.addAttribute("SpringCalssName", this.getClass());

return "sessionView";

}


}



서블릿 세션은 아래 예제처럼 HttpSession 객체를 기입하고 session.setAttribute 로 세션을 작성한다.

@RequestMapping("/session")

public String session(Model model, HttpSession session){


session.setAttribute("id", "admin");

session.setAttribute("name", "홍길동");

model.addAttribute("ClassName", this.getClass());


결과: 확인을 해보면 ServletSession 이라고 보인다.

아이디: admin
이름: 홍길동
className: class com.spring.sessionTest.ServletSettion 



스프링세션은 아래예제처럼 @SessionAttrinutes 어노테이션으로 작성한다.

또한 model 객체를 그래도 받아서 작성하면 세션이 생성된다. 

세션 여러개를 만들고 싶다면 @SessionAttributes ()속에 { } 안에 순차적으로 넣어주면 된다.


@Controller

@SessionAttributes({"userId","userName"})

public class SpringSession {

@RequestMapping("/springSession")

public String send(Model model){

model.addAttribute("userId", "userAdmin");

model.addAttribute("userName", "손예진");

model.addAttribute("SpringCalssName", this.getClass());

return "sessionView";

}


}



결과: 아래처럼 SpringSession 이라고 뜬다.


유저아이디: userAdmin
유저이름: 손예진
클래스명: class com.spring.sessionTest.SpringSession