#java #오늘 #일자 #string #format #YYYYMMDD

오늘 날짜를 문자 YYYYMMDD  포맷으로 나오게 하는 방법

import java.util.Calendar;

import java.text.SimpleDateFormat;



public class testToday{

    public static void main(String args[]){

        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");

        Calendar c1 = Calendar.getInstance();

	 String strToday = sdf.format(c1.getTime());



        System.out.println("Today=" + strToday);

    }

}
Posted by 홍반장水 홍반장水

댓글을 달아 주세요

#iBATIS 와 #MyBatis 의 차이

iBATIS

MyBatis

태그

설명

태그

설명

 <isEqual>

 property 값이 같을때만 쿼리 실행 

 <if>와

<choose>, <when>, <otherwise>

 일반 개발언어의 

if or if ~ else와 동일

 <isNotEqual>

 property 값이 같지 않을 때만 쿼리 실행 

 <isGreaterThan>

 property 값이 비교값보다 클 경우 쿼리 실행 

<isGreaterEqual> 

 property 값이 비교값보다 같거나 클 경우 쿼리 실행

 <isLessEqual>

 property 값이 비교값보다 작거나 같을경우 쿼리 실행

 <isPropertyAvailable>

 property 값이 유효할 경우 쿼리 실행

 <isNotPropertyAvailable>

 property 값이 유효하지 않을 경우 쿼리 실행

 <isNull>

 property 값이 null일 경우 쿼리 실행 

<isNotNull> 

 property 값이 null이 아닐 경우 쿼리 실행 

<isEmpty> 

 property 값이 비어있을경우 쿼리 실행

<isNotEmpty> 

 property 값이 비어있지 않을경우 쿼리 실행 

 <isParameterPresent>

 parameter가 있을경우 쿼리 실행

<isNotParameterPresent> 

 parameter가 없을경우 쿼리 실행

<iterate> 

 배열 타입의 파라미터를 받을 때 활용

 <foreach>

 배열 타입의 파라미터를 받을 때 활용 

<dynamic> 

 하위 태그에 일치하는 내용이 존재할 경우   where절을 붙인다.

<where>, <trim> 

 iBATIS의 <dynamic>과 같이 조건에 따라 where절을 추가할 때 사용

 

 

 <set>

 동적으로 update 구문을 만들 때 사용

   

 <bind>

 변수를 생성하는 태그 

 


  

4       iBatis


  

  

MyBatis 


  

비고


  

  

com.ibatis.*


  

  

org.apache.ibatis.*


  

  

패키지 구조 변경


  

  

SqlMapConfig


  

  

Configration


  

  

용어변경


  

  

sqlMap


  

  

mapper


  

  

용어변경


  

  

sqlMapClient


  

  

sqlSession


  

  

구문대체


  

  

rowHandler


  

  

resultHandler


  

  

구문대체


  

  

resultHandler


  

  

SqlSessionFactory


  

  

구문대체


  

  

parameterMap, parameterClass


  

  

parameterType


  

  

속성 통합


  

  

resultClass


  

  

resultType


  

  

용어변경


  

  

#var#


  

  

#{var}


  

  

구문대체


  

  

$var$


  

  

${var}


  

  

구문대체


  

  

<isEqual> , <isNull>


  

  

<if>


  

  

구문대체


  

.

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

자바-JSP-Spring 강좌

https://www.youtube.com/playlist?list=PLieE0qnqO2kTyzAlsvxzoulHVISvO8zA9

 

자바-JSP-Spring 강좌 - YouTube

 

www.youtube.com

 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[JSTL] Tag가 jsp 화면에 그대로 노출될 경우, escapeXml  

JSTL로  처리를 할 때, 태그가 적용이 안되고 화면에 그대로 노출이 될 때가 있다.

기본적으로 escapeXml 이라는 값이 true로 처리가 되고, 이 속성은 <, > 와 같은 값들을 <, > 등으로 변경하여 화면에 뿌려주게 된다.

하지만, 태그를 원하는 대로 뿌려줘야 할 경우도 존재하니 이럴 경우 escapeXml="false" 처리를 해주면 된다.

