조건문

 if 

 구문은 조건하에 명령문을 수행하는 것이다.

 switch 

 구문은 선택된 명령문을 수행하는 것이다.


if문

if <-첫번째 조건이다.

else if <-바로 위에 조건에 부합하지않는다면 체크한다.

else <-위에 모든 조건에 부합하지않는다면 실행한다.

ex)
if(조건) {

실행할 로직

}else if(조건) {위에 조건에 부합하지 않는다면 체크한다.

실행할 로직

}else{위에 모든 조건에 부합하지 않으면(나머지 경우) 실행한다.

실행할 로직

}

switch문

case에는 변수를 넣을 수 없고 값만 들어간다.

switch(변수){

case "비교변수":

break;

default://나머지

}


if문 문 사용 코드.


switch 문 사용 코드.


숫자비교 방법

x == y <- x는 y와 같다.

x != y <- x는 y와 다르다.

x > y <- x는 y보다 크다.

x < y <- x는 y보다 작다.

x >= y <- x는 y보다 크거나 같다.

x <= <- x는 y보다 작거나 같다.


문자열비교 방법

equals

"text" == "text"

->결과 true로 나오긴 하지만

text글자를 비교한것이 아니라

메모리 위치를 비교한 것이다.

자세한 설명->

2018/01/25 - [개발 소발/개발 java] - java 문자열 개념, 문자열 비교


"text".equals("text")

->equals가 text란 글자로 비교하는 것 이다.

     즉, equals를 사용하는 게 맞다.


!"text".equals("text")

->"text".equals("text")의 반대

text와 다르다 의미이다.



변수란?

데이터 타입이다.
primitive type(원시 타입)이라고 불린다.
앞 글자를 소문자로 사용한다.

int <-상수, 소수점을 받아들이지 않는다.
ex) int myInt = 2;

short <- 용량을 작게 차지한다.
(큰 숫자는 안됨)
ex) short myShort = 1;

long <- 큰 숫자에 사용한다.(마지막에 L을 붙임)
ex) long myLong = 1L;

double <- 소수점에 사용한다.
ex) double myDouble = 1.2;

float <- 용량을 작게 차지한다.(특이점 :마지막에 f를 붙인다.)
float myFloat = 1.3f;

char <- 문자열에 사용한다.(특이점:한 글자만 사용 가능하고,''작은따옴표로 사용한다.)
ex) char myChar = 'c';

boolean <- 참, 거짓에 사용한다.(true, false)
ex) boolean myBoolean = false;

byte <- 용량 표현에 사용한다.
ex) byte myByte = 24;

문자열이란?

primitive type(원시 타입) 아니다.
String -> ""사용, 숫자도 문자로 인식한다.
ex) String text = "number : "+myInt;
특이점:뒤에 int형을 문자로 인식한다.

text = myInt; <-X
ex) primitive type 형태만 입력은 안된다.

String 뒤에 숫자 가와도 String으로 인식한다.
primitive type 뒤에 문자열은 안된다.
ex) text = text+": "+myInt;


람다식

자바8이상에서 사용가능하다.

기존 익명 클래스 대신사용하는 것.

 람다식은 여러줄의 코드를 메소드안에 넣을때 사용한다.

 첫번째 코드 
- 람다식없었을때(java6,7)때 사용방법이다. 

 두번째 코드
- 람다식 사용예이다.
 



톰캣(Tomcat)

-서블릿컨테이너라고도 함.

-오픈소스(무료)


톰캣을 왜 쓰는가?

-웹어플리케이션 서버 개발 및 운영에 사용된다.

-실제적으론 JSP/Servlet에 사용(JSP/Servlet엔진)한다.

-org 무료이다.(금전적인 부담없음)


톰캣 장점

-크로스플랫폼(Os를 가지리않고 사용가능 함)

윈도우,리눅스 등 여러환경에서 사용가능함.



톰캣 구성

- Coyote

HTTP 컴포넌트: 톰캣에 TCP를 통한 프로토콜 지원한다.


- Catalina

서블릿 컨테이너: 자바 서블릿을 호스팅 하는 환경이다.

-Jasper

톰캣의 JSP 엔진: 실제 JSP페이지의 요청을 처리하는 서블릿이다.


1.HTTP 요청을 Coyote에서 받게되면.

2.Catalna ServletContatiner에서 Doc Base를 찾고 WEB-INF/web.xml 파일 내용 참조한다.

3.*.jsp파일이 호출 될 때, Jasper JSP 엔진이 Validation Check /Compile한다.


서블릿 표준에 따라 웹어플리케이션 개발.

서블릿 표준

-webapp개발

WEB-INF(web.xml)형식임.


톰캣실행파일

-bin폴더(실행파일)

.bat 파일은 윈도우에서 사용한다.

.sh 파일은 맥,리눅스에서 사용한다. 


-webapp폴더

-하위ROOT폴더    / <-기본 주소제공

ex)http://localhost:18080/

-war파일을 넣어두면 압축해제한다.


-conf폴더(설정파일)

-server.xml(모든설정관리)

포트(ex:8080),프로토콜(ex:http)등을 설정한다.


-work(폴더)

서블릿으로변환(자바로 변환 후 다시 클래스생성)하는곳이다.

지우고 톰캣다시 실행시 다시 생성되어 있는것을 확인 가능하다.


-logs(폴더)

catailna.out(로그확인인 리눅스:tail -f catalina.out)

디버깅할때 사용한다.



tomcat 특정war root로 설정하기

server.xml

<Host> 밑에 다 적용한다.

<Context path="" docBase="경로" reloadable="false" > </Context>

</Host>


* 주의점 : webapp안에 ROOT폴더는 제거해줘야한다.(중복)







'개발 소발 > 개발 java(기초)' 카테고리의 다른 글

JAVA 기초 문자열 개념, 문자열 비교  (0) 2018.01.25
JAVA 기초 조건문(if,switch문)  (0) 2018.01.25
JAVA 기초 변수와 문자열  (0) 2018.01.25
java 람다식 사용예  (0) 2018.01.24
java json->vo 매핑  (0) 2017.12.27

json -> vo 매핑{json(array포함)} Gson사용


gson을 사용해서 vo와 매핑 되는걸 알고 있었는데...

json 안에 array가 있을때 매핑 방법을 찾게되었다.

찾아본 결과 json 데이터에 array가 있을땐

mainVO안에 List<subVO>를 만들어 사용하면 된다.

ex)


json파일 형식


MainVO 


subVO

MainVO와같은 형식으로 생성한다.


당연히 될줄알았던게 안되서 깜짝놀랐다. 확인해본결과

gson을 사용해서 list로 변환 하게되면 특수문자/가 치환되지않는 간단한 문제였다.

ex)

gson 사용시


출력 결과:

[{"test":"21100248891","link":[{"subtest":"https:\/\/codebeautify.org\/jsonviewer","@_subData":"20171212"},{"subtest":"https:\/\/codebeautify.org\/jsonviewer","@_subData":"20171213"}],"@_data":"21680485"},{"test":"21100248891","link":[{"subtest":"https:\/\/codebeautify.org\/jsonviewer","@_subData":"20171212"},{"subtest":"https:\/\/codebeautify.org\/jsonviewer","@_subData":"20171213"}],"@_data":"21680485"}]


치환이 안되어 있는 것을 확인 할 수 있다.

StringEscapeUtils.escapeHtml3(치환할문자열); <-형식으로 변경가능하다.

        



jsonsimple 사용시

출력결과:

[{test=21100248891, @_data=21680485, link=[{subtest=https://codebeautify.org/jsonviewer, @_subData=20171212}, {subtest=https://codebeautify.org/jsonviewer, @_subData=20171213}]}, {test=21100248891, @_data=21680485, link=[{subtest=https://codebeautify.org/jsonviewer, @_subData=20171212}, {subtest=https://codebeautify.org/jsonviewer, @_subData=20171213}]}]




jsonsimple이 자동으로  /를 치환해줌을 볼 수 있다.


VO매핑방법은 다시 gson을 이용하여 매핑해주면된다.

위방법으로 매핑하면 깔끔하게 매핑되는걸 확인할 수 있다.


추가)

배열 ArrayList로 변환하기


+ Recent posts