Servlet

    [세미 프로젝트] 1DU1DU 원두 구독쇼핑몰 프로젝트 진행과정 기록

    [세미 프로젝트] 1DU1DU 원두 구독쇼핑몰 프로젝트 진행과정 기록

    세미 프로젝트 기록 원두 정기구독 쇼핑몰 1DU 1DU 프로젝트 기간 ( 2022.02.16 - 2022.04.01 ) 기능 구현 기간 ( 2022.03.21 - 2022.04.01 ) 2주간 진행. 팀 인원 : 5명 세미프로젝트 주제는 고객 취향 테스트를 통해 입맛에 맞는 원두를 매달 정기 구독할 수 있는 서비스를 제공하는 1DU 1DU라는 이름의 쇼핑몰이다. 프론트와 백엔드는 구별하지 않고, 팀원들과 기능별로 나누어 제작하기로 했다. 그중 내가 맡게 된 메인 기능은 상품 주문과 상품 결제이다. 그리고 관리페이지의 주문 내역관리, 교환환불 요청 / 마이페이지의 주문내역 상세및 수정 등을 맡았다. 2월 16일 세미프로젝트 팀이 정해졌고, 수업 진도와 동시에 세미 프로젝트를 진행하고 있다. 온전히 기능 구..

    [Servlet/JSP] 프로젝트 실습 (Servlet 수업 정리하기)

    [Servlet/JSP] 프로젝트 실습 (Servlet 수업 정리하기)

    환경 변수 설정 인코딩 UTF-8 설정하기 ( Workspace/텍스트에디터/CSS/HTML/JSP ) Server 설정에 RunTime Environments 톰캣 9버전 추가하기 Customaize Perspective에 Shortcuts 편집하기 서버 등록후 더블클릭 Server modules without publising 체크 하고 Port Number 바꿔주기 서버에 동적 웹 프로젝트 add 서버 동작 확인하기 web\WEB-INF\classes WEB-INF 하위 index.jsp 생성하기 lib 라이브러리 등록 WEB-INF 하위 lib라이브러리 파일 추가하기 Source 파일 등록 소스파일 등록하기 (동적 웹 프로젝트 하위에 소스파일로 생성하기) 1. mappers 동적 쿼리문 작성을 위..

    [Servlet] MIME-TYPE ?

    MIME-TYPE 서버/서블릿에서 웹 브라우저로 데이터를 전송할 때 MIME-TYPE을 설정해서 전송할 데이터의 종류를 지정한다. HTTP로 전송 시 text/html 일반 텍스트로 전송 시 text/plain XML 데이터로 전송 시 application/xml 웹 애플리케이션은 클라이언트에 해당하는 웹 브라우저와 서버에 해당하는 서블릿이 서로 데이터를 주고받아 실행한다. 웹 브라우저가 네트워크를 통해 서블릿에 데이터를 보내는 경우 서블릿은 네트워크로부터 데이터를 입력받는다. 반대로 서블릿이 데이터를 전송하는 경우에는 네트워크로 데이터를 출력한다. 즉, 네트워크에 대해 자바 I/O 스트림 클래스의 입출력 클래스를 이용하면 쉽게 웹 애플리케이션의 네트워크 기능을 구현할 수 있다. 서버(서블릿)에서 웹 브..

    Servlet 문제 풀이

    문제1. msg가 화면에 출력되지 않는 이유? => 출력식에서 직접 값을 가져와서 출력하기 문제2 예제. if ( list != null ) { request.setAttribute("list", list); => 추가하기 } 아래 코드 확인 ) @WebServlet("/test2") public class TestTwoServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List list = new NoticeService().selectList(); String page = null; if(l..

    [Servlet] cookie와 session

    HTTP통신방법 HTTP는 서버와 client간의 요청과 응답으로 데이터를 주고 받는 형식으로 서버는 client의 요청에 응답을 하고 나면 그 연결을 끊어버림(stateless) client는 다시 서버에 요청하려면 새로 연결하여 응답을 받아야 한다. 문제점 연결이 끊어지기 때문에 유지되어야 하는 정보들이 사라지는 문제가 발생을 한다. (예 로그인된 후 로그인 정보, 장바구니에 넣은 데이터 등) Session과 Cookie 연결이 끊어진 이후에도 client에 대한 정보를 유기하기 위해 Server에서 데이터를 보관하는 방법과 client에 데이터를 보관하는 방법 두가지가 있는데 서버측에 데이터를 보관하는 방법을 Session이라고 하고, client측에서 데이터를 보관하는 방법이 Cookie이다. *..

    [Servlet] sendRedirect VS RequestDispatcher

    sendRedirect VS RequestDispatcher 1. sendRedirect / encodeRedirectURL client의 브라우저에게 매개변수로 등록한 페이지를 재요청하라고 응답해주는 것(301/302코드 전송) encodeRedirectURL은 매개변수(URL)에 세션ID정보를 추가 재요청 처리 client가 별도로 다른 페이지 요청을 안해도 url주소(페이지)가 변경됨. ** 브라우저가 알아서 서버에 해당 페이지를 요청 쿼리스트링으로 별도의 데이터를 전송하지 않으면 요청데이터가 없음 Rrdirect 테스트 html ) redirect 다른 웹사이트로 redirect 테스트 다른 서블릿으로 redirect 테스트 Servlet ) 1) 다른 웹사이트로 redirect 테스트 @WebS..

    [Servlet] Response 응답 확인하기

    서블릿이 하는 역할은 크게 3가지 라고 볼수 있다 1. 요청받기 (HTTP method GET/POST 요청에 따른 parameter로 전달 받은 데이터를 꺼내올 수 있다.) 2. 비즈니스 로직(DB접속과 CRUD에 대한 로직 처리 -> 서비스를 호출하는 쪽으로 해결(MVC) 3. 응답하기 (문자열로 동적인 웹(HTML 태그)페이지를 만들어서 스트림을 이용하여 내보내기) 기본 값은 test/plain이지만 html 태그를 사용하면 text/html도 응답으로 수행 가능하도록 헤더 설정이 되어 있기 때문에 text/html로 인식을 하게 된다. 하지만 명시적으로 text/plain으로 설정하게 되면 html 태그를 태그로 인식하지 않고 문자열로 인식하게 된다. Response 응답 확인하기 html ) R..

    [Servlet] GET/POST 방식에 따른 서블릿 메소드

    사용자 데이터 전송방식 get방식 URL창에 “ ? “ 뒤에 데이터를 입력하는 방법(쿼리스트링)으로 보낸다. 데이터가 여러 개일 경우 &로 묶어서 보낸다. 데이터 검색에 많이 사용, 데이터 크기 한계가 있으며, 보안에 취약하다 post방식 HTTP헤더의 내용으로 보내는 방식으로 데이터 크기에 제한이 없고, 헤더에 포함되어 보안이 뛰어남 ☞ Servlet이 두 방식 중 하나로 전달받으면 해당하는 매소드를 호출함 html 에서 method속성을 이용해서 방식결정, default : get 서블릿 메소드 doGet client에서 데이터를 전송 방식을 get방식으로 전송하게 되면 호출되는 메소드 doPost client에서 데이터를 전송 방식을 Post방식으로 전송하게 되면 호출되는 메소드 ☞ 반드시 Serv..

    [Servlet] 서블릿 라이프 사이클

    [Servlet] 서블릿 라이프 사이클

    서블릿 라이프사이클 첫 번째 요청일 경우, 객체를 생성하며 init( ) 메소드를 호출한다. 이 후 작업이 실행 될 때마다 service() 메소드가 요청한 HTTP Type에 따른 doGet(), doPost() 메소드 호출 최종적으로 서블릿이 서비스 되지 않을 때 destroy() 메소드가 호출. ** destroy() 는 보통 서버가 종료되었을 때, 서블릿의 내용이 변경되어 재 컴파일 될 때 호출한다 public class LifeCycleTestServlet extends HttpServlet { /* 메소드의 호출 횟수를 카운트 하기 위한 용도의 필드 */ private int initCount = 1; private int serviceCount = 1; private int destroyCo..