Web
-
Servlet-JSP MVC06 (1) - Session을 이용한 로그인 처리Web/Servlet-JSP 2023. 6. 24. 09:05
- Sesstion을 이용하여 로그인 처리를 구현해보자. - 먼저 로그인을 위한 화면을 간단하게 만들어보자 회원관리 시스템 ID: Password: 로그인 ${sessionScope.userName}님 환영합니다. 로그아웃 -로그인 구현 1 유효성 check 로그인 로그인 버튼을 누르면, 먼저 유효성을 검사하도록 check()함수를 넣었다. return값이 true일때만 submit이 정상 작동할 것이다. function check(){ if($("#user_id").val() ==''){ alert("아이디를 입력하세요"); return false; } if($("#passward").val()==''){ alert("비밀번호를 입력하세요"); return false; } return true; } c..
-
Servlet-JSP MVC04 (2) - handlerMapping and viewResolverWeb/Servlet-JSP 2023. 6. 16. 11:40
- (1)번에서 만들었던 frontcontroller를 더 수정해보자. - frontcontroller의 역할을 다시한번 상기하자면, > 요청받기, 공통부분처리, pojo 메서드호출, view연결이다. - 이러한 역할들 중에 pojo를 호출하는 분기문을 handlerMapping을 적용하여 더 깔끔하게 정리해보도록하자. - 또한 viewresolver를 적용해보자. 1. HandlerMapping -사용자 요청과 이를 처리할 pojo를 맵핑시켜주는 역할을 담당한다. -이전에 분기문으로 사용자 요청을 확인하고, 이에 따라 적절한 pojo를 연결하는 작업을 frontcontroller내에서 했는데 이를 따로 떼어두는 것이다. public class HandlerMapping{ private HashMap m..
-
Servlet-JSP MVC04(1) - FrontController and POJOWeb/Servlet-JSP 2023. 6. 16. 10:10
1. FrontController - 지금까지는 클라이언트 요청을 처리하기 위해 여러 컨트롤러(서블릿)이 존재했다. - 컨트롤러가 많은 것은 유지보수를 어렵게 만든다. - 만약 컨트롤러가 클라이언트의 요청을 받을때 공통으로 처리해야하는 부분이 있다면, 모든 컨트롤러에 공통코드를 추가해야할 것이다. 이는 유지보수를 어렵게 만든다. - 따라서, 이러한 점을 보완하기 위해 클라이언트로부터 모든 요청을 먼저 받고, 공통부분을 처리한 뒤에 요청을 넘기는 역할을 하는 것이 FrontController이다. @WebServlet("*.do") public class FrontController extends HttpServlet { protected void service(HttpServletRequest reque..
-
Servlet-JSP MVC05 - JDBC to MybatisWeb/Servlet-JSP 2023. 6. 14. 17:58
이제 기존 JDBC를 Mybatis로 교체해보자. 1. SqlSessionFactory(Connection Pool) 객체 얻기 Mybatis의 중요한 특징 중 하나는 Connection Pool을 이용하여 DB 연결과 해제 시간을 줄여준다는 것이다. 다음과 같은 방법으로 Connection Pool을 얻을 수 있다. public class MemberDAO { private static SqlSessionFactory sqlSessionFactory; //Connection Pool을 가리킬 참조변수 //초기화 블럭 static { try { String resource = "kr/bit/mybatis/config.xml"; // 미리만들어둔 config.xml파일 (경로/로구분) InputStream..
-
Servlet-JSP MVC05 - mybatis 설치 및 기본설정Web/Servlet-JSP 2023. 6. 14. 17:06
1. 기존 JDBC의 문제 - Connection 객체 얻는 과정에서 코드 내 중요정보 노출 위험 (url정보, user, password 등) - sql문과 java코드가 섞여있어서 개발을 어렵게 만들고, 유지보수가 어렵다 (ex sql에 테이블명이 바뀌는 경우 일일이 수정해줘야한다.) - 속도가 늦다 JDBC에서 Connection을 얻고 해제하는 부분이 시간이 많이 걸린다. -> 이러한 JDBC 기존의 문제를 보완할 수 있는 api가 mybatis api이다. 2. Mybatis API (SQL Mapping Framework) mybatis는 자바소스코드와 sql을 맵핑시키는 api이다. - 자바 소스와 sql을 분리시키고, 이를 연결해서 사용할 수 있게 만드는 API이다. - Connection..
-
Servlet - JSP MVC03 - JSTL and ELWeb/Servlet-JSP 2023. 6. 13. 22:48
1. JSTL이란? JSTL은 - JSP Standard Tag Library jsp에 프로그래밍적인 요소를 태그적인 요소로 바꿀 수 있도록 하는 도구이다. 기존의 등의 jsp에 코드적인 요소를 html태그적인 요소로 바꾸어 좀 더 유지보수하고, 사용하기 편하게 만드는 라이브러리이다. 먼저 jstl을 사용하기 위해서는 외부에서 라이브러리를 받아와야한다. 2. JSTL사용법 JSTL을 사용하기 위해서는 jsp페이지 상단에 아래와 같은 지시자를 포함시켜줘야한다. "c"는 jstl 태그를 사용할 때 접두사로 사용하는 것이다. (다양한 태그들을 식별하기 위함이다.) jstl의 태그는 크게 4가지로 분류되는데 1. 코어태그: for,if,변수 선언 등 기본적인 자바코드 지원 2. FMT: 포맷팅, 날짜, 통화 시..
-
Servlet-JSP MVC03 (1) - forward and RedirectWeb/Servlet-JSP 2023. 6. 13. 21:35
클라이언트 요청을 적절히 처리하고 응답하기 위해 현재 페이지를 전환해야할 때가 있다. 특히 MVC패턴에서는 요청받는 페이지와 응답하는 페이지가 다를 수 있기 때문에 페이지 전환이 자주 일어난다. 이러한 웹에서 페이지 전환 기법은 크게 forward기법과 redirect 기법이 있다. 1. forward기법이란? > 포워드는 Web Container 차원에서 페이지의 이동을 의미한다. > 웹 브라우저에서는 최초 호출한 URL이 표시되고, 이동한 페이지 URL 정보는 확인할 수 없다. > 포워딩 호출 페이지와 호출된 페이지는 같은 Reqeust와 Response를 공유한다. > 단어 그대로 건내주는 것으로 Redirect와는 다르게, 최초 요청과 요청정보가 유지되어 URL에 변화가 없다. > 단순조회나 검색..
-
Servlet-JSP MVC02(4) - Application,Session,CookieWeb/Servlet-JSP 2023. 6. 12. 18:16
- 서블릿 컨테이너의 임시저장소 서블릿사이에 자원을 공유하기 위한 임시저장소들에 대해 앞서 간단하게 알아보았는데, 조금 더 자세하게 이들에 대해 알아보도록 하자 1. Application > Servlet Context라고도 불리는 Application은 WAS의 하나의 웹프로젝트 내에 서블릿 컨테이너에 계속 존재하면서 값을 저장해둔다. > Context라는 말은 Context Path에서 처럼 하나의 웹프로젝트에서의 문맥으로 ContextPath는 WAS내에 웹프로젝트들과 그에 따른 요청을 구별하게 해주는 하나의 문맥, 줄기의 설정이었다면, (ex /MVC01/list.do와 /MVC02/list.do를 구별하게 해주는 역할) Servlet Context는 계속 이어갈 수 있는 상태에 대한 설정을 위한..