My Trace/T아카데미

[T아카데미] 모바일 서버 프로그래밍 기본 - 4일차

Junhong Kim 2016. 6. 30. 18:00
728x90
반응형

* package 만들 때

- "com.tistory.inma.appname.기능" 형식을 따른다.

1) 공통 파일

 : com.tistory.inma.appname.comm

2) MVC 디자인 패턴 모델 파일

 : com.tistory.inma.appname.model

3) 데이터를 관리하는 패키지 묶음 (VO = Value Object)

 : com.tistory.inma.appname.vo


* 용어

1) DAO = data access object

2) VO  = value object

3) JDBCUtil.class = DB 연동하기 위한 클래스 파일(프로그래머가 만들어서 관리)



● 모델1 vs 모델2(MVC) - 게시판 만들기


1) 모델1

 : JSP가 요청을 받아서 JSP로 출력한다.

 

2) 모델2(MVC)

 : Servlet이 모든 요청을 받아서 처리하고, JSP로 출력한다.

   - JSP 파일은 WebContent/WEB-INF/views 에 넣는다.

   - Servlet의 forward 경로를바꿔준다 "./WEB-INF/views/result1.jsp;"


※ 웹에서 데이터를 json으로 보고 싶을때



<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%>

${result}

 


※ 클라이언트에서 Post 방식으로 글자를 전송하는 경우 한글/특수문자 등이 께진다. 

 : 께지지 않게 하기 위해서는 서버 페이지에서 한글 께짐을 방지하기 위한 메서드 Post로 넘어갈 때 상단에 아래 코드를 써준다.

   "request.setCharacterEncoding("utf-8");"

 

 

● 모델1

 - json으로 데이터를 보내는 방법 (GSON 활용)



<%

 BoardDAO dao = new BoardDAO();
 BoardVO vo = new BoardVO();
 vo.setSeq(request.getParameter("seq"));

 dao.doGetBoard(vo);


 Gson gson = new Gson();
 String result = gson.toJson(vo);
 out.println(result);

%>



● 모델2 (MVC[Model View Controller] 디자인 패턴)

 : Servlet 에서 request 를 받아서 처리하고(Controller),  JSP 에서는 클라이언트에게 화면을 보여준다. (View)

   - CRUD? = Creat Read Update Delete 를 일컫는 말


* 사용자가 입력하거나 선택하는 정보는 아니지만 폼 전송이 같이 전송해줘야 하는 정보를 담기 위해서 히든 필드(Hidden Field)를 사용


 

<form action="member" method="post">
 <input type = "hidden" name = "action" value ="login">

</form


 

<form action="member?action=login> 으로 써도 무방하긴 하지만 이렇게 안 씀


서블릿에서 session 쓰기

 : HttpSession session = request.getSession(true);

   - JSP 에서는 그냥 쓸 수 있지만, Servlet 에서 쓰려면 session 을 가져와서 써야 함.



● 수업 시간 중 번외 이야기


* 일반 기업 구성원

 디자이너 : 그림 그리는 사람

 퍼블리셔 : 프로그램을 이쁘게 꾸미는 사람

 서버개발자 : servlet , jsp 등 만들기

 응용개발자1 : 실제 업무 기능 ( 순수 자바 )

 응용개발자2(JDBC) : 디비 연동만

 DBA : 디비만 사용

 모바일

 기획

 팀장


* 벤쳐/스타트업 구성원

 디자이너 + 퍼블리셔

 Server 개발자 + 응용개발자1 + 응용개발자(JDBC) + DBA

 모바일

 기획 + 팀장

728x90
반응형