728x90

request.getContextPath() : 프로젝트 path 만 가져온다

return : "/board";

request.getRequestURI() : 프로젝트 파일 경로까지 가져온다.

String url = request.getRequestURI.split("/");
String fName = url[url.length -1]; 
// fName = list.jsp
// 전체 URL에서 port 번호 다음부터 마지막 문자열까지 반환 함)
// ex : http://localhost:8989/board/list.jsp

return : "/board/list.jsp";

request.getRequestURL() : 전체 경로를 가져온다.

//ex: http://localhost:8989/board/list.jsp

return : "http://localhost:8080/board/list.jsp";

requestServletPath() : 파일명만 가져옴

// ex: http://localhost /list.jsp:8989/board/list.jsp
return : "/list.jsp";

request.getRealPath() : 서버 또는 로컬의 웹 애플리케이션 서버의 docBase 설정값을 반환함 (절대 경로 가지오기)

// ex: http://localhost:8989/board/list.jsp 

return : "/project/demo/board"

뭐 오래된 글이긴 하지만 꽤 유용해 보인다 ^^ 

728x90

Mysql

XML

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />
  <property name="url" value="jdbc:mysql://localhost:3306/mydb?characterEncoding=EUCKR" />
  <property name="username" value="abcd" />
  <property name="password" value="pppw" />
 </bean>

Oracle

XML

<bean id="dataSource"  class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
  <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl />
  <property name="username" value="abcd" />
  <property name="password" value="pppw" />
 </bean>
728x90
cd /opt/homebrew/Cellar/tomcat@9/9.0.65

실행

cd /opt/homebrew/Cellar/tomcat@9/9.0.65/libexec/bin

./startup.sh

종료

./shutdown.sh
728x90

오래전에 어느 커뮤니티에서 가져온 글이다.

  1. NULL Parameter를 넘기지 말것
// 화면에서 size라는 parameter를 넘기는 case
// 혹시 null이 넘어오게 되면 기본형(int)이므로 default 0선언 (혹시 아니라면 알려주세요)
int num =0;

int size = param.getSize();
// (숫자 / 0)이므로 /0때문에 ArithmeticException 발생
totalPages = (int) (totalCnt / size);

2.NULL 여부 비교

String a = null; 
System.out.println(a.indexOf("갓"));
// 결과
// Exception in thread "main" java.lang.NullPointerException 
String a = null; 
if(a != null){ 
	System.out.println(a.indexOf("갓")); 
}

3.문자열 비교시 equlas 문자열을 앞에 위치하도록

public static void main(String[] args) { 
	String a = null; 
	
System.out.println("1번째============"); 

		if (a == "god") { 
			System.out.println("참"); 
		} else { 
			System.out.println("거짓"); //거짓 출력 
		} 
System.out.println("2번째============"); 
	if (a.equals("god")) {
	 // NPE 발생! 
		System.out.println("equals => 참"); 
	} else { 
		System.out.println("equals => 거짓"); 
	} 
} 
/******* 결과 *******/ 
// 1번째============Exception in thread "main" 거짓 
// 2번째============ java.lang.NullPointerException
  • NPE 피할수 있는 코드
public static void main(String[] args) { 
	String a = null; 
if ("god".equals(a)) {
	// NPE 발생하지 않음 
	System.out.println("equals => 참"); 
	} else { 
		System.out.println("equals => 거짓"); 
	} 
}
/******* 결과 *******/ 
// equals => 거짓
// "비교의 주체가 문자열"부터 주어진다면 "NullPointException"이 발생하지 않는다.
// 결국 순서만 바꿨음에도 적어도 "NullPointException"을 피할 수 있게 된다.

//정리해보면 문자열 비교는 "non-null String 기준으로 비교" 하는 것이 좋다.
//"비교의 주체가 문자열"이 오도록 하거나, "Constants" 상수로 처리하여 코딩하는 방법도 추천

4.toString() 보다 valueOf()를 추천

  • 비추천 방식
/*** 잘못 된 예시 ****/
public static void main(String[] args) {
	Integer a = 1;
	System.out.println(a.toString());

	a = null;
	System.out.println(a.toString());
}

/******* 결과 *******/
//1
//Exception in thread "main" java.lang.NullPointerException
//a라는 변수에 null이 오게되는 경우 당연히 "NullPointerException"이 발생한다.
  • 추천방식
/*** 권장하는 방식 ***/
public static void main(String[] args) {
	Integer a = null;
	System.out.println(String.valueOf(a));
}
/******* 결과 *******/
//null
//NullException을 발생을 피할 수 있게 된다.

5.체이닝 메소드 ( method Chaining) 호출 자제

/*** 잘못된 코드예시 ***/
// 이중 메시드 호출 지 null 값이 반환면 
// 뒤에 호출 되는 메서드는 결국 null.method1()..method2().method3() 과 같다
// debug 시 어려움 
String polcValCont = moStorePolicyService.getStorePolcBase(polcCd).getPolcValCont();

6.Apache Commons 에서 제공하는 StringUtils를 최대한 사용

public static void main(String[] args) { 
	System.out.println(StringUtils.isEmpty(null)); //true 
	System.out.println(StringUtils.equals("1", null)); //false 
	System.out.println(StringUtils.equals(null, "1")); //false 
	System.out.println(StringUtils.indexOf("갓", null)); //-1 
	System.out.println(StringUtils.indexOf(null, "갓")); //-1 
	System.out.println(StringUtils.upperCase(null)); //null 
} 
/******* 결과 *******/ 
//true 
//false 
//false 
//-1 
//-1 
//null

7.method 에서 NULL 리턴 하지 말자!

/* 권장하지 않는 방식*/
public List<UserVO> getUsers(){
    Result result = selectUsersQuery('selectUser');
return Collections.emptyList();    // 권장 return null; // 비 권장 . 
  }

 

일단 여기까지.

꽤 오래된 글이라 어디서 퍼왔는지 기억이 안난다. 혹시 최초 글작성자님 보고 계시면 댓글줘요. 링크추가 할게요!

+ Recent posts