Java 관련/JSP & Servlet
[JSP & Servlet] Connection Pool
풀이라고 뭔가가 담겨져 있는 것을 의미하는데 하면 커넥션 풀은 데이터베이스와 연결하는 것들이 담겨있는 곳이라고 생각할수 있습니다. 브라우저가 웹서버로 요청을하면 웹서버는 필요에 따라서 데이터베이스에 Access하여 데이터를 가공하여 응답하게됩니다. 하지만 이러한 방식은 단점이 존재합니다. 웹서버는 데이터베이스가 필요할때마다 데이터베이스에 매우 많은 접속을 하게 됩니다. 그러면 DB를 연결하고 핸들리하고 Close하는 과정에서 자원을 너무 많이 사용하게 되고 효율적으로 사용할수 없겠죠. 이러한 단점을 보완하기 위해 Connection객체를 미리 만들어놓고 웹서버가 데이터베이스에 접근을 할때 만들어 놓은 객체를 사용하는 것이죠. 커넥션풀은 그럼 어디에 만들어 놓을까요?? 톰켓 컨테이너에 만들어놓고 필요할때마..
[JSP & Servlet] DAO와 DTO
DAO는 Data Access Object의 약자이고 DTO는 Data Transfer Object의 약자입니다. 둘다 객체라고 할수 있습니다. 브라우저를 통해서 웹서버쪽으로 요청을 하게됩니다. 요청을 하면 웹서버는 데이터베이스가 필요한 경우 데이터베이스에 접근하여 데이터베이스에서 쿼리를 수행하고 결과값을 받아서 웹서버에서 가공을 한후에 다시 브라우저로 응답하게됩니다. 그런데 웹서버는 데이터베이스로 접속하는 기능 말고도 많은 기능을 합니다. 그중에서 데이터베이스로 접근하여 통신하는 기능을 오브젝트로 따로 만들어 둔 객체가 DAO객체입니다. 데이터베이스에서 관리하는 데이터와 자바에서 관리하는 데이터의 형식은 분명 다를 것입니다. 자바에서는 int와 같은 타입으로 숫자를 관리하지만 데이터베이스에서는 numb..
[JSP & Servlet] JDBC
JDBC란 Java DataBase Connectivity를 의미합니다! 즉 DataBase의 쿼리를 자바와 연결시키는 것인데요. 저는 이번에 JDBC를 위해 Oracle을 사용할 예정입니다! JSP이건 Servlet이건 자바를 이용하게됩니다. 이런 자바와 데이터베이스의 중간에서 브릿지 역할을 해주는것이 JDBC입니다. JDBC에서 제공해주는 API를 이용해서 자바언에에서 데이터베이스에 접근하여 데이터베이스를 관리하게 됩니다. 저는 지금 이클립스를 이용해서 코딩을 하고 있는데 이런 API를 이용하기 위해서는 이클립스에 오라클 라이브러리를 이클립스에 복사해야합니다. window - Preferences에 들어가서 Classpath Variables를 보면 우리가 실질적으로 쓰고있는 JRE라이브러리를 사용하..
[JSP & Servlet] filter를 통한 한글처리
앞서 post방식과 get방식에서의 한글처리는 코드의 중복도 많아질 뿐더러 효율이 그다지 좋지 않은 코딩방법이라고 할수있습니다. 그러면 어떤 방법으로 코딩을하면 좀더 효율적인 방법일까요?? filter를 이용하는 방법이 있습니다. 필터라는 것은 뭔가를 걸러낸다는 의미이죠. 필터에 인코딩을 넣어주게 되면 통신을 할때 Filter가 한번 걸러서 데이터를 전송을 하게 되는데 데이터가 요청되고 응답될때 인코딩되어 전송이 될수 있겠죠. 필터는 인터페이스 이기 때문에 클래스를 만들어서 구현을 해야합니다. doFilter부분이 가장 중요하다고 할수있습니다. package com.servlet.filter; import java.io.IOException; import javax.servlet.Filter; impor..
[JSP & Servlet] JSP Servlet의 한글처리
프로그래밍을 하면 대부분이 영어로 처리가 되어있습니다. 그럼에도 한글을 사용해야할수는 있어야되는데요. 영어는 기본적으로 1byte지만 한글은 기본적으로 2byte입니다. 그렇기 때문에 한글을 입력하면 브라우저에서 한글이 깨지거나 오류가 생기는 경우가 많은데요. 이러한 문제를 해결해주기위해 한글처리를 해줄 필요가 있습니다. 한글이 깨지지 않도록 하는 처리에서도 get방식과 post 방식으로 나뉘게 됩니다. post방식의 경우 서블리셍 request.setCharacterEncoding("UTF-8"); 을 함으로서 처리할수있고 get방식의 경우 server.xml에 을 추가하는 방식이 있습니다. post방식의 경우 해당하는 서블릿 마다 코드를 작성해서 처리를 해주어야하지만 get방식은 server.xml에..
[JSP & Servlet] Session
cookie(쿠키)가 클라이언트에 연결 정보를 저장하는 것이라면 session(세션)은 서버에 연결정보를 저장하는 것을 의미합니다. http프로토콜의 단점으로 클라이언트가 서버에 요청을하고 서버가 응답을 하면 연결을 해제합니다. 이렇게 연결을 해제해버리면 로그인정보들이 다 날라갈수 있기 때문에 그 연결정보를 유지시켜주기위해 쿠키를 사용하기도 했습니다. 하지만 쿠키는 보안에 취약할수가 있는데 세션은 서버에 정보를 저장하기 때문에 쿠키에 비해 보안에 좋다고 말할수 있겠습니다. 세션을 구현하는 방법은 세션이 null인지 아닌지 확인을 하게 되고 null이라면 로그인을 유도하고 null이 아니라면 로그인 정보를 출력하게됩니다. 로그아웃을 하게 되면 서버에 저장된 정보를 지우는 역할을 하게되는데 session객체..
[JSP & Servlet] Cookie
쿠키(cookie)는 우리가 일상 생활에서 과자인 쿠키와 비슷합니다. 과자인 쿠키를 먹다보면 흘리게 되는 경우가 대부분입니다. 쿠키를 먹은 흔적을 남긴다고도 할 수 있는데 프로그래밍에서도 쿠키는 흔적을 남기는 것입니다. 서버와 클라이언트가 연결을 시도한 흔적을 남겼다가 나중에는 흔적을 가지고 접속을 했었는지 아닌지를 구분 할 수 있습니다. 우리가 사용하는 프로토콜은 http프로토콜입니다. http 프로토콜은 특징이 있습니다. 브라우저가 요청하고 서버가 응답을 하면서 연결을 하게 됩니다. 브라우저가 데이터를 요청하면 서버는 가공을 하게 되는데 가공을 하고나서 응답을 하게 되겠지요. 한번 요청을하고 응답을 하면 클라이언트와 서버간의 연결을 해제해버립니다. 하나의 서버에 수많은 클라이언트가 있기 때문에 모든 ..
[JSP & Servlet] Servlet 데이터 공유
1. Servlet Parameter 서블릿 파라미터는 web.xml에 init param 서블릿이 초기화 될때 파라미터를 만들어주고 그것을 Servlet에서 서블릿이 만들어 질때 getInitParamater() 메서드로 불러와서 사용을 하는 것입니다. web.xml에 init-param태그로 데이터를 저장한 것을 서블릿에서 config인 getServletConfig()메서드를 이용해서 가져오게 됩니다. package com.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax...
[JSP & Servlet] JSP 내장객체(config, application, out)
1. config config객체는 web.xml파일에 데이터를 저장을 해놓고 getInitParameter() 메서드로 JSP에서 데이터를 공유하게됩니다. 위의 그림에서 오른쪽 코드를 보면 init-param태그 안에 파라미터 데이터가 들어가있습니다. adminId라는 이름으로 admin이라는 값이 들어가있고 adminPw라는 이름으로 1234라는 값이 들어가있네요. 이렇게 미리 데이터를 저장해놓고 getServletConfig()를 이용해 config객체를 사용할건데요. config객체에서도 getInitParameter()메서드로 저장해놓은 데이터를 가지고 올수있습니다. adminId : adminPw : Test07 index.html index.htm index.jsp default.html d..
[JSP & Servlet] request객체, response객체
서블릿에도 request객체와 response객체가 존재합니다. https://12716.tistory.com/entry/JSP-Servlet-request%EC%9A%94%EC%B2%AD-response%EC%9D%91%EB%8B%B5?category=1011912 기억 나시나요?? JSP에서도 사용자의 요청과 웹서버의 응답을 담당하는 객체인 request와 response객체가 있는데 서블릿에서 사용하느냐의 차이가 있습니다. 즉 동일한 객체라는 것입니다. request객체를 먼저 보겠습니다. request는 사용자게 데이터를 받아야합니다. html에서는 대표적으로 form태그를 이용해서 submit 버튼을 누르면 데이터를 보내게 됩니다. form태그에서 action속성으로 어떤 jsp파일에 데이터를 ..