전체 글
servlet 입력으로 배열 받는 방법
x: y: num이라는 이름으로 값을 받으면 post 요청할 때 배열로 넘겨준다 다라서 req에서 num 값을 가져올 때 getParameter가 아닌 getParameterValues라는 메소드를 써야한다 package com.newlec.web; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.htt..
servlet utf-8 type 설정 및 serlvet filter 사용
servletresponse의 setCharacterEncoding을 통해 UTF-8로 인코딩할 수 있도록 할 수 있고 setContentType을 통해 html 파일 형태로 내보낼 수 있다! package com.newlec.web; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSe..
servlet 어노테이션을 활용한 url 매핑
그 전에는 web.xml에 파일에 아래를 추가했지만 na com.newlec.web.Nana na /hello 어노테이션을 활용하면 추가해주지 않아도 된다! 대신 web.xml에 파일에서 metadata-complete를 false로 설정해줘야한다. package com.newlec.web; import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; im..
servlet 웹 입/출력
import java.io.IOException; import java.io.PrintWriter; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; public class Nana extends HttpServlet { public void service(HttpServletRequest request , HttpServletResponse response) throws IOException, ServletException { //Out..
개념 및 설치
시작하기 앞서 강의는 유튜브에 있는 뉴렉처님의 강의를 보면서 공부했습니다!! Servlet Servlet이란 Server application let으로 알려져 있으며 java 코드 안에 html태그가 삽입되어 있는 구조로 서버에서 클라이언트의 요청을 처리하기 위해 자바로 작성된 프로그램이다. JSP(java server pages) jsp는 servlet기반의 스크립트 기술로서 html 내부에 java코드를 삽입해서 사용한다. serlvet처럼 서버에서 요청을 처리하기 위해서 존재한다. jsp가 servlet을 보완해서 나온 기술이지만 지금에 와서는 servlet+jsp 형태로 학습을 하고 있다고 한다.MVC 패턴에서 jsp는 웹어플리케이션 구조에서 사용자에게 결과를 보여주는 view 층을 담당하고 s..
Java 예외 처리
try-catch-finally 블록 try{ } catch(예외클래스 e) { // 예외 처리 } finally { //정상 실행 } (finally 블록은 항상 실행되는 부분이다) 다중 catch 발생하는 예외별로 예외 처리 코드를 다르게 하는 다중 catch 블록을 가질 수 있다. try{ } catch(예외클래스1 e) { // 예외 처리1 } catch(예외클래스1 e) { // 예외 처리2 } 하지만 첫번째 catch에 예외클래스로 Exception을 사용하면 모든 예외가 Exception에 상속되어 있기 때문에 첫번째 줄에 다 catch 되어서 컴파일 오류가 발생하게 된다. throws 키워드 사용 throws 키워드는 메소드에서 처리하지 않은 예외를 호출한 곳으로 넘김으로써 호출한 곳에서 ..
Java 예외 클래스
에러와 예외 보통 자바에서 하드웨어로 인한 프로그램의 실행 오류를 에러로 구분하고 프로그램 자체 내에서 발생하는 오류(잘못된 조작, 잘못된 코딩 등 소프트웨어적인 오류)를 예외라고 한다. 자바에서 예외는 크게 일반 예외와 실행 예외로 구분되어진다. 일반 예외(컴파일러 체크 예외) 컴파일러가 예외 처리 코드가 있는지 없는지 체크하여 없으면 개발자가 예외 처리 코드를 작성하도록 한다. # java.lang.Exception을 상속받은 클래스들을 일반 예외라고 부른다. 실행 예외 반대로 실행 예외의 경우엔 컴파일러가 따로 체크를 하지 않는데 그 이유는 언제 실행 예외가 발생할지 알 수 없기 때문이다. # java.lang.RuntimeException을 상속받은 클래스들을 실행 예외라고 부른다. 실행 예외의 ..
Java 익명 객체
익명 객체 클래스 이름이 없는 객체를 익명 객체라고 부르고 어떤 클래스를 상속하거나 인터페이스를 구현해야한다. //이름이 있는 객체의 상속 public class Class_Name extends Main_C {} Main_C var = new Class_Name(); //익명 객체의 상속 Main_C var = new Main_C() {}; //괄호 안에는 익명 객체의 내용이 들어감 //이름이 있는 객체의 구현 public class Class_N implements I {} I var = new Class_N(); //익명 객체의 구현 I var = new I() {}; 익명 자식 객체의 사용 - 필드 선언할 때 초기값으로 익명 자식 객체를 생성하여 대입! public class Main { Pare..
Java 중첩 클래스와 중첩 인터페이스
중첩 클래스란? 클래스 내부에 선언된 클래스로서 바깥 클래스와 긴밀한 관계를 가지며 바깥 클래스가 없으면 필요없는 클래스이다. 중첩 클래스의 종류는 크게 멤버 클래스와 로컬 클래스로 나눌 수 있다. 멤버 클래스의 경우 클래스의 멤버로서 선언되고 멤버 클래스는 다시 인스턴스와 정적으로 나뉠 수 있다. class Main{ class Sub{} // 인스턴스 static class Sub2{} //정적 } 인스턴스 멤버 클래스의 경우 정적 필드와 메소드는 선언할 수 없고 인스턴스 필드와 메소드만 선언이 가능하다. public class Main{ class Sub{ Sub(){} int cnt; //static 사용 불가 void test(){} //마찬가지로 static 사용 불가 } } public cl..
Java 타입 변환과 다형성
인터페이스의 다형성 인터페이스는 동일한 인터페이스로 구현 객체를 교체해서 다양한 프로그램 실행 결과를 얻을 수 있다. 자동 타입 변환 구현 객체와 그 구현 객체의 자식 객체는 인터페이스 타입으로 알아서 자동 타입 변환이 된다. Interface_Name var = new Test(); // Test의 자식 객체도 구현 객체처럼 사용할 수 있음. 강제 타입 변환 보통 구현 객체가 인터페이스 타입으로 자동 변환 되면 인터페이스에 있는 메소드만 사용이 가능한데 구현 객체에서만 선언된 필드나 메소드를 사용할 필요가 있을 경우엔 강제 타입 변환이 필요하다. interface Vehicle{ void run(){} } class Bus implements Vehicle{ void run(){} void only()..