학교 47

05) 서블릿

💜 서블릿 (Servlet: Server Applet) - CGI의 단점을 보완하기 위해 Sun Microsystems에서 개발 - Java 기반의 동적 웹 프로그래밍 솔루션 - 서블릿 기반으로 JSP 개발 --> JSP는 내부적으로 서블릿으로 변환되어 실행됨 --> JSP 동작 방식 이해를 위해 서블릿 이해가 필수 🩷 HTTPServletRequest 함수 - HTTPServletRequest: HTTP 요청 처리를 위해 필요한 기능을 제공하는 클래스 * LoginServlet의 doGet() 함수 구현 - request.getParameter() 를 이용해 쿼리 스트링으로부터 사용자 입력 값 추출 - 사용자 입력 값을 이용해 출력될 HTML 코드 생성 - 생성된 HTML 코드를 브라우저로 전송 pro..

학교/JAVA 2023.12.14

06) JSP

💜 JSP (Java Server Page) - 서블릿에 비해 쉬운 프로그래밍 구문 제공 - 서블릿으로 변환되어 실행 💛 서블릿과 JSP 비교 - 아래 장단점으로부터 서블릿과 JSP는 필요에 따라 이용하는 것이 바람직 🧡 JSP 실행 과정 1. login.jsp는 서블릿인 login_jsp.java로 변환 2. login_jsp.java를 컴파일하여, login_jsp.class를 생성 3. Java 리플렉션 API를 이용하여 login_jsp 클래스 파일을 메모리에 로드 Java 리플렉션은 주어진 파일을 메모리에 반영한다는 의미로, Class.forName() 함수에 의해 실행 (Java Reflection API 이용 - Class.forName()) 4. 초기화를 위해 login_jsp 클래스의 j..

학교/JAVA 2023.12.14

07) JSP 내장 객체 종류

💜 내장 객체 (Implicit Object) - JSP에 의해 미리 정의된 객체 - JSP 페이지 내에서 변수 선언 없이 이용 가능한 객체 - 별도의 선언 없이 이용 가능 - 지정된 값으로만 이용 가능 (변수 이름 수정 불가) - 변수 없이 사용될 수 있는 이유? --> JSP 컨테이너에 의해 자동으로 추가되고 초기화됨(_jspService() 함수 생성 코드 참고) 💛 내장 객체의 종류 1️⃣ request 객체 - HTTP 요청 메시지의 쿼리 스트링 처리 관련 API - getParameter() 함수가 대표적으로 이용 * HTTP 요청 메시지 헤더 처리 관련 API - getHeader() 함수가 주로 이용 * HTTP 요청 메시지 헤더 출력 예제 (getHTTPHeaders.jsp) 2️⃣ re..

학교/JAVA 2023.12.14

모바일 웹 서비스 구현을 위한 JSP 웹 프로그래밍 연습문제_07 JSP 내장 객체

01. 내장 객체가 변수 선언 없이 이용될 수 있는 이유는 무엇인가요? 답: JSP 컨테이너가 내장 객체를 미리 생성하고 초기화하여 제공하기 때문. JSP 컨테이너에 의해 자동으로 추가되고 초기화되기 때문. 내장 객체들은 JSP 페이지의 서블릿 코드로 변환될 때 자동으로 생성되고 초기화되어 '_jspService' 메서드 내에서 사용할 수 있도록 준비됨. 내장 객체의 주요 예시 1) request: 현재 요청에 대한 정보를 가진 HttpServletRequest 객체 HTTP 요청 메시지 정보를 제공한다. 주로 URL에 포함된 사용자 입력 값을 추출하기 위해 이용된다. 2) response: 클라이언트에게 응답을 보내기 위한 HttpServletResponse 객체 HTTP 응답 메시지의 연결 정보를 제..

학교/JAVA 2023.12.13

모바일 웹 서비스 구현을 위한 JSP 웹 프로그래밍 연습문제_06 JSP

01. 프로그래밍 스타일 관점에서 서블릿과 JSP는 어떤 차이점이 있나요? 답: 서블릿은 JAVA 코드 내에서 HTML 을 호출하고, JSP는 HTML에서 JAVA 함수를 호출해서 사용한다. 서블릿 JSP 구조 및 역할 자바 코드 안에 HTML 코드를 작성하는 형태로 구성됨. 주로 비즈니스 로직이나 데이터 처리와 같은 서버 측의 작업을 처리하는 데 사용됨. HTML 코드 안에 자바 코드를 삽입하여 동적인 웹 페이지를 생성하는 데 중점을 둠. 주로 클라이언트에게 보여지는 뷰를 생성하는 데 사용됨. 가독성과 유지보수성 자바 코드와 HTML 코드가 섞여 있어 가독성이 낮을 수 있음. 복잡한 비즈니스 로직이 자바 코드에 섞여 있어 유지보수가 어려울 수 있음. HTML 코드 안에 자바 코드를 삽입하는 형태로, 가..

학교/JAVA 2023.12.13

모바일 웹 서비스를 위한 JSP 웹 프로그래밍 연습문제_05장 서블릿

01. GET 방식의 HTTP 요청을 처리하기 위한 서블릿의 멤버 함수 이름은 무엇인가요? 답: doGet protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // GET 요청 처리 로직 작성 } 02. 쿼리 스트링에서 이름이 name인 파라미터의 값을 추출하기 위한 HttpServletRequest 클래스의 멤버 함수 이름은 무엇인가요? 답: requset.getParameter(); String parameterValue = request.getParameter("name"); 03. 체크 박스 형태의 HTML 페이지로부터 전달되는 입력 값을 ..

학교/JAVA 2023.12.13

컬렉션(ArrayList<String>, Iterator) 연습문제 (ArrayEx02)

• ArrayList를 사용하여 문자열 저장, 그 문자열을 반복문과 Iterator를 사용하여 검색하는 예제 package ArrayList; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; public class ArrayEx02 { public static void main(String[] args) { ArrayList list = new ArrayList(Arrays.asList("HTML", "JAVA", "JSP")); for (String str : list) { System.out.println(str); } Iterator it = list.iterator(); while (it.hasNext(..

학교/JAVA 2023.10.26

컬렉션(ArrayList<String>) 연습문제 (ArrayEx01)

1. ArrayList 클래스 사용 예 1) String 자료형을 저장하는 ArrayList 객체 생성 후 다음 내용을 저장하세요. boolean add(E e) Java, Database, JSP, HTML, JavaScript 2) 저장된 총 객체 수를 구하여 출력하세요. int size() 3) 2번 인덱스의 객체를 출력하세요. E get(int index) 4) 저장된 객체를 모두 출력하세요. 5) 2번 인덱스 객체를 삭제하세요. E remove(int index) 6) 2번 인덱스 객체를 삭제하세요. 7) ArrayList에서 Java 문자열이 있는지 확인(boolean contains(Object o)) 후 삭제(boolean remove(Object o)) 하세요. package ArrayL..

학교/JAVA 2023.10.26

객체와 객체배열 연습문제 (Phone, PhoneManager)

1. Phone 클래스를 작성하시오. 1) 필드: 이름(name), 전화번호(tel) 2) 생성자: 생성시 전달받은 값으로 이름, 전화번호 필드를 초기화 함 3) toString() 메소드 정의 package lab1; public class Phone { private String name; private String tel; public String getName() { return name; } public String getTel() { return tel; } @Override public String toString() { return "Phone [name=" + name + ", tel=" + tel + "]"; } public Phone(String name, String tel) { t..

학교/JAVA 2023.10.26