web19 [WEB] MyBatis 설정 1. pom.xml 라이브러리를 추가한다. org.mybatis mybatis 3.5.9 2. src/main/resources/mybatis-config.xml 데이터베이스, 매퍼 등 설정파일이다. 순서를 꼭 지켜야한다. 이 코드에서는 db 아이디나 비밀번호를 properties파일로 따로 저장했다. properties는 이렇게 만든다. driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/스키마이름?serverTimezone=UTC&useUniCode=yes&characterEncoding=UTF-8 dbid=아이디 dbpwd=비밀번호 3. SqlMapConfig.java 이름은 같지 않아도 된다. 이 파일에 SqlSession을 반환하는 .. 기록/BACKEND 2022. 4. 25. [WEB] 파라미터와 어트리뷰트 파라미터와 어트리뷰트가 헷갈렸는데 나같은 사람들이 많을 것 같아 정리해보았다. 파라미터 client에서 서버로 보내는 정보들이다. web.xml을 통해서도 생성할 수 있다. 모두 String이다. 서블릿관점에서, READ-ONLY다. 어트리뷰트 서블릿에서 다양한 scope에 연결되어 수정, 생성, 삭제될 수 있다. 개체가 이름과 함께 scope에 추가되는 것을 바인딩되었다고 한다. 객체타입이다. -> 따라서 보내고 싶은 객체는 모두 Serializable 인터페이스를 상속받아야 한다. 참고 사이트 : https://www.javajee.com/parameters-and-attributes-in-servlet 기록/BACKEND 2022. 4. 4. [WEB] 요청과 응답의 Scope ApplicationScope (또는 ContextScope) javax.servlet.ServletContext 인터페이스 웹 어플리케이션이 시작할 때부터 끝날때(종료, 변경)까지 한 개의 객체로 유지된다. 모든 서블릿과 jsp에서 사용가능하다. jsp : application 객체로 사용 가능 servlet : getServletContext() 또는 getServletConfig().getServletContext() SessionScope javax.servlet.http.HttpSession 인터페이스 client(e.g. 브라우저 윈도우)가 웹 어플리케이션과 연결을 시작할 때부터 브라우저가 닫힐때까지 유지된다. 타임아웃 시간이 설정되면 닫히지 않아도 시간이 지나면 자동으로 삭제된다. 한 웹사이.. 기록/BACKEND 2022. 4. 4. [WEB] Java에서 DB연결하기 두 경우 모두 FactoryDao를 사용한다고 가정한다. FactoryDao는 싱글톤 패턴을 적용했다. 따라서 getInstance, getConnection, close 함수가 존재한다. 필요할 때마다 DB Connection 생성해서 사용하기 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class FactoryDao { private final String driverName = "com.mysql.cj.jdbc.Driver"; private final String url = "jdbc:mysql://127.0.0.1:3306/스키마이름?serverTimezone=UTC"; .. 기록/BACKEND 2022. 4. 2. [WEB] Servlet Servlet Life Cycle 이 메소드들은 재정의해서 사용할 수 있지만 service 메서드는 재정의시 주의가 필요하다. 밑의 그림과 같은 순서로 호출되도록 만들어졌기 때문에 재정의할 때 다음 메서드 호출을 생략한다면 예상한대로 진행되지 않을 수 있다. doGet, doPost 중 하나만 만든 상태에서 없는 메소드 방식으로 접근하면 405 Error(허용되지 않는 메소드 에러)가 발생한다. init() : 서블릿 객체 생성 후 초기화될 때 한 번 호출된다. service : 요청될 때마다 호출된다. service(ServletRequest req, ServletResponse res) service(HttpServletRequest req, HttpServletResponse res) doGet(H.. 기록/BACKEND 2022. 3. 29. [WEB] MVC Pattern 흐름 내가 이해한 방식대로 그려보았다. Model 서비스 로직(업무 로직) Class DAO : DB Access Class DTO : Data Transfer Object Class Service와 Dao 차이 Dao : DB와 연결해 DB 데이터를 필요한 것만 가져옴. Service : Dao에서 가져온 데이터를 가공. View 화면(view) : GUI, CLI html(static contents), css, javascript(jquery, bootstrap), ajax JSP(Java Server Page : static + dynamic contents) Controller 사용자의 요청을 받아서 응답을 제어하는 역할 하는 일 요청 데이터 가져오기 요청 데이터 valid 검증 Model에게 .. 기록/BACKEND 2022. 3. 29. [WEB] DTO Pattern DTO Pattern db table 컬럼명과 class 멤버변수를 매핑한다. DB member_id --> DTO memberId 방식으로 하는 게 알아보기 편하다. JavaBean Component 규칙을 준수해야 한다. 1. private 멤버변수 2. public setter()/getter() 3. 기본생성자 4. package 직렬화가 필요하기 때문에 Serializable를 상속받는다. 필요시 추가할 메서드 - 생성자 중복정의 - toString() - equals/hashCode() DTO 생성자 중복정의 기본생성자 : 필수 모든 데이터 초기화 생성자 예시) 회원가입 초기화 생성자 -> memberId, memberPw, memberName, mobile, email.. 기록/BACKEND 2022. 3. 28. 이전 1 2 다음