/ LECTURE

JSP - Intro

이 페이지는 다음에 대한 공부 기록입니다

JAVA(자바), Python(파이썬) 기반의

AI 활용 응용 소프트웨어 개발자 양성 과정

2021.11.10. ~ 2022.05.18.

찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요

41일차 수업

========복습========

DOM

document를 객체 명으로 전역으로 선언 되어 있음

HTML 요소들을 선택해서 동적으로 수정 or 변경, 데이터 가져오기 등 가능

Node

document 선택 대상(요소, 속성, 문서, 텍스트, 주석 등)

대상에게 어떤 변화를 적용

관계로 선택 가능(child, of type 등등)

속성으로 선택 가능(id, class 등등)

Event

마우스, 키보드, form, 컴퓨터에서 일하는 모든 행동

======== 끝 ========

41일차 수업

JS

파일 내의 데이터는 등록, 수정, 변경 가능하나 내용을 다른 파일로 전달할 때 한계가 있음

  • 서버 사이드 스크립트 언어의 도움이 필요

과정 : 특정 페이지 » 정리된 데이터 » submit(서버의 관여) » 다른 페이지

웹 프로그래밍

기초 지식

인터넷 : 지구에 있는 모든 컴퓨터를 하나의 시스템처럼 연결해주는 통신망

  • www : 인터넷 서비스 중 하나

웹 : HTML 문서 + http(공개화 해주는 기술)

서버 : 인터넷 시스템을 제공하는 프로그램이나 컴퓨터

  • 항상 실행되야 하고, 21~24도 유지, 습도 50 내외, UPS 정전 나도 30분~2시간 버텨줌

클라이언트 : 인터넷 시스템을 이용하는 사용자나 사용자의 기기

웹브라우저 : 내용을 우리가 알 수 있도록 변화시켜주는 프로그램

http : 서버와 클라이언트 간에 데이터를 주고 받기 위한 통신 약속

  • HyperText Transfer Protocol

Ip : 웹서버의 주소, 255.255.255.255 까지 등록

DNS : ip를 우리가 알기 쉽게 단어로 바꿔주는 서비스, Domain Name Service

인터넷 과정

  • 요청 : 클라이언트(웹브라우저)가 URL 형태의 http 요청»> 웹 서버

  • 응답 : 웹 서버가 해당 파일 전송 » 클라이언트 응답 받은 파일을 화면에 실행

서버

  • 웹 서버 : 정적인 페이지(HTML, image, CSS 등), Apache 등

  • 앱 서버 : 로그인 등 DB의 데이터를 처리하고 결과를 전달, tomcat, jboss 등

JSP

Java Server Page, HTML 내에서 자바 코드를 삽입하여 서버에서 동적으로 웹페이지를 생성하거나 브라우저를 실행할 수 있도록 돕는 언어

자바 언어를 기반으로 하는 스크립트 언어

서블릿 표준을 따름

HTTP 프로토콜에 따라 클라이언트 요청을 처리하고 응답

자바 언어의 특성인 플랫폼 독립성의 장점

과정

클라이언트가 jsp 파일을 요청하면, java파일로 변환 후 컴파일을 거쳐서 실행결과를 전송

동일한 요청이 들어오면 서블릿 클래스 파일만 바로 실행하여 기존 CGI방식보다 효율성을 높임

<%@ page language=”java” contentType=”text/html;charset=”UTF-8” pageEncoding=”EUC-KR”%>
<!--
Directive
jsp페이지에 대한 정보를 저장, lang은 java가 default 생략가능
contentType 을 통해 jsp 에서 생성할 문서 형식, 문자셋 설정
이 페이지 자체의 문자셋을 지정하고자 할 때는 pageEncoding에 지정
-->
<%! String name; %>    <!--Declaration, 멤버변수, 함수 선언 -->
<% name = “홍길동”;%> <!--Scriptlet, 자바 코드 기술 부분 -->
<%-- JSP 주석 --%>
<% // Java 주석 %>
<%=name%>    <!--Expression, 결과값 출력 -->

Error Page

<%@ page errorPage=“error.jsp”%>
<!-- 예외가 발생하면 error.jsp파일을 실행한다 -->
<%@ page isErrorPage=“true”%>
<!--
error.jsp는 다른 페이지의 예외를 받는 에러페이지로 지정되어야 함
위의 방법은 각 에러 상황에 따른 페이지를 설정하지 못하는 단점이 있음
-->

<!-- web.xml에서 각 에러별 에러페이지를 지정할 수 있음, 에러 코드별 설정 -->
<error-page>
    <error-code>500</error-code>
    <location>error.jsp</location>
</error-page>
<!-- 에러 타입별 설정 -->
<error-page>
    <exception-type>java.lang.SQLException</exception-type>
    <location>error.jsp</location>
</error-page>
<!-- 에러페이지 우선순위 : internal(페이지 내) > external(type) > external(code) > 웹컨테이너 기본 -->

Error code

4xx : 클라이언트 문제

  • 403 : 접근 권한이 없는 것

  • 303 : 찾을 수 없는 것

5xx : 서버 문제

  • 500 : 서버의 내부 코드가 문제

Form


<form action=“a.jsp” method=“get”>
    // form 태그의 action 속성으로 지정한 페이지 요청, 방식은 get으로
    <input name=“User” type=“text”><br>
    <input name=“Pass” type=“password”><br>
    <input type=“submit” value=“login”>
    <form>

URL 뜯어보기

위의 과정을 거쳐 웹서버가 응답하면 해당 URL로 이동

http://localhost:8080 /First/01_basic/01_next.jsp?User=kim&pass=1234

http : 프로토콜

localhost : 서버명(도메인 명)

8080 : 서버의 포트번호

/First/01_basic : 해당 디렉토리

01_next.jsp : 요청한 파일명

‘?’ 뒤 : 전송할 데이터(파라미터), 전송할 데이터 사이의 구분은 &으로 함

  • 작성된 input 태그 순으로 해당 name속성의 “속성값= 입력값”으로 구성

  • 데이터를 가져올 때는 request.getParameter(속성값); 으로 접근

Get Post
URL 의 뒷부분에 파라미터를 전송 URL 뒷부분 전송 아님
HTTP 프로토콜의 헤더 영역에서 전송 HTTP 프로토콜의 데이터 영역에서 전송
전송 데이터 길이 제한 전송 데이터 길이 제한 없음
전송데이터 노출 전송데이터를 감출 수 있음