본문 바로가기

자바 스프링

JSP 개발 설정 [JSP]개발 환경 설정톰캣을 설치한 뒤 이클립스 설정을 해야한다.첫 프로젝트 생성File - new - project 클릭 Dynamic Web Project 선택 ※Dynamic Web Project가 없다면 ... Eclipse EE를 설치한다.프로젝트 이름을 적은 뒤 target runtime 지정하기 위해 New Runtime 클릭 설치한 톰캣 버전 선택 설치한 톰캣 경로 지정 후 Finish 클릭 Project Explorer에 프로젝트가 생성된 것을 볼 수 있다. 서블릿 생성프로젝트 우클릭 -> New -> Sevlet 패키지 이름과 클래스 이름 작성 next를 누르면 지정되는 URL path를 확인할 수 있다. next를 누르면 여러 메서드를 지정할 수 있다. 예제를 위해 toGet만 체크..
톰캣 설치 [JSP]톰캣설치 [JSP]톰캣설치 http://tomcat.apache.org/접속 후 좌측의 Download에서 버전 선택 후 zip파일 다운로드 압축을 해제하고 bin안의 startup 실행(윈도우는 bat, 리눅스는 sh)실행 후 localhost:8080 접속하면 다음과 같은 페이지가 나온다. startup이 실행 안될 때JDK가 설치되지 않아서 실행이 안됐다. JDK 설치 후 JAVA_HOME까지 환경변수에 추가해야 올바르게 실행된다. 환경변수 추가 방법
Interceptor Interceptorinterceptor를 통해 뷰의 공통적인 부분을 묶을 수 있다. 이를 통해 사용자 세션, 쿠키를 확인하거나 로그를 남기는 등 여러 작업을 할 수 있다.interface CookieValidator { void checkUser(email);}컨트롤러에서 이 인터페이스를 상속받아 사용하면 된다.인터셉터 작성​xpublic class AuthorizationInterceptor extends HandlerInterceptorAdapter {​ @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {​ String em..
[Java]lombok 적용 [Java]lombok 적용 lombok 적용DTO를 작성할 때 일일히 Getter, Setter, ToString을 생성하기 귀찮다. 물론 IDE에서 자동으로 코드 생성이 가능하긴 하지만 멤버 변수가 바뀔 경우 다시 코드를 생성해야한다. 이런 불편함을 해소해주는 것이 lombok이다. @Getter, @Setter 같이 어노테이션만 추가해 주면 자동으로 Getter, Setter 생성이 된다.dependency 추가 org.projectlombok lombok 1.18.2 provided 이렇게 의존성만 추가해서는 어노테이션 적용이 되지 않는다. IDE에 추가 설치가 필요하다.설치된 경로 C:\Users\USER\.m2\repository\org\projectlombok\lombok\1.18.2에 가서..
AutoCloseable [Java]Autoclosable java6 이전까지는 close 메서드를 호출하여 안전하게 리소스를 닫아주어야 했다.​x//JAVA6 이전 ...Class.forName("com.mysql.jdbc");try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(jdbcUrl, urerId, passWord); ps = conn.prepareStatement(sql);​ //.....​} catch (SQLException e) { e.printStackTrace();} finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStac..
[Java]Class.forName [Java]Class.forName Class.forNameJDBC 드라이버를 로드하는 코드를 보면 Class.forName을 사용하는 것을 볼 수 있다. 이 Class.forName의 의미는 무엇일까?Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection();코드를 살펴보면 리턴값을 받지도 않고 DriverManager의 getConnection메서드를 바로 사용할 수 있다. 또 forName의 인자로 패키지의 경로가 설정된 것을 볼 수 있다. 왜 이렇게 구현한 것일까? 각 JDBC마다 드라이버와 Connection의 구현은 다를 것이다. 각 DBMS마다 다른 API를 사용하여 DB에 연결할 경우 DBMS를..