Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

어? 이게 되네

2022.05.16. 월요일 이공계 전문기술 연수사업 (JSP) 본문

TIL

2022.05.16. 월요일 이공계 전문기술 연수사업 (JSP)

토끼귀에진주귀걸이 2022. 5. 16. 20:37

오늘 배운 것

html
ㄴ정적인 웹문서
ㄴ모든 사람이 언제라도 맨날 똑같은 내용을 보는 것

JSP(Java server page)
ㄴ자바 언어를 이용하여 서버의 문서를 만들기 위한 기술
ㄴ동적인 웹문서(동적인 html을 생성)
ㄴ사용자마다 사용자의 요청하는 요구에 따라 서로 다른 내용을 보는 것
ㄴ프로그램에 의해서 html을 생성해내는 기술(웹프로그래밍)- 이것을 자바 기반으로 만들겠다는 뜻!

------------------------------------------------------------------------
웹 프로그래밍이란?
ㄴ사용자가 웹 브라우저를 통해 필요한 정보를 서버에게 요청하면 
서버는 요청한 정보를 db에서 발췌하여 요청한 사용자에게 해당 정보를 제공하는 유기적인 관계로
이루어진 웹 프로그램의 구동을 의미

웹 어플리케이션
ㄴ웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 의미
ㄴ웹서버(WAS-거의 아파치 사용)/클라이언트로 구성


웹 서버와 클라이언트의 동작 원리
클라이언트-서비스요청-https-웹서버-https-서비스응답-클라이언트
클라이언트의 동작 중 request와 response는 jsp의 내장객체로 클라이언트의 응답에 의한 설정임

웹서버,클라이언트,라우터,http

http
ㄴ인터넷에서 사용자가 웹 어플리케이션 서비스를 요청하고 웹 서버는 사용자로부터 요청받은 해당 서비스를 제공해주는 과정을
원활하게 수행하기 위한 제반 요건을 표준화한 프로토콜(무상태 서버-한 번 요청하면 거기에 대해 응답을 하고 연결이 끊김)

https
ㄴ이 요청이 바람직한 요청이냐고 한 번 더 묻는 보안이 강화된 프로토콜

서블릿
ㄴ서블릿 규약에 따라 제작된 클래스로 서버에서 웹페이지 등을 동적으로 생성하거나 전송되는 데이터 처리를 수행하기 위해 자바로 작성된 프로그램

mvc패턴
ㄴ사용자가 어떤 서비스를 요구하는지,모델,뷰

mvc패턴을 적용해서 웹 어플리케아션을 구현하다 보니 서블릿이 다시 중요해짐

웹 컨테이너
ㄴ웹 서버의 구성요소 중 하나로 자바 서블릿과 상효작용을 수행함
웹 컨테이너는 서블릿의 생명주기를 관리하고 rul과 특정 서블릿을 맵핑하여 url요청이 올바르게 접근할 수 있도록 보장함(우리가 사용하는 것은 tomcat)

웹서버 =>웹컨테이너 =>http/https =>프로그램 실행
아파치 jsp및 서블릿

jsp는 서블릿의 단점을 보완하기 위해 스크립트 방식(<% %>)으로 도입
jsp와 서블릿의 차이
ㄴ서블릿은 자바 클래스고 jsp는 html문서 안에 자바 언어를 삽입
그런데, jsp를 요청하면 서블릿이 만들어짐.

그런데 점점 jsp의 중요성이 점점 떨어지고 있다
그래서 스프링 마이바티스에서 jsp를 안 쓰고 어떤 환경으로 개발하게 되는지 알게됨

쓰레드가 되려면
쓰레드를 상속받거나 runnable인터페이스를 상속받듯이
(런 오버라이딩)
그림을 그리려면 jframe을 상속 받듯이
서블릿이 되려면 httpservlet을 상속받아야 함

주소표시줄에 사용자가 요청한 모든 정보를 갖고 있는 객체가 request
응답을 위한 객체 response

jsp문서의 구성요소
<%%> 스크립틀릿 : 모든 자바 문법을 표현할 때 사용 //여기에서는 메소드를 선언하지 못하는데 왜 모든 자바 문법이 올 수 있다고 하는 거지?
<%-- --%> 주석 : jsp문서 안에서 주석처리할 때 사용
<%@ %> 지시문 : 웹페이지에 대한 변환정보를 웹 서버에게 전달할 때 사용(import같은 거)
<%! %> 선언문 : 메소드를 정의하거나 자바 변수를 선언할 때만 사용
<%= %> 표현문 : 브라우저에 무언가를 출력할 때 사용