<c:out value="${값}" />
<c:out value="${값}" escapeXml="false" />
 
Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[JSTL] 한자리 숫자 앞에 0붙이기, addZero

<c:forEach var="c" items="${contents.content}" varStatus="status">
    <fmt:formatNumber var="no" minIntegerDigits="2" value="${status.count}" type="number"/>
     ${no}
</c:forEach>
Posted by 홍반장水 홍반장水
TAG addzero, Java, jsp, JSTL

댓글을 달아 주세요

[JAVA] HttpURLConnection로 REST API 호출하기 

public void post(String strUrl, String jsonMessage){
		try {
			URL url = new URL(strUrl);
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			con.setConnectTimeout(5000); //서버에 연결되는 Timeout 시간 설정
			con.setReadTimeout(5000); // InputStream 읽어 오는 Timeout 시간 설정
			con.addRequestProperty("x-api-key", RestTestCommon.API_KEY); //key값 설정

			con.setRequestMethod("POST");

            //json으로 message를 전달하고자 할 때 
			con.setRequestProperty("Content-Type", "application/json");
			con.setDoInput(true);  // InputStream으로 응답 헤더와 메시지를 읽어들이겠다는 옵션
			con.setDoOutput(true); //POST 데이터를 OutputStream으로 넘겨 주겠다는 설정 
			con.setUseCaches(false);
			con.setDefaultUseCaches(false);

			OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
			wr.write(jsonMessage); //json 형식의 message 전달 
			wr.flush();

			StringBuilder sb = new StringBuilder();
			if (con.getResponseCode() == HttpURLConnection.HTTP_OK) {
				//Stream을 처리해줘야 하는 귀찮음이 있음.
				BufferedReader br = new BufferedReader(
						new InputStreamReader(con.getInputStream(), "utf-8"));
				String line;
				while ((line = br.readLine()) != null) {
					sb.append(line).append("\n");
				}
				br.close();
				System.out.println("" + sb.toString());
			} else {
				System.out.println(con.getResponseMessage());
			}
		} catch (Exception e){
			System.err.println(e.toString());
		}
}

 

// 요청할 파라미터의 정보를 입력한다.
String body = "id=asdf&pass=asdf";

// URL클래스의 생성자로 주소를 넘겨준다.
URL u = new URL( 주소 );

// 해당 주소의 페이지로 접속을 하고, 단일 HTTP 접속을 하기위해 캐스트한다.
HttpURLConnection  huc = (HttpURLConnection) u.openConnection();

// POST방식으로 요청한다.( 기본값은 GET )
huc.setRequestMethod("POST");

//InputStream으로 응답 헤더와 메시지를 읽어들이겠다는 옵션을 정의한다.
   huc.setDoInput(true);

// OutputStream으로 POST 데이터를 넘겨주겠다는 옵션을 정의한다.
   huc.setDoOutput(true);

// 요청 헤더를 정의한다.( 원래 Content-Length값을 넘겨주어야하는데 넘겨주지 않아도 되는것이 이상하다. )
   huc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

// 새로운 OutputStream에 요청할 OutputStream을 넣는다.
   OutputStream os = huc.getOutputStream();

// 그리고 write메소드로 메시지로 작성된 파라미터정보를 바이트단위로 "EUC-KR"로 인코딩해서 요청한다.

// 여기서 중요한 점은 "UTF-8"로 해도 되는데 한글일 경우는 "EUC-KR"로 인코딩해야만 한글이 제대로 전달된다.
   os.write( body.getBytes("euc-kr") );

// 그리고 스트림의 버퍼를 비워준다.
   os.flush();

// 스트림을 닫는다.
os.close();

// 응답받은 메시지의 길이만큼 버퍼를 생성하여 읽어들이고, "EUC-KR"로 디코딩해서 읽어들인다.
BufferedReader br = new BufferedReader( new OutputStreamReader( huc.getInputStream(), "EUC-KR" ), huc.getContentLength() );

String buf;

