| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- @RequestParam
- 바인딩변수
- @ResponseBody
- 비즈니스레이어
- after-throwing
- 스프링
- AOP
- @RequestMapping
- PointCut
- @Valid
- springmvc
- spring
- gradle
- Java
- application.properties
- c:if
- frontController
- 생성자주입
- 어노테이션
- 의존주입
- jointpoint
- @
- SpringBoot
- MVC
- springjdbc
- produces
- .xml
- Model
- 서비스레이어
- 유효성검사
- Today
- Total
목록Java (15)
메모장
static 폴더는 정적 리소스 파일을 넣는 곳이다. HTML , CSS , JS , 이미지 파일 등을 담는 곳이다. 거의 안쓰이지만 컴파일을 안하기 때문에 바로바로 보여줄 수가 있다. 단순 광고 , 다른 페이지로 들어가기 위한 표지 페이지 등에서 사용된다. 예시를 위해 1. 사진을 담아둔 images 폴더를 만들었고 2. kiwi 라는 폴더 안에 test02.html 을 만들었다3. test01.html 파일 만들기 테스트 01 페이지 test01.html 의 url 로 들어가면 그 페이지의 내용이 출력되는 모습 // 이미지 불러오기 kiwi 폴더 내에 test02.html 이 있기 때문에 경로를 잘 맞춰 준다 !
예외가 발생했을때 , 사용자에게 보여줄 페이지를 정하는 방법이 여러가지가 있지만 그 중 대표적인 것 두가지가 있다.1. 개발자가 처리하기 로직으로 예외발생시 화면이 넘어가지 않게 처리하는 방법 >> JAVA 또는 null 을 view에서 보여줘야 한다면 특정문구가 나오게 처리 >> JSTL로 조건문으로 유효성 검사 --->>> 규모가 있는 회사들은 상황 마다 이런 방식으로 많이 쓴다. 확실하게 상황마다 유효성 검사를 진행한다. 우리도 유효성을 검사를 철저히 해야 하는 이 방법을 써야 한다.다른 방법도 있으니 알아보자 2. Spring 한테 떠넘기기 비교적 간단한것은 Spring 떠넘기기 !이것또한 .xml 방식과 @ 방식이 있다. ① .xml 설정 (에러페이지 처리는 이것을 더 많이 사용)..
@RequestMapping 어노테이션은 Spring MVC 컨트롤러 메서드에 대한 요청 매핑을 설정하는 데 사용되는 매우 유용한 어노테이션입니다. 이 어노테이션을 사용하여 다양한 옵션을 설정할 수 있습니다. value 또는 path: 요청 매핑을 설정할 URL 경로를 지정합니다.method: 요청 메서드(HTTP 메서드)를 지정합니다. 기본값은 모든 요청 메서드를 허용하는 RequestMethod.GET입니다.params: 특정 요청 매개변수(parameter)를 지정하여 요청을 매핑합니다.headers: 특정 요청 헤더 값을 지정하여 요청을 매핑합니다.consumes: 요청이 수락하는 미디어 타입(media type)을 지정합니다.produces: 응답이 생성할 미디어 타입을 지정합니다.name, ..
파일 업로드 한 것을 이제 게시글을 눌렀을 때 출력을 보여줄 예정 이다. 그러려면 이 순서로 진행해야 한다. 1. VO 에 멤버변수 추가 getter,setter 도 잊지말고 꼭 ! 2. DAO mapper 확인하기 select 류는 멤버변수를 set 해준다. set 설정 완료 3. SQL 문 수정 FILENAME 컬럼도 추가 하였다 . 확인 View 수정 문을 사용하여 이미지를 업로드 했다면 그 이미지가 나오고 , 이미지를 업로드 하지 않았다면 기본값 이미지가 나오도록 설정 한다. 사진이 보이고 안보이고 조건문은 C 파트 에서도 가능하고 M 파트에서도 가능 하다. Controller 에서 수정하기 BoardController 에서 insertBoard.do 로 매핑..
커맨트 객체에 없는값을 받으려면 @RequestParam 을 사용한다. @RequestParam(value="searchCondition")String searchCondition (임시변수(tmp) 나 서치키워드를 사용할 때 ) String searchCondition = request.getParameter("searchCondition"); 하려면 request가 필요함 근데 무거운 객체 이다. 그래서 이거 대신 @ 사용 어떤 검색어로 뭘 보고 싶어 하는지 볼 수 있다. @RequestParam 을 사용하면 tmp 역할을 한다. value : 어디서 받을 건지defaultValue : 디폴트로 설정할 값required : true일 경우는 필수, false일 경우는 필수가 아닌 것으로 설정 가..
[ MAV ----> 보편적으론 Model 을 쓴다. ]Controller 객체의 메서드 output이 String 이거나 MAV(ModelAndView) 였다. 컨트롤러의 output을 MAV보다 가볍게 string으로 유지하는것이 좋다. 이제 MAV는 -> String 으로 바뀌고 MAV를 이제 못쓰게 되면서 Model 객체를 사용한다 ! Model 객체는 Command 객체 인자 안으로 들어가서 선언 해주고 데이터를 밀어 넣을때 ! model.addAttribute 반환 값은 String 타입이다. 가지고 갈 데이터가 있다면 포워드가 디폴트로 되어있어서 "main.jsp" 그냥 사용해도 되지만 가지고 갈 데이터가 없다면 redirect 를 붙여준다. "redirect:main.jsp" 라..
서버에서는 DBMS (DataBase Management System) 변경이 자주 발생 한다.즉, DAO 변경이 자주 발생 하게 된다는 의미 이다. 지금의 코드는 DAO를 직접 이용하고 있으므로, 결합도가 높아서 유지보수가 불리한 상태 ( 뭔가 객체를 직접 이용하면 결합도가 높아지면서 유지보수가 불리하다. )다른 DAO 로의 변경이 매우 불리한 상태이다. 지금 AOP를 사용할 수 없기때문에 매번 로그, 보안 , 권한확인, .. 등을 직접 처리해야 하므로 응집도가 낮음 유지보수가 불리한 상태 , 로그를 하나씩 다 달고 있다...! 문제가 DAO를 직접 다 쓰고 있는게 문제 ex) BoardDAO 를 -> BoardDAO2로 바꾸려 시도할때 하나하나 바꿔야 하는 문제점이 있음 ! ※ 유지보수를 유리한..
비즈니스 로직 & 서비스 계층은 applicationContext.xml 에서 객체화 설정 작업을 한다.즉, DAO, Service 류의 객체화는 applicationContext.xml 에서 작업 한다. 이때, DAO, Service 류는 서버가 시작할 때 "가장 먼저 객체화" 작업이 이루어지게 설정을 하려 한다. 위의 applicationContext.xml 설정 파일은 스프링 컨테이너이며,이렇게 "가장 먼저 생성 되는" 설정 파일을 "루트 컨테이너" 라고 부른다.이것도 스프링 컨테이너 이지만 가장 먼저 생성되는 컨테이너 라고 구분 짓기 위해 "루트 컨테이너" 라고 한다. "루트 컨테이너" == "비즈니스 레이어" == "서비스 레이어">> applicationContext.xml (비즈니스 레이..
기능 1. @ModelAttribute("이름") 어노테이션을 사용 해서 테스트 하기. Controller 와 View 간에서 Controller가 @ModelAttribute("이름") 어노테이션을 사용 해서 테스트 해볼수 있다. C와 V 에서 데이터가 오고가고 잘 되는지를 Controller가 확인 하고 싶을 때,@ModelAttribute("이름") 어노테이션을 사용해서, 객체를 View 에게 넘겨준다. 코드를 확인해보자. @ModelAttribute 를 Command 객체에 직접 넣어준다. 이것은 MemberVO 객체에 mVO를 mem 으로 보내주는 것을 의미한다. 그래서 View 에서는 객체의 이름을 mem 의 mid, mem의 mpw 라고 표현한다. 원래 값을 직접 밀어넣어주는 방식으로 ..
중요한 부분들을 다시한번 간단하게만 정리해보자 WEB-INF 에 있는 DispatcherServlet-servlet 파일에 대해 알아보자 원래 DS 한테 멤버변수 의존관계로 HandlerMapping 과 ViewResolver 가 있었는데 그걸 어노테이션으로 바꿔보는 연습을 진행하였다. implements 는 @ (어노테이션)으로 바뀌면서 생략되고 생략이 되면서 메서드 강제가 사라져서 메서드 시그니처 변경이 가능해진다. 그래서 메서드 명도 바꿀수 있고 하나의 컨트롤러에 비슷한 기능의 메서드들을 같이 정리하는게 가능하다 ! 비슷한 로직끼리 같은 컨트롤러 에 있기 때문에 응집도가 높아진다. @ (어노테이션)에선HadlerMapping (핸들러 맵핑)의 역할을 → @RequestMapping 이 해준..