WAS - 원격 프로그램브라우저에서 ip주소(URL)를 입력해서 WAS를 호출프로그램 등록URL과 프로그램을 연결클래스앞에 @Controller호출하려는 메서드앞에 @RequestMapping("/hello") //URL과 main()메서드를 연결context root
브라우저에서 URL로 요청하면 톰캣에서 HttpServletRequest객체를 만들고, 요청 내용을 담음. 톰캣이 request객체를 맵핑된 메서드의 매개변수로 넘겨줌. 메서드에서 request객체를 사용가능하게 됨. request객체로 요청한 정보를 알 수 있게 됨.
src/main/webapp/resources/img주사위 그림을 랜덤으로 출력HttpServletResponse response 사용타입, 인코딩 설정.reponse로 출력스트림 얻기.출력스트림으로 html을 출력.클라이언트 : 서비스를 요청하는 애플리케이션서버 :
String year = request.getParameter("year");Enumeration enum = request.getParameterNames(); //모든 이름Map paramMap = request.getParameterMap(); //map형태Str
tomcat 설정파일(conf폴더의 설정파일을 sts에서 복사에서 사용)server.xml : tomcat 서버 설정파일web.xml : 2개. 각각 tomcat의 모든 webApp의 공통설정/webApp의 개별설정
프로토콜 : 서로간의 통신을 위한 약속, 규칙주고 받을 데이터에 대한 형식을 정의한 것.HTTP :단순하고 읽기 쉽다. - 텍스트 기반의 프로토콜상태를 유지하지 않는다.(stateless) - 클라이언트 정보 저장X(stateless -> 클라이언트 정보 저장X ->
바이너리 파일 : 문자와 숫자가 저장되어 있는 파일.쓸 때는 문자->문자, 숫자->숫자.읽을 때는 문자->문자, 숫자->숫자.(변환이 없음)텍스트 파일 : 문자만 저장되어 있는 파일.쓸 때는 문자->문자, 숫자->문자읽을 때는 문자->문자(숫자를 문자로 변환)사이즈로
OOP 5대 설계원칙 - SOLIDSRP단일책임의 원칙 - 하나의 메서드는 하나을 책임만 진다분리1.관심사의분리, 2.변하는 것, 변하지 않는 것 분리, 3.공통코드(중복코드)의 분리입력의 분리request객체가 아닌 개별 값을 매개변수로 받을 수 있음.(int yea
컨트롤러에서 맵핑된 메서드의 타입을 void로 하고 리턴값이 없으면,맵핑된 주소의 이름을 가진 jsp이름을 리턴함.Model을 매개변수로 받을 때는 DispatcherServlet에서 Model객체를 만들어서 컨트롤러로 넘겨주지만,ModelAndView를 사용하면 컨트
@WebServlet("/rollDice) = @Controller + @RequestMapping("/rollDice")@WebServlet은 HttpServlet을 상속받아야함, 클래스에 맵핑.(맵핑 할 때마다 클래스를 만들어야 함)@Controller는 상속 X,
HTTP 특징 - stateless, 상태정보저장X따라서 저장소 필요.접근범위와 생존기간에 따라 4개의 저장소가 Map의 형태로 있음.공통적으로 쓰기(저장)는 setAttribute(), 읽기는 getAttribute()removeAttribute(), getAttri
URL패턴@WebServlet으로 서블릿을 URL에 맵핑할 때 사용.우선순위 높은데서 낮은데 순으로1.exact mapping : /login/hello.do2.path mapping : /login/3.extension mapping : .do4.default map
jstljsp에서 <% %>에 자바코드를 넣는것과 html코드를 쓰는것을 합치는게 오류가 많이 발생해서 생김.Filter공통적인 요청 전처리와 응답 후처리에 사용. 로깅, 인코딩 등요청이 오면 Filter에서 전처리, 서블릿 호출, 서블릿에서 처리, Filter에
@RequestParam요청의 파라미터를 연결할 매개변수에 붙이는 애너테이션(@RequestParam(name="year" required=false) String year)(@RequestParam String year)(@RequestParam(name="year"
@ModelAttrubute적용 대상을 Model의 속성으로 자동 추가해주는 애너테이션.반환 타입 또는 컨트롤러 메서드의 매개변수에 적용 가능.메서드 매개변수 앞에 반환타입앞에참조형 매개변수 앞에 @ModelAttribute 생략 가능.@RequestParam : 타
Controller의 메서드에서 @RequestMapping("URI") 맵핑하고,return view(.jsp)이름을 반환.registerForm.jspregisterInfo.jsp
registerForm.jsp에 msg디코더 및 java.net.Decoder임포트 추가registerInfo.jsp에 param.id에서 user.id로 변경(@modelAttribute로 User user를 받아옴)
ExceptionController.java 글로벌 캐쳐 없이 예외 처리 함.ExceptionController.javaGlobalCatcher를 만들어서 예외처리 하게 함.GlobalCatcher.java글로벌 캐쳐 클래스를 만들어서@ControllerAdvice를
이름과 값의 쌍으로 구성된 작은 정보. 아스키 문자만 가능.한글은 URL인코딩 필요.서버에서 생성 후 전송, 브라우저에 저장. 유효기간 이후 자동 삭제.서버에 요청시 domain, path가 일치하는 경우에만 자동 전송.클라이언트 식별기술.서로 관련된 요청들을 하나로
@ControllerAdvice로 전역 예외 처리 클래스 작성 가능(패키지 지정 가능)예외 처리 메서드가 중복된 경우, 컨트롤러 내의 예외 처리 메서드가 우선Global Catcher로 처리@ResponseStatus1\. 응답 메세지의 상태 코드를 변경할 때 사용예외
DispatcherServlet이란?입력을 분리(전처리)
타입변환 : String -> int데이터 검증 : month는 1~12에 있는지BindingResult 에러, 결과 저장Data타입 변환 1Data타입 변환 2양방향 타입 변환(String -> 타입, 타입 -> String)특정 타입이나 이름의 필드에 적용 가능디폴
객체를 검증하기 위한 인터페이스. 객체 검증기(validator)구현에 사용Errors의 메서드예전에는 컨트롤러 메서드에서 아래와 같이 작성Validator를 사용해서 컨트롤러에 아래와 같이 작성아래는 RegisterController내에서만 동작함.하나의 Valida
변경을 더 최소화Car뿐만 아니라 다른 것으로도 사용 가능하게
JavaBeans 재사용 가능한 컴포넌트, 상태(iv), getter&setter, no-args constructorServlet&JSP beanMVC의 Model, EL, scope, JSP container가 관리EJBSpring Bean - POJO. 단순, 독
데이터에 접근하기 위한 객체.DB에 저장된 데이터를 CRUD를 수행.DB테이블당 하나의 DAO를 작성.영속계층(Persistence Layer)관심사, 중복코드 분리 ==> 변경에 유리
더이상 나눌수 없는 작업의 단위.Tx. insert, update, select 하나하나가 다 TX.계좌이체의 경우, 출금(update)과 입금(update)이 하나의 Tx로 묶여야 됨.'모'아니면 '도'. 출금과 입금이 둘 다 성공하지 않으면 실패.하나만 실패해도 취
여러 메서드에 공통 코드를 추가해야 한다면?맨 앞, 맨 뒤에 추가 가능.before 추가 -> BeforeAdviceafter 추가 -> AfterAdvice양쪽 추가 -> AroundAdvice관점 지향 프로그래밍.부가기능(advice)을 동적으로 추가해주는 기술.
컨트롤러의 역할에 비지니스로직은 포함X => 3개의 계층으로 분리 해야 함.DAO의 각 메서드는 개별 Connection을 사용But Tx는 1개의 Connection에서 처리돼야함.==> TransactionManager가 필요(같은 Tx면 같은 Connection이
SQL Mapping Framework - Easy & Simple자바 코드로부터 SQL문을 분리해서 관리.매개변수 설정과 쿼리 결과를 읽어오는 코드를 제거.작성할 코드가 줄어서 생산성 향상 & 유지 보수 편리.(1)mybatis가 제공하는 인터페이스SqlSession
DB테이블 생성MapperXML & DTO 작성DAO인터페이스 작성DAO인터페이스 구현 & 테스트계층간의 데이터를 주고받기 위해 사용되는 객체관심사, 역할에 따라 계층을 분리@Controller요청과 응답을 처리데이터 유효성 검증실행 흐름을 제어@Service비지니스
1. 게시물 목록 페이징 2. LIMIT[offset], row_count domain - PageHandler.java
view - boardList.jsp Controller - BoardController.java service - BoardService.java service - BoardServiceImpl.java
1. 기능별 URI 정의 BoardController board.jsp boardList.jsp