// 표준출력으로 한 라인씩 출력
while( ( buf = br.readLine() ) != null ) {
    System.out.println( buf );
}

// 스트림을 닫는다.
br.close();

 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[JSTL core] [c:forEach] varStatus를 활용한 변수

forEach문은 아래와 같이 활용한다.

<c:foreach items="${리스트가 받아올 배열이름}"
           var="for문 내부에서 사용할 변수"
           varStatus="상태용 변수">

	// 반복해서 표시할 내용 혹은 반복할 구문

</c:foreach>

이 때, 상태용 변수를 status라고 지정했다면 아래와 같이 활용할 수 있다.

 

${status.current} 현재 for문의 해당하는 번호

${status.index} 0부터의 순서

${status.count} 1부터의 순서

${status.first} 첫 번째인지 여부

${status.last} 마지막인지 여부

${status.begin} for문의 시작 번호

${status.end} for문의 끝 번호

${status.step} for문의 증가값

<c:foreach items="${list}" var="list" varStatus="status">
	<c:out value="${status.index}" /> / <c:out value="${status.end}" />
</c:foreach>
Posted by 홍반장水 홍반장水
TAG foreach, Java, JSTL

댓글을 달아 주세요

Mybatis 사용시 쿼리문에 문자열 비교연산자나 부등호를 처리할 때가있습니다.
그러면 < 와 같은 기호를 괄호인지 아니면 비교연산자 인지 확인이 되지않아요.
이외에도 특수문자 사용하는데 제한이있습니다.
이럴때 사용한것이 <![CDATA[  입니다.

<select id="findAll" resultMap="MemberResultMap">
 
    select *
 
    from employees
 
    where salary > 100
 
</select>

 

CDATA 안에 들어가는 문장을 문자열로 인식하게 합니다.

<select id="findAll" resultMap="MemberResultMap">
    <![CDATA[
    select *
 
    from employees
 
    where salary > 100
    ]]>
</select>

조건태그에서

<select id="findAll" resultMap="MemberResultMap">
    <![CDATA[
    select *
 
    from employees
 
    where  1=1
    ]]>
    <choose>
        <when test='user_type != null and user_type =="1"'>
            <![CDATA[
                salary > 100
            ]]>
        </when>
 
        <otherwise>
            <![CDATA[
                salary < 100
            ]]>
        </otherwise>
    </choose>
</select>
Posted by 홍반장水 홍반장水
TAG CDATA, mybatis, xml

댓글을 달아 주세요

Arachni를 이용한 웹 취약점 점검Arachni를 이용한 웹 취약점 점검 - OWASP 10

Web Application Security Scanner Framework http://www.arachni-scanner.com

https://github.com/Arachni/arachni

 

Arachni/arachni

Web Application Security Scanner Framework. Contribute to Arachni/arachni development by creating an account on GitHub.

github.com

 

KISA에서 배포하는 웹 취약점 점검(https://www.boho.or.kr/webprotect/webVulnerability.do)

Posted by 홍반장水 홍반장水

댓글을 달아 주세요

[JSP] JSTL을 이용하여 개행(줄바꿈)문자를 태그로 바꾸기 ( 줄바꿈,개행,공백, replace 처리 ) 

줄바꿈, 공백 처리


<!-- 상단에 선언 -->
<%
pageContext.setAttribute("CR", "\r");
pageContext.setAttribute("LF", "\n");
pageContext.setAttribute("CRLF", "\r\n");
pageContext.setAttribute("SP", "&nbsp;");
pageContext.setAttribute("BR", "<br/>");
%> 

<!-- jstl로 변환처리 -->
<c:set var="cmt" value="${fn:replace(coment.coment,CRLF, BR)}" />
<c:set var="cmt" value="${fn:replace(cmt,CR, BR)}" />
<c:set var="cmt" value="${fn:replace(cmt,CR, BR)}" />
<c:set var="cmt" value="${fn:replace(cmt,' ',SP)}" />
 

<!-- 화면에 출력하기 -->
<c:out value="${cmt}" escapeXml="false"/> 

 

Posted by 홍반장水 홍반장水

댓글을 달아 주세요