스크립틀릿 안에서 변수를 선언하면 지역변수
서블릿 안에서 변수를 선언하면 멤버변수...? 이게 무슨 뜻이지

선언문에 표현한 변수나 메소드는 서블릿 클래스의 멤버가 되었고
스크립틀릿에 표현한 것은 서블릿의 실제로 수행하는 메소드 바디 안에 서블릿의 지역변수가 되었음!!!
이거 이해하자!!!!!!!!!!!!!!!!

errorPage
ㄴ에러가 나면 에러가 담당하는 문서로 가게 해줌.
isErrorPage

사용자가 form태그에 입력한 정보를 갖고오는 것은 request라는 내장객체임
page isErrorPage="true"라고 설정된 jsp에서는 exception이라는 내장객체가 생성됨

배열의 인덱스는 0부터 시작하고
배열의 길이는 1부터 시작함

오류코드
500오류 : 자바 문법을 실행하다가 나타나는 오류
예외 객체인 exception을 가질 수 있음(실행하다가 나타나는 거니까)
404오류 : 존재하지 않는 주소를 요청했을 때 발생하는 오류
아예 문서 자체가 존재하지 않기 때문에 예외 객체인 exception을 가질 수 없음

!DOCTYPE html
ㄴhtml5버전인 것을 알려줌

쿼리스트링(블랭크 없이 쳐야함)
http://localhost:8080/day0516_b/imageTest03.jsp?fname=ball2.jpg&width=50&height=100

만약에 프로그램에 의해 동적인 작동이 요구될 경우 jsp로 웹페이지를 작성해야 함

----------------------------------------------------------------------------------------
폼 태그 동작 원리
폼태그란?
사용자에게 정보를 입력받을 때 사용 (전송,전달의 과정으로 실행됨)
<form action="파일 또는 url(서블릿이나 jsp가 옴)" method="get 또는 post">
<input 속성1=값1 속성2=값2 ... >
<select>...</select>
<textarea>...</textarea>
</form>

//input 태그는 종료태그 없이 반드시 단독으로 사용함

input 태그의 속성값
type => text,radio,checkbox,password,hidden,file,button,submit,reset,number,email,url 등등등...
name => 입력 양식을 식별하기 위해 이름을 설정
value => 입력 양식의 초기값을 설정함(이미 있는 정보를 출력 해줄 때)
readonly => 읽기 전용으로만 사용할 때
maxlength,size,disabled,checked,required,pattern,placeholder,autofocus ... 등등이 있음!

<fieldset>은 뭐지?

<select> 태그 - 콤보(size=1이거나 생략하면)와 리스트(size가 0이상이면)로 표현 가능
<select name="이름">
<option value="값">항목</option>
<option value="값">항목</option>
</select>

select에 올 수 있는 속성 : name,size,multiple
option(자식 노드)에 올 수 있는 속성 : value,selected,disabled

<textarea>태그 (공백이 없도록 쓴다)
ㄴ여러 줄의 텍스트를 입력할 수 있는 폼
<textarea cols="너비값" row="높이값"></textarea>
캐리지리턴 문자가 뭔지, textarea wrap 속성에서 어떻게 사용되는지

request 내장 객체의 메소드
getParameter(String name)
getParameterValues(String name)
//이 때 매개변수 name은 name값이랑 동일해야 함! 
<%= %> 자바 문법에 의한 결과를 출력할 때 사용(표현문)

 

오늘 헷갈린 것

  • jsp안에서 loop 돌리는 법! html문법이랑 합쳐져서 헷갈린다...
  • 선언문에 표현한 변수나 메소드는 서블릿 클래스의 멤버가 되었고
    스크립틀릿에 표현한 것은 서블릿의 실제로 수행하는 메소드 바디 안에 서블릿의 지역변수가 되었음                   이거 이해했으니까 암기하기

오늘 한 생각

본격적으로 플젝 기획 시작했다..

요즘 체력이 딸리는게 느껴진다 ㅠㅠ 매일 유튜브 한 개라도 홈트하고 자자 ...

여태 노잼 html css배우느라 티스토리 포스팅 소홀히 했는데

다시 이제부터 또 시작이다 !