[Servlet 이해하기] 서블릿이란?
·
Web/JSP
서블릿은 서버 쪽에서 실행되면서 클라이언트의 요청에 따라 동적으로 서비스를 제공하는 자바 클래스이다. 서블릿은 자바로 작성되어 있으므르 자바의 일반적인 특징을 모두 가진다. 하지만 서블릿은 일반 자바 프로그램과 다르게 독자적으로 실행되지 못하고 톰캣과 같은 JSP/Servlet 컨테이너에서 실행된다. 서블릿은 서버에서 실행되다가 웹 브라우저에서 요청을 하면 해당 기능을 수행한 후 휍 브라우저에 결과를 전송한다. 서버에서 실행되므로 보안과 관련된 기능도 훨씬 안전하게 수행할 수 있다. 단순히 고정된 정보를 브라우저에 보여주는 용도는 웹 서버로도 충분하다. 그러나 실시간으로 변하는 정보를 데이터베이스에서 가져오는 기능이나 직접 계산하는 기능이 필요할경우에는 서버 쪽에서 서블릿이 처리해주면 실시간으로 정보를 ..
예외 처리 코드 (try - catch - finally)
·
Language/Java
try - catch - finally 블록은 생성자 내부와 메소드 내부에서 작성되어 일반 예외와 실행 예외가 발생할 경우 예외 처리를 할 수 있도록 해준다. ∙ try 블록에는 예외 발생 가능 코드가 위치한다. ∙ try 블록의 코드가 예외 발생 없이 정상 실행되면 catch 블록의 코드는 실행되지 않고 finally 블록의 코드를 실행한다. ∙ 만약 try 블록 코드에서 예외가 발생하면 즉시 실행을 멈추고 catch 블록으로 이동하여 예외 처리 코드를 싱행한다. 그리고 finally 블록의 코드를 실행한다. ∙ finally 블록은 생략 가능하다. 예외 발생 여부와 상관없이 항상 실행할 내용이 있을 경우에만 finally 블록을 작성해주면 된다. 심지어 try 블록과 catch 블록에서 return ..
실행 예외
·
Language/Java
실행 예외는 자바 컴파일러가 체크하지 않기 때문에 오로지 개발자의 경험에 의해서 예외 처리 코드를 작성해야 한다. 만약 개발자가 실행 예외에 대해 예외 처리 코드를 넣지 않았을 경우, 해당 예외가 발생하면 프로그램은 곧바로 종료된다. NullPointerException 자바 프로그램에서 가장 빈번하게 발생하는 실행 예외는 java.lang.NullPointerException이다. 이것은 객체 참조가 없는 상태, 즉 null 값을 갖는 참조 변수로 객체 접근 연산자인 도트(.)를 사용했을 때 발생한다. 객체가 없는 상태에서 객체를 사용하려 했으니 예외가 발생하는 것이다. ArrayIndexOutOfBoundsException 배열에서 인덱스 범위를 초과할 경우 실행 예외인 java.lang.ArrayI..
예외 클래스
·
Language/Java
자바에서는 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는 것을 에러(error)라고 한다. 에러 이외에 프로그램 자체에서 발생하는 오류는 예외(exception)라고 한다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하다. 그러나 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 자바는 예외가 발생할 가능성이 높은 코드를 컴파일 할 때 예외 처리 유무를 확인한다. 만약 예외 처리 코드가 없다면 컴파일이 되지 않는다. 하지만 모든 예외에 대해서 예외처리 유무를 확인하는 것은 아니다. 예외에는 일반예외, 실행 예외의 ..
세션(Session)과 쿠키(Cookie)
·
Web/JSP
HTTP 프로토콜 세션을 이해하기 위해 HTTP 프로토콜의 특성을 알아두면 좋다 HTTP란? ∙ 웹에서 텍스트, 이미지, 사운드 등의 파일들을 주고받기 위한 통신 규약 ∙ 데이터를 요청하고 데이터의 결과 값을 받게 되면 바로 연결은 종료된다. ∙ HTTP 프로토콜은 데이터 송/수신을 하자마자 바로 연결이 끊기게 됨(항상 연결된 상태에서 데이터를 주고 받지X) 세션(Session) 세션이란 서버측의 컨테이너에서 관리되는 정보. 세션의 정보는 컨테이너에 접속해서 종료 되기까지(브라우저를 종료할 때까지)유지됨 접속 시간에 제한을 두어 일정 시간 응답이 없다면 정보는 더이상 유지되지 않게 설정이 가능 (정보가 서버측에서 저장된다는 면에서 보안적으로 유리) 보안이 필요한 정보를 공유하기 위해서는 서버측에서 관리될..
이클립스 MySQL연동(8.0.28)
·
Server/Database
1. MySQL 설치 https://dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community Server Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86 dev.mysql.com https://dev.mysql.com/downloads/conne..
자바빈(Java Bean)
·
Web/JSP
JSP에서 관련있는 데이터를 저장하는 클래스(자바빈)를 정의하여 사용하는 방법 관련이 있는 데이터들은 각각 데이터들을 따로 다루는 것보다는 관련이 있는 데이터를 저장하는 하나의 클래스를 설계하여 하나의 단위로 다루는 것이 훨씬 효율적이다. 예를 들어 회원가입 요청에서 회원 한명의 정보를 이름 따로 주소 따로 다루게 되면 각 데이터의 관련성이 없으므로 정보로 다루는 것이 보다 객체 지향적인 코드이며 효율적인 코드가 된다. 자바빈은 JSP 페이지의 디자인 부분과 비즈니스 로직 부분을 분리함으로써 복잡한 JSP 코드들을 줄이고, 프로그램의 재사용성을 증가시킨다. 자바빈의 설계 규약 자바빈을 작성하기 위해서는 설계 규약을 알아야 함. 자바빈은 다른 클래스와는 달리 규정되어있는 규칙에 따라서 작성해야 하며, 이에..
자바빈을 이용한 회원가입 폼 작성
·
Web/JSP
1) Beantest.java package test; public class Beantest { private String name; private String addr; private String email; private String birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getEmail() { return email; } public void setEmai..
Servlet을 사용한 로그인 기능 구현
·
Web/JSP
1) name 속성이 모두 subject로 같다. 2) 전송을 클릭하면 매핑 이름이 action에 설정한 input 서블릿으로 전송된다. 서블릿 작성 package sec01.ex01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/input") public class InputServlet ext..