728x90
반응형
오늘은 jsp마무리와 spring 시작을 위한 설치시간이었다
<%@ page info="2021-04-12 홍길동" language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--
1. 웹프로그램 실행을 위한 구성요소
1) 웹브라우저 : 클라이언트 영역
2) 웹서버 : 서버 (요청을 받고 결과값 응답하는 역할)
번역이 필요없는 파일 요청시 (브라우저에서 실행이 가능)
HTML, XML, CSS, JavaScript
=> Java, C# , 파이썬 : 반드시 컴파일 후 전송해야함
3) 웹어플리케이션서버 : 번역 => HTML, XML로 변환
==> 톰캣,레진 : 자바번역기 , IIS
4) 데이터베이스 : 오라클 => 웹 사이트에 필요한 데이터를 저장하는 장소
자바 번역
웹브라우저 ===> 웹서버 =======> WAS ==========> 오라클
<======= <====== HTML전환 <======
/main.jsp
/main.do
=======> 형식 자바이므로 톰캣 거침
/main.html은 넘어가지 않음(웹서버가 직접처리)
1. URL => 웹에서는 반드시 => 마지막에 파일명을 전송
/main.do => 서블릿을 찾아라 (DispatcherServlet)
p.37,38(구성요소,URL)
web은 거의 대부분이 Map
map("localhost","211.238.142.181")
map("daum.net","211.000.000.000")
http://localhost(IP,Domain)/JSPTotalLastProject/jsp/total1.jsp
==== =================== ==================================
프로토콜 서버주소 URI
=======================
ContextPath
다른 파일로 데이터 전송
main.jsp?no=1
두개를 전송
main.jsp?no=1&page=1 ==> &로 구분
p.51,56 : 페이지지정자 잘 보기
1. page지시자
contentType=""
=> JSP를 변환할때 (브라우저 : XML,HTML) => 브라우저에서는 XML,HTML외의 모든 것은 txt
HTML => text/html;charset=UTF-8
XML => text/xml;charset=UTF-8
errorPage="" : 오류가 났을 경우 파일 이동(error파일 출력)
=> 404 : 요청한 파일이 없는 경우
500 : 자바 번역에서 오류가 나는 경우
415 : 스프링에서 등장 => 데이터명이 틀릴 경우
mainn.dono=1&page=1
public String main_list(int page,int no)
200
import=""
=> import="패키지.*"
import="패키지.*"
import="패키지.*"
import="패키지.*,패키지.*,패키지.*"
buffer="16kb"
=> JSP번역 => Java => 컴파일 => .class => 실행 => HTML만 출력한다
출력하는 위치를 Buffer(메모리 공간) => 저장된 HTML을 브라우저가 읽어서 출력
기본 8kb(one page : 파일이 하나인데 여러페이지로 나뉨,div여러개)
(framework : spring,struts,jfs, 마이플랫폼) => jsp,asp,aspx,php
***8 프레임워크(레고) VS 라이브러리(완제품)
전자정부프레임워크 , 애니프레임워크
p.65-72
JSP => 자바+HTML
자바영역
<% %> : 스크립트릿 => 일반 자바 코딩, 변수선언, 제어문,연산자,기타 로직
<%= %> : 표현식 => 브라우저에 출력
<%! %> : 선언식 => 메소드를 만들 경우 : 자바를 이용해서 만든다(import => 호풀)
HTML영역
p.72 : 내장 객체(기본 객체)
***전송 방식 (GET,POST) ==>한글 처리
GET: server.xml
POST:
사용 요청==> request
요청 => 요청값 : getParameter(), getParameterValues() ==>p.76
&hobby=a&hobby=b..
(String[] hobby) =>415
IP얻기 =>getRemoteAddr()
요청주소 확인 => getRequestURL() getRequestURI() => p.73
요청값 받기 => 데이터전송 => setAttribute()
요청 처리 => JSP 전체에서 사용 session
setAttribute,getAttribute,invalidate,removeAttribute
결과 응답(HTML로 응답) ==> response
setHeader (p.91), redirect(p.93)
p.96 주석
p.99 JSP처리 과정
브라우저 ===================> was(톰캣) ============> JSP ==========> 자바 변환 ======> 컴파일
========> 실행 =========> 버퍼(html) ====> 브라우저 전송
p.101
TCP
p.115
기본객체
application(p.121) => getInitParameter(),getRealPath()
================== web.xml
p.132
영역
request : 화면이 변경되면 자동 초기화 (요청한 파일에서만 사용)
session : 기간이 지나면 초기화 (프로젝트에 있는 모든 JSP파일에서 사용이 가능)
로그아웃, 브라우저종료
p.134
request,session에 데이터를 추가해서 저장
setAttribute(),getAttribute()
p.141
에러페이지 출력 방법
1. <%@ page errorPage=""> (우선순위)
2. web.xml에 분리
p.157
JSP특정영역에 다른 JSP를 추가할 때 사용 <jsp:include> => Spring(라이브러리:tiles)
<jsp:include> : HTML+HTML
<%@ include %> : Java+Java
<iframe> : HTML안에 HTML첨부
request forward : 값을 가지고 와야 한다
sendredirect : 값을 잊어버리고 와도 된다
p.191
자바클래스 연동
=============
~ VO, ~DAO , ~Manager
====
Bean : 데이터를 모아서 한번에 전송할 목적으로 만든다
p.195
<jsp:useBean> 메모리 할당
p.199
<jsp:setProperty>
p.206
쿠키(클라이언트 브라우저에 저장)
===> 최신방문
===> JSP는 응답시에 response를 이용한다(한번만 사용이 가능)
response => HTML,쿠키
===> 생성, 값얻기, 기간
===> 저장시에 문자열로만 저장이 가능
===> Cookie cookie=new Cookie(키,값)
키 : String
값 : String
===> 저장 기간
setMaxAge(초단위)
===> Cookie[] cookies=request.getCookie()
=> 키 => getName()
=> 값 => getValue()
===> 클라이언트로 전송
response.addCookie(cook명)
p.232
세션(서버에 일부 정보를 저장)
=> 저장
setAttribute()
=> 값 얻기
getAttribute()
=> 해제
invalidate()
removeAttribute()
=> setAttribute(String, Object)
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--
model 2 (MVC)
표현식 : EL
${}
${값} => 자바의 일반 변수가 아니다
====
request.getAttribute() : 우선순위
session.getAttribute() : 2번째 순위
application.getAttribute() : 3번째 순위
형식)
request.setAttribute("a","aaa1")
request.setAttribute("a2","aaa2")
${a} ===> aaa1
${requestScope.a} => <%=request.getAttribute("a")%>
${sessionScope.a} ==> 키 값 다르면 생략 가능 ${a2}
연산자
산술연산자 (산술만 처리)
${"1"+"2"} =>3
${"1"+null} => 1 (null은 0으로 취급)
${"1"+"a"} => 오류
${"1"+="2"} => 12
${3/2} => 1.5 실수
객체호출
${vo.title} =>${vo.getTitle()}
p.292 JSTL
core : 제어문, URL, 변수 설정
<c:if> : 조건문
<c:forEach> : 반복문
<c:choose> : 다중 조건문
<c:redirect> : sendRedirect()
<c:set> : request.setAttribute()s
fmt : 변환(숫자, 날짜) : 날짜 변환
<fmt:formatDate value="" pattern="yyyy-MM-dd">
SimpleDateFormat()
<fmt:formatNumber value="" pattern="000,000">
fn : String 메소드
${fn:substring(값,0,10)}
18장 읽기 반드시 필독!!!!
14장 (데이터베이스)
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
</body>
</html>
스프링은 진짜 설치만 해서..
아마 내일부터 본격적인 수업을 하게 될것같다
블로깅 하루 휴식!!
728x90
반응형
'programming > Gukbi' 카테고리의 다른 글
국비 교육 75일차 - Constructor, Annotation, Interface 복습 (0) | 2021.04.13 |
---|---|
국비 교육 75일차 - spring (Container, DI, DB연동) (0) | 2021.04.13 |
국비 교육 72일차 - QnA 게시판 (0) | 2021.04.11 |
국비 교육 71일차 - 파일 업로드 (0) | 2021.04.09 |
국비 교육 69일차 - 찜목록, 댓글 달기 수정 삭제 (0) | 2021.04.07 |