jdk 1.8 -> 17, @Component("...") 추가, 사용자 아이디 관련 변경
parent
0cac241cfa
commit
78840279da
@ -1,41 +0,0 @@
|
|||||||
package cokr.xit.foundation.test;
|
|
||||||
|
|
||||||
import cokr.xit.foundation.component.AbstractDao;
|
|
||||||
|
|
||||||
/**JUnit 테스트 프로그램에서 SQL문을 실행할 때 사용하는 DAO.<br />
|
|
||||||
* 주로 테스트 데이터를 지우는데 사용한다.<br />
|
|
||||||
* TestDao의 매퍼 파일은 test.xml이다.
|
|
||||||
* @author mjkhan
|
|
||||||
*/
|
|
||||||
//@Repository("testDao")
|
|
||||||
public class TestDao extends AbstractDao {
|
|
||||||
/**주어진 INSERT문을 실행한다.
|
|
||||||
* @param sql INSERT SQL
|
|
||||||
* @return 저장된 데이터 수
|
|
||||||
*/
|
|
||||||
public int execInsert(String sql) {
|
|
||||||
return insert("test.insert", params().set("sql", sql));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**주어진 UPDATE문을 실행한다.
|
|
||||||
* @param sql UPDATE SQL
|
|
||||||
* @return 저장된 데이터 수
|
|
||||||
*/
|
|
||||||
public int execUpdate(String sql) {
|
|
||||||
return insert("test.update", params().set("sql", sql));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**주어진 DELETE문을 실행한다.
|
|
||||||
* @param sql DELETE SQL
|
|
||||||
* @return 저장된 데이터 수
|
|
||||||
*/
|
|
||||||
public int execDelete(String sql) {
|
|
||||||
return insert("test.delete", params().set("sql", sql));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**실행된 SQL문을 커밋한다.
|
|
||||||
*/
|
|
||||||
public void commit() {
|
|
||||||
update("test.commit");
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,106 @@
|
|||||||
|
package cokr.xit.foundation.web;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.servlet.http.Cookie;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
/**쿠키 핸들링 유틸리티로 다음 기능을 지원한다.
|
||||||
|
* <ul><li>쿠키값 {@link #get(String) 읽기}</li>
|
||||||
|
* <li>쿠키값 {@link #set(String, String) 추가}</li>
|
||||||
|
* <li>쿠키값 {@link #remove(String...) 삭제}</li>
|
||||||
|
* </ul>
|
||||||
|
* @author mjkhan
|
||||||
|
*/
|
||||||
|
public class Kookie {
|
||||||
|
private HttpServletRequest hreq;
|
||||||
|
private HttpServletResponse hresp;
|
||||||
|
|
||||||
|
/**HttpServletRequest를 설정한다.
|
||||||
|
* @param hreq HttpServletRequest
|
||||||
|
* @return 현재 Kookie
|
||||||
|
*/
|
||||||
|
public Kookie set(HttpServletRequest hreq) {
|
||||||
|
this.hreq = hreq;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**HttpServletResponse를 설정한다.
|
||||||
|
* @param hresp HttpServletResponse
|
||||||
|
* @return 현재 Kookie
|
||||||
|
*/
|
||||||
|
public Kookie set(HttpServletResponse hresp) {
|
||||||
|
this.hresp = hresp;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**지정하는 이름의 쿠키값을 반환한다.
|
||||||
|
* <pre><code> String kookieValue = new Kookie()
|
||||||
|
* .set(hreq)
|
||||||
|
* .get("kookieName");</code></pre>
|
||||||
|
* @param name 쿠키 이름
|
||||||
|
* @return 쿠키값
|
||||||
|
*/
|
||||||
|
public String get(String name) {
|
||||||
|
Cookie[] cookies = hreq.getCookies();
|
||||||
|
if (cookies == null || cookies.length < 1) return "";
|
||||||
|
|
||||||
|
for (Cookie cookie: cookies) {
|
||||||
|
if (cookie.getName().equals(name))
|
||||||
|
return cookie.getValue();
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**지정하는 이름의 쿠키값을 추가한다.
|
||||||
|
* <pre><code> String kookieValue = new Kookie()
|
||||||
|
* .set(hresp)
|
||||||
|
* .set("kookieName", "kookieValue");</code></pre>
|
||||||
|
* @param name 쿠키 이름
|
||||||
|
* @param value 쿠키값
|
||||||
|
* @return 현재 Kookie
|
||||||
|
*/
|
||||||
|
public Kookie set(String name, String value) {
|
||||||
|
Cookie cookie = new Cookie(name, value);
|
||||||
|
cookie.setMaxAge(Integer.MAX_VALUE);
|
||||||
|
hresp.addCookie(cookie);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**지정하는 이름의 쿠키값을 삭제한다.<br />
|
||||||
|
* 이름을 지정하지 않으면 모든 쿠키값을 삭제한다.
|
||||||
|
* <pre><code> String kookieValue = new Kookie()
|
||||||
|
* .set(hreq)
|
||||||
|
* .set(hresp)
|
||||||
|
* .remove("kookieName0", "kookieName1");</code></pre>
|
||||||
|
* @param names 쿠키 이름
|
||||||
|
* @return 현재 Kookie
|
||||||
|
*/
|
||||||
|
public Kookie remove(String... names) {
|
||||||
|
Cookie[] cookies = hreq.getCookies();
|
||||||
|
if (cookies == null || cookies.length < 1) return this;
|
||||||
|
|
||||||
|
List<String> cookieNames = List.of(names);
|
||||||
|
|
||||||
|
for (Cookie cookie: cookies) {
|
||||||
|
if (!cookieNames.isEmpty()
|
||||||
|
&& !cookieNames.contains(cookie.getName())) continue;
|
||||||
|
|
||||||
|
cookie.setValue("");
|
||||||
|
cookie.setMaxAge(0);
|
||||||
|
hresp.addCookie(cookie);
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**현재 Kookie의 HttpServletRequest와 HttpServletResponse를 제거한다.<br />
|
||||||
|
* 현재 Kookie를 객체의 필드로 지정하여 재사용할 때 사용한다.
|
||||||
|
* @return 현재 Kookie
|
||||||
|
*/
|
||||||
|
public Kookie clear() {
|
||||||
|
hreq = null;
|
||||||
|
hresp = null;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue