2017년 10월 12일 목요일

redis 세션관리 api 사용하기


<org.springframework-version>4.1.1.RELEASE</org.springframework-version>

<dependencies>
 <dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-redis</artifactId>
  <version>1.7.1.RELEASE</version>
 </dependency>

 <dependency>
  <groupId>redis.clients</groupId>
  <artifactId>jedis</artifactId>
  <version>2.7.2</version>
 </dependency>

</dependencies>

파일명 : redis-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

<bean id="connectionFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
<property name="hostName" value="211.110.165.201" />
<property name="port" value="6379" />
<property name="password" value="ds603" />
<property name="usePool" value="true" />
</bean>

<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>

</beans>



파일명 : web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/root-context.xml
/WEB-INF/mybatis/mybatis-context.xml
/WEB-INF/redis/redis-context.xml
</param-value>
</context-param>
<!-- Creates the Spring Container shared by all Servlets and Filters -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- Processes application requests -->
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>


<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
 <param-name>encoding</param-name>
 <param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


</web-app>



파일명 : MemberController.java
package com.ds.web;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class MemberController {

@Autowired
private RedisTemplate<String, String> strTemplate;

@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(Model model) {
return "login";
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String selectItem(Model model,
@RequestParam("id") String id,
@RequestParam("pw") String pw) {
int ret = 1; //xml을 호출하여 로그인함.
if(ret == 1) { //로그인 성공으로 가정함.
//세션에 값을 넣음 - 프로젝트 A
strTemplate.opsForValue().set("_ID", id);
//세션에서 값을 가져옴 - 프로젝트 B
String getID = strTemplate.opsForValue().get("_ID");
System.out.println(getID);

}
else { //로그인 실패
}
return "redirect:main";
}
}


파일명 : login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
   pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
<title>로그인</title>
</head>

<body>

<form action="login" method="post">
<input type="text" name="id" /><br />
<input type="password" name="pw" /><br />

<hr />
<input type="submit" value="로그인" />
</form>

</body>
</html>





댓글 없음:

댓글 쓰기