티스토리 뷰
프로젝트 구조
cav
- src/main/java
-- egovframework.example.cmmn
--- web
--- EgovSampleExcepHndlr.java
--- EgovSampleOthersExcepHndlr.java
-- kr.go.seoul.cav
---짱많음
---- service
----- impl
------ Mapper.java
------ ServiceImpl.java
----- Service.java
----- VO.java
---- web
----- Contoller.java
- src/main/resources
- src/test/java
- src/test/resources
- Maven Dependencies
- JRE System Library
- src
- target
pom.xml
첫 로그인창 또는 메인화면
index.jsp
localhost8080을 검색했을때, 첫 시작페이지는 index.jsp 파일이다.
index.jsp 파일을 보여주고 싶다면 web.xml에 설정을 해주면 됨
index.jsp파일에서 main.do호출하고 main.do에서 return으로 main.jsp 파일 호출 한다
메인창 종류
1. 계약금액조정검증
2. 산업안전보건관리비정산
3. 산업안전보건관리비정산검토
4. 통계 X
5. 공지사항
6. 자료실
url: aa.do
jsp: aa.jsp
js: script_aa.jsp
1. cavConList.do
-> cavconlist.jsp
2. safList.do
-> safCheckList.jsp
3. safCheckList.do
-> safchecklist.jsp
4. statistics.do
-> statistics.jsp
5. selectBbsList.do
6. selectBbsFileList.do
main.jsp-> 목록 아이콘 클릭시 <c:url ~~~.do로 보내짐
<c:url>태그는 URL에 자동으로 ContextPath를 붙여주는 일을 한다.
(context path란 was에서 웹 어플리케이션을 구분하기 위한 path이다.
이클립스에서 프로젝트를 생성하면 자동으로 server.xml에 추가되어 서버구동하면 자동으로 잡히는 경로)
회원가입
insertUser.do
- idCheck.do
회원가입 성공시
바로 로그인처리됨
-> insertUserProc.do
-> loginProc.do
-> main.do
-> updateWork.do
아이디 비번 입력후 로그인 성공
-> loginProc.do
-> index.do
-> main.do
-> updateWork.do
로그아웃
-> logoutProc.do
-> index.do
.do 사용하는 이유
하나의 관행
스프링 프레임워크가 나타나기 전에 스트럿츠라는 프레임워크가 있었다.
스트러츠에서 .do 로 설정을 해주었음.
다른 서블릿과 url의 충돌을 막기 위해서 사용한다.
서블릿 페이지와 리소스를 구분하기 위해 패턴을 정의 한것.
업데이트
updateWork.do
-> return jsonView?
관리자(neggasystem) 일때만 글 목록 확인 가능
-> sql문에서 해결
alt
대체텍스트
redirect란
다시+지시하다
브라우저가 www.asdf.com/a url을 웹서버에 에 요청했을때, 서버는 응답메시지를 통해
www.asdf.com/b로 로 다시 요청하라고 지시함
return 값을 .jsp로 설정하기
dispatcher-servlet.xml에서
p:prefix="/WEB-INF/jsp/egovframework/cav/" p:suffix=".jsp"
로 설정한다.
흐름이해하기
main.jsp
-> 산업안전 보건 관리비 정산 클릭
-> safList.do
-> safController.java
-> 컨트롤러에서 saflist.jsp로 리턴함
=> 여기까지 데이터 다불러와서 화면에 찍음
-> 불러온 데이터 목록 하나 클릭
-> saflist.jsp에서 saf.do로 보냄
-> safController.java; saf.do
-> 데이터 불러와서 페이지 출력 -> saf.jsp 출력
-> saf.jsp에서 돋보기 버튼 누르면 팝업창 열림
->상단에 popup_saf.jsp include 해놨음
게시판
selectBbsList.do
-> BbsController.java
->
jstl JavaServer Pages Satandard Tag Library
jsp페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장
jsp안에서 사용
<c:forEach>
List, 배열 요소를 순서대로 반복해서 처리할 수 있는 태그
- Vo 역할
VO(Value Object)
각 계층간 데이터를 교환하기 위한 객체이다
read only 속성을 가진 Object를 말한다. 수정이 불가능
-> DTO와 동일한 역할을 한다.
-> 어떠한 로직도 가지지 않는 순수한 데이터 객체
-> getter 메소드만 가지고 있는 클래스
-> setter를 잘 활용하지 않기 때문에 불변의 성격을 가지고 있는 클래스이다.
Service 인터페이스와 ServiceImpl을 만드는 이유
Interface는 객체의 사용 방법을 정의한 타입이다. 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. 즉, 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 해준다.
인터페이스 타입에 어떤 구현 객체를 대입하는지에 따라 실행결과가 달라지도록 만드는 기술이므로 기존 구현 객체(ServiceImpl1)와 비즈니스 로직이 다른 기능을 추가해야할 경우 다른 구현 객체(ServiceImpl2)를 만들어 사용하면 된다. 따라서 유지보수 측면에서 매우 좋다.
그리고 객체지향 프로그래밍에서는 클래스를 작게 나누어 다른 클래스와 의존관계를 낮추는것이 중요하다. 즉, 결합도를 낮추는것인데 이 또한 유지보수가 쉽다는 장점을 갖는다.
-> 비즈니스 로직을 수행하는 역할
비즈니스 로직이란 기능을 구현하는 구현부
Service는 interface 파일로 ServiceImpl은 class파일로 작성한다.
인터페이스와 인터페이스 구현 클래스로 분리할 경우 장점
느슨한 결합을 유지하여 각 기능간 의존관계를 최소화할 수 있다.
의존관계의 ㅊ최소화로 인해 기능의 변화에도 최소한의 수정으로 개발할 수 있는 유연함을 가질 수 있다,
모듈화를 통해 어디서든 사용할 수 있도록 하여 재 사용성을 높인다.
스프링의 IoC/DI 기능을 이용한 빈 관리 기능을 사용할 수 있다.
Getter Setter 사용하는 이유
개체(객체)지향 프로그래밍에서 개체는 상태(attribute)와 행동(method)을 갖고 있습니다. 그리고 개체는 자신의 상태에 대해 스스로 책임을 져야 하고 그러기 위해선 개체의 상태를 아무나 함부로 바꿀수 있으면 안됩니다. 바꿔야 한다면 개체 자기자신이 바꿔야 한다는 라고 이해하시면 됩니다. 그러서 멤버 변수를 private으로 선언하여 외부의 접근을 막는것입니다
https://velog.io/@aquarius1997/Service%EC%99%80-ServiceImpl
https://offbyone.tistory.com/368
HashMap
https://coding-factory.tistory.com/556
직급마다 보이는 게시글이 다름
-> sql에서
- Spring form태그
:spring 버전2.0부터 jsp와 웹 MVC를 사용할때, 폼 요소를 좀 더 편리하게 다룰 수 있도록 데이터 바인딩과 관련된 광범위한 태그를 제공
1. 태그 라이브러리르 사용하기 위해서 다음 taglib설정을 상단에 추가
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
2. <form:form></form:form> : 폼태그
html에서 form태그를 생성하고 바인딩하기 위해서 form 내부 태그에 바인딩 경로 'path'를 지정한다.
<form:form></form:form>
기본 형식으로 입력값이 없을 시 method는 'post'로, action값은 현재 요청한 url 값이 설정된다.
<form:form commandName="member"></form:form>
id값을 member로 명시 id속성값은 입력폰의 값을 저장하는 커맨드 객체 이름이 할당
<form:hidden path="a1"/>
hidden 타입의 input을 생성 path 설정한 문자열은 id와 name속성으로 지정되며 model의 값을 추출해 value 속성에 주입
<form:hidden>
https://hipdizzy.tistory.com/25
https://yenbook.tistory.com/15
'Private' 카테고리의 다른 글
OpenLayers Animation (0) | 2022.04.15 |
---|---|
OpenLayers 응용해보기 (0) | 2022.04.14 |
- Total
- Today
- Yesterday
- apachepoi
- 공간데이터
- jdbcType
- OpenLayers
- Centos7에서 Postgresql12 설치
- 엑셀POI
- Postgresql12
- getRow
- SVN
- Postgis
- getCell
- 폐쇄망에서패키지설치
- setForceFormulaRecalculation
- Geoserver
- su postgres 안됨
- 인터넷안되는환경에서설치
- 부하측정
- mybatisif
- Some resources were not updated.
- yumrepository
- yumdownloader
- svn프로젝트불러오기
- CreateCell
- postgis 설치
- createRow
- 공간데이터병합
- 리눅스
- shp2pgsql
- 폐쇄망에서rpm설치
- 리눅스폐쇄망
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |