동적 클래스 생성(인자포함) 및 메서드 호출

A 라는 컨트롤러 클래스가 아래와 같다.웹에서 POST로 /a.do 로 접속 했을 때, selectA 의 결과값을 JSON으로 응답해 주는 역할을 한다. @Controller public class A { //지역변수 @Autowired SqlSession sqlSession; @Autowired Gson gson; //생성자 A(){} A(SqlSession session, Gson gson){ if(this.sqlSession==null) this.sqlSession = session; if(this.gson==null) this.gson = son } //메써드 @RequestMapping(value="/selectA.do", method=RequestMethod.POST) @ResponseBody public ResponseEntity<String> selectA(HttpSession ses, … 계속 읽기 동적 클래스 생성(인자포함) 및 메서드 호출

프로그램에 의한 트랜잭션 txManager, transaction

servlet-context.xml <beans:beans ... xmlns:tx="http://www.springframework.org/schema/tx" ... > ... <tx:jta-transaction-manager/> ... </beans:beans> Test.java public class Test { ... @Autowired private DataSourceTransactionManager txManager; ... public ResponseEntity<String> txTest(HttpServletRequest req){ ... DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = txManager.getTransaction(def); try{ ... txTestMapper.deleteTxTest(param); txTestMapper.updateTxTest(param); txTestMapper.insertTxTest(param); txManager.commit(status); ... }catch(Exception e){ e.printStackTrace(); txManager.rollback(status); ... } ... }

jstl 함수

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> ${fn:substring(name, 1, 10)} fn:contains(string, substring) string이 substring을 포함하면 true 리턴. fn:containsIgnoreCase(string,substring) 대소문자에 관계없이, string이 substring을 포함하면 true 리턴. fn:endsWith(string, suffix) string이 suffix로 끝나면 true 리턴. fn:escapeXml(string) string에 XML과 HTML에서 특별한 의미를 가진 문자들이 있으면, XML 엔티티 코드로 바꿔준 뒤 문자열 리턴. fn:indexOf(string,substring) string에서 substring이 처음으로 나타나는 인덱스 리턴. fn:join(array, separator) … 계속 읽기 jstl 함수

java watch service

import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardWatchEventKinds; import java.nio.file.WatchEvent; import java.nio.file.WatchEvent.Kind; import java.nio.file.WatchKey; import java.nio.file.WatchService; public class Watch { /* * 디렉토리 감시 */ final static Kind<Path> ENTRY_CREATE = StandardWatchEventKinds.ENTRY_CREATE; final static Kind<Path> ENTRY_DELETE = StandardWatchEventKinds.ENTRY_DELETE; final static Kind<Path> ENTRY_MODIFY = StandardWatchEventKinds.ENTRY_MODIFY; final static Kind<Object> OVERFLOW = StandardWatchEventKinds.OVERFLOW; public static void watchService(){ … 계속 읽기 java watch service

JAVA cookie

//쿠키정보 처리 public void setCookies(HttpServletRequest req, HttpServletResponse res){ if(req.getParameter("saveUserid")!=null && req.getParameter("saveUserid").equals("YES")){ Cookie myCookie = new Cookie("saveUserid", req.getParameter("userid")); myCookie.setMaxAge(60*60*24*30); //30일 res.addCookie(myCookie); }else{ Cookie myCookie = new Cookie("saveUserid", ""); myCookie.setMaxAge(0); //쿠키 삭제 res.addCookie(myCookie); } } //쿠키 가져오기 public String getCookies(HttpServletRequest req){ HashMap<String, String> myCookie = new HashMap<String, String>(); Cookie cookies[] = req.getCookies(); for(int i=0, il=cookies.length; i<il; i++){ … 계속 읽기 JAVA cookie

AES 256 암복호화

pom.xml <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --> <dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version> </dependency> AES256.java import java.io.UnsupportedEncodingException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.Key; import java.security.NoSuchAlgorithmException; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.EncoderException; import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.net.URLCodec; /* Copyright 회사명 Licensed under the Apache License, Version 2.0 (the "License"); you may not … 계속 읽기 AES 256 암복호화

월의 마지막 일 구하기

/** * @Description 월의 마지막 일 구하기 * @Param String feemon //정산월:201911 * @return String 마지막일자: 31 */ public static String getLastDate(String feemon){ String result=""; try{ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); //dd 추가도 가능 Date d = sdf.parse(feemon); Calendar cal = Calendar.getInstance(); cal.setTime(d); int endDate = cal.getActualMaximum(Calendar.DAY_OF_MONTH); result = String.valueOf(endDate); }catch(ParseException e){ e.printStackTrace(); } return … 계속 읽기 월의 마지막 일 구하기

언어별 캐쉬 방지

참조 : http://ellieya.tistory.com/68 HTML  <META http-equiv="Expires" content="-1"> <META http-equiv="Pragma" content="no-cache"> <META http-equiv="Cache-Control" content="No-Cache"> ASP    <% Response.Expires = 0 Response.AddHeader "Pragma","no-cache" Response.AddHeader "Cache-Control","no-cache,must-revalidate" %> JSP    <% response.setHeader("Cache-Control","no-store"); response.setHeader("Pragma","no-cache"); response.setDateHeader("Expires",0); if (request.getProtocol().equals("HTTP/1.1")) response.setHeader("Cache-Control", "no-cache"); %> response.setHeader("cache-control","no-store"); // http 1.1 response.setHeader("Pragma","no-cache"); // http 1.0 response.setDateHeader("Expires",0); // proxy server 에 cache방지. PHP <? header("Pragma: no-cache"); header("Cache-Control: no-cache,must-revalidate"); ?> … 계속 읽기 언어별 캐쉬 방지