JSP
자바 웹서버프로그램
사용자: 별도의 설치 없이 프로그램을 사용할 수 있기 때문에 접근성이 용이
개발자: 사용자용 프로그램을 별도로 제작하지 않고, HTML을 이용하여 사용자UI를 구축
개발에 소요되는 시간과 노력이 줄어듬
JSP 웹어플리케이션의 장점
1. 풍부한 java API 를 사용하여 제작됨
2. JSP기반의 웹어플리케이션은 특정 운영체제가 아니더라도 호환성의 문제가 없음
3. 실제 코드가 프로그램에서 노출되지 않기 때문에 보안상의 장점이 있음
URL
프로토콜 : 네트워크상에서 약속한 통신규약 -> HTTP(웹), FTP(파일전송), (SMTP, POP)(이메일), DHCP
IP주소 : 컴퓨터를 특정할 수 있는 주소
PORT번호 : 컴퓨터안에서 동작하는 프로그램 번호
port번호 찾는법 : cmd -> NETSTAT -ANO
DNS : IP주소를 인간이 쉽게 외우도록 맵핑한 문자열
http요청과 응답
브라우저가 서버의 페이지를 요청하면 서버는 해당 파일을 찾은 뒤 HTTP응답을 통해 클라에 전송하는 방식으로 사용자의 요청을 처리함
서버에서 전송된 페이지를 응답페이지라고 하며, 브라우저는 이 응답페이지를 해석해서 화면에 보여줌
웹서버 : 클라의 요청에 의해 정보를 제공해주는 서버
웹브라우저 : 웹서버에 정보를 요청하고 웹서버로부터 정보를 받는 매개체
JSP (JAVA SERVER PAGEES)
JSP는 HTML페이지를 만들기 위한 방법중 하나
사용자가 코드를 작성하고 컴파일 하는것이 아닌 서버에서 실행시킬수 있음
웹서버에 의해 서블릿으로 변환된 다음 실행됨
JAVA SERVLETS
서블릿은 서버에서 실행되는 자바 프로그램
JSP 환경구축
1. -> window ->> preference ->검색 encoding -> css, html, jsp, workspace (UTF-8로 변경 )
2. WAS설치 (web application Software) 엔진x, jeus, tomcat,등등
->Tomcat 9 Software 다운 -> 맥은 tar.gz
3. 다운받은 톰켓은 이클립스의 workspace가 있는 폴더에 압축해제(여기에풀기)
4. 이클립스 하단의 server -> create new server -> apache 톰켓 버전
-> -name은 건들필요없음 -tomcat directory -톰켓의 위치 지정
jre version은 jre (컴퓨터에 깔려있는 버전으로 설정)
5. overview -> server locations -> use tomcat installation
6. overview -> server options -> publish module contexts to separate XML files
7. 웹서버의 포트는 8000번대로 사용함
8. 저장 (control + S)
9. 서버우클릭 start (cntr+alt+R)
10. 크롬에 localhost:8181
삭제후 재설치한다면
1. create a new server -> configure runtime environments
---------------------------------------------------------------------
이클립스에서 project를 생성할땐 dynamic web project로 만들어야함
webapp -> 화면에 관련된 내용들
html
Hyper Text Markup Language - 정적인 웹페이지를 만드는 언어
태그로 이루어져 있음
태그의 기본 형식은
<태그이름>문서의내용</태그이름>으로 이루어져있다
<!DOCTYPE html>
<html>
h <head>
h <meta charset = "UTF-8">
h <title>HTML태그</title>
h </head>
b <body>
b </body>
</html>
블럭요소 혹은 인라인 요소로 나뉘어져있음
html form 관련 태그
-input 태그 : 데이터를 입력하기 위해 사용되는 태그
속성으로 태그의 종류를 지정함
-type 속성 : 태그의 종류를 지정
form태그는 사용자가 입력한 값을 그대로 받아서 서버에 전송할때 사용함
<form>
<h3>입력양식</h3>
아이디 : <input type ="text" placeholder = "힌트:8글자" maxlength="8" size="10">
<br>
비밀번호 : <input type = "password" placeholder="힌트:알면뭐하게" size="10">
<br>
checkbox, radio속성은 반드시 name속성을 통일 시켜서 하나의 그룹으로 묶는다
관심분야 :
<input type ="checkbox" name="inter"> JAVA
<input type ="checkbox" name="inter"> JSP
<input type ="checkbox" name="inter"> JS
<input type ="checkbox" name="inter"> HTML
<input type ="checkbox" name="inter"> ORACLE
전공분야 :
<input type="radio" name="major">경영
<input type="radio" name="major">컴퓨터
<input type="radio" name="major">수학
<input type="radio" name="major">기계공학
<br>
<br>
<!-- SELECT - 리스트 형태의 데이터를 사용 -->
지역
<select>
<option>서울</option>
<option>경기</option>
<option>부산</option>
<option>인천</option>
</select>
<br>
<!-- row = 줄 / cols = 칸(초기에 보여주는 빈칸의 크기) -->
<!-- input과는 다르게 여러줄 입력가능 -->
<textarea rows="5" cols="30"></textarea>
<br>
<!-- form 태그의 데이터를 서버로 전송하는 역할 -->
<input type ="submit" value="확인">
<br>
<!-- 버튼 태그를 만드는 방법은 두가지 -->
<input type="button" value ="목록">
<button type="button">목록</button>
<br>
<!-- 첨부파일 추가 -->
<input type="file">
<br>
<!-- reset (페이지를 초기값으로 초기화시켜줌) -->
<input type="reset" value="폼초기화">
<br>
<!-- 숫자만 입력가능한 툴 -->
숫자만 입력가능 <br>
<input type="number" value="숫자입력">
블럭요소 , 인라인 요소
DIV &&& SPAN 둘다 영역을 잡을때 사용함
일반적으로 div를 많이 사용
<!--
블럭요소
1.블럭요소는 블럭의 성질을 가짐
줄바꿈과 블럭크기를 가짐
2.블럭요소는 블럭요소를 자식으로 가질 수 있다
-->
<!--
인라인요소
1. 인라인 요소는 줄바꿈이 없다 (한줄로 출력)
2. 인라인 요소는 인라인 요소만 자식으로 가질 수 있다
-->
<a href="#">인라인</a>
<img src="#">
<b>인라인</b>
<i>인라인</i>
<span>인라인</span>
<strong>인라인</strong>
<small>인라인</small>
* 자바, tomcat 버전이 개발환경과 다를 경우 import시 에러가 날 수 있습니다.
* import시 에러 발생시 처리 방법 (1, 2 수행)
1. 프로젝트 우클릭 -> properties클릭 -> project facet 검색(클릭) -> Runtimes 탭 클릭
-> 현재 설치되어있는 tomcat 체크
2. 프로젝트 우클릭 -> properties클릭 -> bulid path검색(클릭) -> Libraries탭 클릭 ->
-> JRE System Library항목 더블 클릭 -> alternate JRE 버전을 현재 자바버전으로 선택
'jsp' 카테고리의 다른 글
2022_11_29 랜덤 로또번호 만들기 (0) | 2022.11.29 |
---|---|
2022_11_29 JSP Header Footer Section합치기 (0) | 2022.11.29 |
2022_11_29 JSP Expression (0) | 2022.11.29 |
2022_11_29 JSP scriptlet02 (0) | 2022.11.29 |
2022_11_29 JSP Scriptlet (0) | 2022.11.29 |
댓글