05_Server (04. JSP 프로그래밍 구현)34 Formatting Library, Function Library ㅁ JSTL의 대표적인 라이브러리 종류- jstl 내에서도 라이브러리 종류가 나뉜다. 태그를 제공하는 라이브러리들이다.- Core Library : 변수와 제어문 등의 로직과 관련된 문법 제공 (매우 중요)- Formatting Library : 숫자, 날짜 및 시간 데이터의 출력 형식관련 문법 제공- Function Library : EL 구문 내에서 사용 가능한 함수 제공 - JSTL은 EL 구문과 함께 쓰는거라 세트로 불려진다. EL/JSTL ㅁ index.jsp %@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>DOCTYPE html>html>head>meta charset="UTF-.. 2024. 10. 8. JSP Action Tag ㅁ JSP를 이루는 구성인자 (1) 스크립트 원소- 스크립틀릿() : 자바코드 작성 (변수 선언, 제어문 등)- 표현식() : 자바 값 출력- 선언식() : 메소드 및 멤버변수 정의 (2) 지시어- page 지시어 : jsp에 대한 정보 기술- include 지시어 : 다른 jsp를 포함시키는 기술- taglib 지시어 : 외부 라이브러리를 해당 jsp에서 사용할 수 있게 하는 기술 (3) 액션 태그- xml 태그 방식을 이용해서 기존의 jsp 문법을 확장하는 기술- 표준 액션 태그 : 별도의 라이브러리 필요없이 바로 작성 가능. 태그명에 jsp: 접두어가 붙는다.- 커스텀 액션 태그 : 별도의 라이브러리 등록을 통해 사용 가능. 태그명에 라이브러리 종류별 접두어가 붙는다. ㅁ index.js.. 2024. 10. 7. [EL&JSTL] EL ㅁ EL&JSTL- EL은 JSP의 내장 기능이다. - JSTL은 라이브러리다. - EL(Expression Language)과 JSTL(JavaServer Pages Standard Tag Library)은 JSP(JavaServer Pages)에서 동적인 콘텐츠(예: 사용자의 요청에 따라 바뀌는 내용)를 처리하기 위해 사용하는 기능입니다. EL(Expression Language):JSP 페이지에서 자바 객체의 값을 쉽게 참조하고 출력할 수 있게 해줍니다.${} 표기법을 사용하여 자바 코드 없이도 데이터를 출력하거나 조건을 처리할 수 있습니다. 예를 들어, ${user.name}은 user 객체의 name 속성 값을 출력하는 방식입니다.JSTL(JavaServer Pages Standard Ta.. 2024. 10. 7. [AJAX] 1. ajax를 이용한 비동기식 요청 ㅁ ajax를 이용한 비동기식 요청- (1) 요청시 값을 전달하고, 문자열 데이터로 응답하기- (2) 요청시 값을 전달하고, 여러개의 응답데이터를 JSON객체 이용해서 응답하기- (3) 조회 요청 후 조회된 데이터가 vo객체라는 가정하에 응답하기- (4) 조회 요청 후 조회된 데이터가 List라는 가정하에 응답하기 ㅁ 새로운 프로젝트를 만들지는 않고, webApp폴더에서 그대로 진행한다. - webApp/src/main/webapp에 ajax_index.jsp를 만든다. - 에이잭스라고 많이들 부른다. - 서버를 키고 url에 위와 같이 요청해서 이 페이지가 잘 뜨는지 먼저 확인한다. ㅁ 이때까지 한 요청과 응답은 다 동기식 방식으로 구현했었다. %-- * 동기식 .. 2024. 9. 29. 실제 프로젝트 작업 ㅁ 패키지, 클래스 생성 - 소스폴더인 src/main/java에 패키지를 만든다. - 이 때 세번째 까지는 com.br.web으로 시작한다. 패키지 첫번째 레벨, 두번째 레벨은 주로 도메인의 역순이다라는 가정 하에 작성했고, 세번째 레벨에 주로 어플리케이션명을 따서 쓴다. - 지금 web이라 한 이유는 나중에 스프링 프로젝트를 개발하게 되면 context path가 세번째 레벨로 잡히게 되어 있다. - 네번째 레벨부터 쪼개진다.src/main/java ㄴ com.br.web.member.controllerㄴ com.br.web.member.model.voㄴ com.br.web.member.model.serviceㄴ com.br.web.member.model.daoㄴ com.br.web.common.t.. 2024. 9. 22. JSP/SERVLET 정리 [1.SERVLET] [2.JSP] [3.Servlet과 JSP 결합] [1.SERVLET]ㅁ contextPath 까지의 URL이 곧 webapp 폴더를 가리킨다. ㅁ 이클립스를 껐다 키면 서버도 종료된다.- 개발이 끝나고 서버에 배포가 되는 실 서버는 사용자들이 24시간 이용할 수 있게 24시간 열려 있다. - 지금 우리는 개발서버를 뒀다. 개발 서버는 스타트를 해줘야 접속할 수 있다. ㅁ 화면구현 파일 열어보기- http://localhost:8888/servlet/a_lifecycle/main.html를 브라우저에 입력하면 방금 우리가 만든 main.html 문서가 보인다. - .html뿐 아니라 .jsp 파일도 이렇게 열어볼 수 있다. - 그런데 는 너무 길다. 사실 이미 index... 2024. 9. 21. X [4-3] 사진게시판서비스 상세조회요청(슬라이드이미지) ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) https://youtu.be/fUY6laUeUmo 2:42:50- 일반게시판서비스_수정요청 https://youtu.be/ukupQ8kvGcY 5:09:26 ㅁ 사진게시판서비스 https://youtu.be/BNY5Kf46T38 4:00:55 - 사진게시판서비스_작성요청(다중파일업로드)- 사진게시판서비스_목록조회요청(썸네일형식)- 사진게시판서비스_상세조회요청(슬라이드이미지) ㅁ AJAX- AJAX- 아이디 중복체크https://youtu.be/Ny-JQHXFJJE 3:48:12 2024. 9. 11. X [4-2] 사진게시판서비스 목록조회요청(썸네일형식) ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) https://youtu.be/fUY6laUeUmo 2:42:50- 일반게시판서비스_수정요청 https://youtu.be/ukupQ8kvGcY 5:09:26 ㅁ 사진게시판서비스 https://youtu.be/BNY5Kf46T38 4:00:55 - 사진게시판서비스_작성요청(다중파일업로드)- 사진게시판서비스_목록조회요청(썸네일형식)- 사진게시판서비스_상세조회요청(슬라이드이미지) ㅁ AJAX- AJAX- 아이디 중복체크https://youtu.be/Ny-JQHXFJJE 3:48:12 2024. 9. 11. X [4-1] 사진게시판서비스 작성요청(다중파일업로드) ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) https://youtu.be/fUY6laUeUmo 2:42:50- 일반게시판서비스_수정요청 https://youtu.be/ukupQ8kvGcY 5:09:26 ㅁ 사진게시판서비스 https://youtu.be/BNY5Kf46T38 4:00:55 - 사진게시판서비스_작성요청(다중파일업로드)- 사진게시판서비스_목록조회요청(썸네일형식)- 사진게시판서비스_상세조회요청(슬라이드이미지) ㅁ AJAX- AJAX- 아이디 중복체크https://youtu.be/Ny-JQHXFJJE 3:48:12 2024. 9. 11. X [3-5] 일반게시판서비스 수정요청2 ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) https://youtu.be/fUY6laUeUmo 2:42:50- 일반게시판서비스_수정요청 https://youtu.be/ukupQ8kvGcY 5:09:26 ㅁ 사진게시판서비스 https://youtu.be/BNY5Kf46T38 4:00:55 - 사진게시판서비스_작성요청(다중파일업로드)- 사진게시판서비스_목록조회요청(썸네일형식)- 사진게시판서비스_상세조회요청(슬라이드이미지) ㅁ AJAX- AJAX- 아이디 중복체크https://youtu.be/Ny-JQHXFJJE 3:48:12 2024. 9. 11. X [3-4] 일반게시판서비스 수정요청1 ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) https://youtu.be/fUY6laUeUmo 2:42:50- 일반게시판서비스_수정요청 https://youtu.be/ukupQ8kvGcY 5:09:26 ㅁ 사진게시판서비스 https://youtu.be/BNY5Kf46T38 4:00:55 - 사진게시판서비스_작성요청(다중파일업로드)- 사진게시판서비스_목록조회요청(썸네일형식)- 사진게시판서비스_상세조회요청(슬라이드이미지) ㅁ AJAX- AJAX- 아이디 중복체크https://youtu.be/Ny-JQHXFJJE 3:48:12 2024. 9. 11. [3-3] 일반게시판서비스 작성요청(파일업로드) ㅁ 첨부파일 업로드 ㅁ 일반게시글 목록페이지 - 로그인 상태면 '등록하기' 버튼이 보인다.'등록하기' 버튼을 누르면 일반게시글 작성페이지로 간다. ㅁ 일반게시글작성 페이지를 토대로 boardWrite.jsp를 만든다. %@ page import="java.util.List" %>%@ page import="com.br.web.board.model.vo.Category" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> % ListCategory> list = (ListCategory>)request.getAttribute("list");%> DOCTYPE html>html>h.. 2024. 9. 11. [3-2] 일반게시판서비스 목록조회요청(페이징처리) ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리) - 일반게시판서비스_작성요청(파일업로드) - 일반게시판서비스_수정요청 ㅁ src/main/webapp/views/board에 boardList.jsp를 만든다. - "일반게시판목록페이지.html"의 body 태그 안의 구문들을 복붙하고, header와 footer를 include한다. - 페이징바를 부트스트랩에서 긁어왔는데, 매번 다르게 동적으로 제작해야 한다.- 이 페이지(일반게시글목록페이지)에 올 때 게시글 데이터와 페이징 바 제작을 위한 데이터가 필요하다. - 헤더의 메뉴바에서 '일반게시판' 클릭시 /list.bo라는 url mapping값을 가지는 서블릿을 호출한다.- 이때 딱히 몇번 페이지를 요청하겠다고 데이터를 넘기지.. 2024. 9. 11. [3-1] 일반게시판서비스 기본세팅 ㅁ 일반게시판서비스- 일반게시판서비스_목록조회요청(페이징처리)- 일반게시판서비스_작성요청(파일업로드) - 일반게시판서비스_수정요청 ㅁ 현재 일반게시판서비스 화면 구현 현황 - src/main/webapp/views/board 폴더에 일반게시판 목록, 상세, 수정, 작성페이지와 사진게시판 목록, 상세, 작성페이지들이 있다. 이건 받았다. - "일반게시판목록페이지.html"이다.- 공지사항 목록페이지와 비슷해보이지만 공지사항 목록페이지에는 페이징처리를 하지 않았다.NOTICE 테이블의 전체 데이터를 싹 다 조회해왔었다.- 만약 NOTICE 테이블에 데이터가 1000개 있다면 공지사항 목록페이지에 1000개의 게시글이 다 보여질 것이다.다수의 데이터가 있을 수 있기 때문에 게시판 형태.. 2024. 9. 11. [2-5] 공지사항서비스 삭제요청 ㅁ 공지사항서비스- 공지사항서비스_목록조회요청- 공지사항서비스_작성요청- 공지사항서비스_수정요청- 공지사항서비스_삭제요청 ㅁ 공지사항 목록페이지 %@ page import="java.util.List" %>%@ page import="com.br.web.notice.model.vo.Notice" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> % ListNotice> list = (ListNotice>)request.getAttribute("list");%> DOCTYPE html>html>head>meta charset="UTF-8">title>Insert title hereti.. 2024. 9. 11. [2-4] 공지사항서비스 수정요청 ㅁ 공지사항서비스- 공지사항서비스_목록조회요청- 공지사항서비스_작성요청- 공지사항서비스_수정요청- 공지사항서비스_삭제요청 ㅁ 공지사항 수정페이지 - 공지사항 상세페이지는 만들지 않고, 하단에 바로 보여지게끔 구성했다. (부트스트랩 collapse를 이용해서 제목행을 클릭하면 내용행이 보여지게)- 대신 loginUser != null && loginUser.getUserId().equals(n.getNoticeWriter()) 이런 조건으로로그인 되어있고, 로그인한 유저아이디가 글 작성자 아이디와 같으면'수정하기', '삭제하기' 버튼이 보여지게끔 noticeList.jsp를 구성했었다. - '수정하기', '삭제하기' 버튼에 접근하려면 이미 조건문이 걸려있어서 updateNotice, de.. 2024. 9. 10. [2-3] 공지사항서비스 작성요청 ㅁ 공지사항서비스- 공지사항서비스_목록조회요청- 공지사항서비스_작성요청- 공지사항서비스_수정요청- 공지사항서비스_삭제요청 ㅁ 공지사항 목록 페이지에서 '등록하기' 버튼을 누르면 공지사항 작성 페이지로 이동한다. - 아래는 /webApp/src/main/webapp/views/notice/noticeList.jsp다. %@ page import="java.util.List" %>%@ page import="com.br.web.notice.model.vo.Notice" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> % ListNotice> list = (ListNotice>).. 2024. 9. 10. [2-2] 공지사항서비스 목록조회요청 ㅁ 공지사항서비스- 공지사항서비스_목록조회요청- 공지사항서비스_작성요청- 공지사항서비스_수정요청- 공지사항서비스_삭제요청 ㅁ header.jsp - header.jsp에 있는 공지사항이라는 메뉴 클릭시 공지사항 목록 페이지가 뜨게끔 한다. %@ page import="com.br.web.member.model.vo.Member" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">script src="h.. 2024. 9. 10. [2-1] 공지사항서비스 기본세팅 ㅁ 공지사항서비스- 공지사항서비스_목록조회요청 - 공지사항서비스_작성요청 - 공지사항서비스_수정요청- 공지사항서비스_삭제요청 ㅁ 개발은 화면설계, 화면구현 후 각 화면별로 어떤 쿼리가 실행될지 예상해서 쿼리도 미리 작성할 수 있어야 한다.- 이게 제일 좋은 방식이다. 쿼리를 먼저 작성해두면 이 페이지에서 요청을 보낼 때 어떤 데이터가 필요한지 알 수 있다. ㅁ 패키지, 클래스, xml 파일을 만든다. ㅁ 공지사항 서비스에서는 작성, 수정, 삭제, 조회 기능을 넣는다. 그에 맞는 쿼리를 먼저 작성해본다. - 아래는 /webApp/src/main/java/db/mappers/notice-mapper.xml이다. - notice-mapper.xml 문서의 유형을 프로퍼티스 유형으로 해야 한.. 2024. 9. 10. 깃에서 프로젝트 내려받고 '추가설정' ㅁ 깃에서 '05_jspServlet-workspace'를 zip으로 내려받았다.- import하고 초기설정들을 했지만 빨간 x가 뜨고 메인페이지는 보여지지만 다른 페이지들은 '서블릿'을 찾을 수 없다고 뜸. (404 에러) ㅁ 깃에 없는거 (1) src/main/webapp/assets에 image 폴더만 있다. + ojdbc6.jar- css, js, lib 폴더가 없다. css, js, lib 폴더를 만든다. (근데 다 비어있다.)- src/main/webapp/assets/lib 폴더가 아닌 src/main/webapp/WEB-INF/lib 폴더에 ojdbc6.jar을 c:\dev에서 복붙해온다. (2) driver.properties 파일은 환경설정 파일이라 깃에 없다.- src/main/j.. 2024. 9. 10. [1-6] 회원서비스 비번변경요청, 회원탈퇴요청 ㅁ 회원서비스- 회원서비스 개발 세팅 - 회원서비스_로그인 - 회원서비스_로그아웃 - 회원서비스_회원가입페이지로이동 - 회원서비스_회원가입요청 - 회원서비스_마이페이지요청- 회원서비스_정보변경요청 - 회원서비스_비번변경요청- 회원서비스_회원탈퇴요청 ㅁ /webApp/src/main/webapp/views/member의 myInfo.jsp를 킨다. - 아래는 myInfo.jsp다. %@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>DOCTYPE html>html>head>meta charset="UTF-8">title>Insert tit.. 2024. 9. 9. [1-5] 회원서비스 마이페이지요청, 정보변경요청 ㅁ 회원서비스- 회원서비스 개발 세팅 - 회원서비스_로그인 - 회원서비스_로그아웃 - 회원서비스_회원가입페이지로이동 - 회원서비스_회원가입요청 - 회원서비스_마이페이지요청- 회원서비스_정보변경요청- 회원서비스_비번변경요청- 회원서비스_회원탈퇴요청 ㅁ header.jsp에서 마이페이지로 이동 요청한다. %@ page import="com.br.web.member.model.vo.Member" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> link rel="stylesheet" href="https://cdn.jsdelivr.ne.. 2024. 9. 9. [1-4] 회원서비스 회원가입 페이지로 이동, 회원가입 요청 ㅁ 회원서비스- 회원서비스 개발 세팅 - 회원서비스_로그인 - 회원서비스_로그아웃 - 회원서비스_회원가입페이지로이동 - 회원서비스_회원가입요청- 회원서비스_마이페이지요청- 회원서비스_정보변경요청- 회원서비스_비번변경요청- 회원서비스_회원탈퇴요청 ㅁ 회원가입페이지로 이동 - 아래는 header.jsp다. %@ page import="com.br.web.member.model.vo.Member" %>%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> link rel="stylesheet" href="https://cdn.jsdelivr.n.. 2024. 9. 8. 작업 현황 공유용 스프레드시트 ㅁ 프로젝트 진행할 때 팀원들이 각각 기능을 구현할텐데, 이때 서로 어떤 url로 요청시 어떤 흐름으로 진행되는지를 공유하는 것이 좋다. - 구글 스프레드시트로 동시 작업이 가능하다.- 어떤 서비스의 어떤 기능에 있어서 어떤 url로 요청하면 되는지, 요청방식은 뭔지, 요청시 전달값은 뭐고실행쿼리는 어떤 종류고 성공일 때랑 실패일 때 각각 forward하는지 redirect하는지,어떤 응답페이지가 보여지는지를 서로 공유해야 한다.- 그래야 url mapping값 같은 게 겹치지 않고,내가 요청 처리 후 응답할 페이지가 다른 사람이 이미 구현해놨다면 그 응답페이지를 url 재요청할 수도 있다. - 로그아웃 링크는 a 태그여서 get방식이고, 요청시 전달값이나 실행할 쿼리도 없었다. 2024. 9. 8. [1-3] 회원서비스 로그인, 로그아웃 ㅁ 회원서비스- 회원서비스 개발 세팅 - 회원서비스_로그인 - 회원서비스_로그아웃 - 회원서비스_회원가입페이지로이동 - 회원서비스_회원가입요청- 회원서비스_마이페이지요청- 회원서비스_정보변경요청- 회원서비스_비번변경요청- 회원서비스_회원탈퇴요청 ㅁ http://localhost:8888/web/- 메인페이지를 들어가본다.- 그런데 404 에러 뜸. 보니까 프로젝트 세팅에서는 context root가 web으로 변경되어 있는데,이클립스 하단 Servers에서 서버 더블클릭하고 module 탭에서 보면 root가 webApp으로 되어 있음.그래서 http://localhost:8888/webApp을 입력해야 들어가진다. - edit 눌러서 /web.. 2024. 9. 7. [1-2] 회원서비스 개발 세팅 (이어서) ㅁ 회원서비스- 회원서비스 개발 세팅 - 회원서비스_로그인- 회원서비스_로그아웃- 회원서비스_회원가입페이지로이동 - 회원서비스_회원가입요청- 회원서비스_마이페이지요청- 회원서비스_정보변경요청- 회원서비스_비번변경요청- 회원서비스_회원탈퇴요청 ㅁ 패키지, 클래스 생성- 소스폴더인 src/main/java에 패키지를 만든다.- 이 때 세번째 까지는 com.br.web으로 시작한다. 패키지 첫번째 레벨, 두번째 레벨은 주로 도메인의 역순이다라는 가정 하에 작성했고,세번째 레벨에 주로 어플리케이션명을 따서 쓴다.- 지금 web이라 한 이유는 나중에 스프링 프로젝트를 개발하게 되면context path로 한 게 세번째 레벨로 잡히게 되어 있다.- 네번째 레벨부터 쪼개진다. - 위의 4개는 .. 2024. 9. 7. [1-1] 웹 어플리케이션 제작 * 2024-08-29- DB설계 및 DB구축- 프로젝트 생성 및 index 페이지 띄우기- 회원서비스 개발 세팅 ㅁ DB 구축 까지 끝났으면 이제 웹 어플리케이션 제작을 하면 된다. 웹 사이트 제작을 하기 위해 새로 이클립스로 프로젝트를 생성한다. ㅁ 새 프로젝트 생성 & 설정- 패키지 익스플로러 - 우클릭 - new - dynamic web project -프로젝트이름 webApp - 그 아래 dynamic web module version이 4.0이어야함 - next -default output folder는 build\classes가 아니라 src/main/webapp/WEB-INF/classes - next -context root가 webApp인데 web으로 바꿈 - 그 아래 generat.. 2024. 9. 2. DB설계 및 구축 (+ 엑셀로 DB에 한번에 넣기) ㅁ DB도 구축을 해야 한다.- 이 사이트에 필요한 데이터들 보관할 DB를 구축해야 한다.- 화면 구현한 것들을 하나씩 열어보면서 DB 설계를 진행한다.이런 데이터들이 화면에 보여진다는 것은 이런 데이터들을 보관하는 컬럼이 필요하다는 소리다. ㅁ https://www.erdcloud.com/- DB 설계는 이 사이트에서 진행하면 된다. 설치 없이 웹 상에서 바로 가능.- 팀으로 다같이 동시 작업도 가능하다. 팀을 생성하고 초대하면 된다. - 그냥 클릭클릭 해서 배치하면 된다. - 그리고 라이브러리가 있어서 다른사람의 작업물들을 볼 수 있다. - 여기는 dbms 상관없이 설계하는 곳이라 오라클 아니고 mysql이나 마리아db 쓰면 오라클 컬럼명과는 좀 다를 수 있다.- erd는 Entity-Relatio.. 2024. 9. 2. 화면구현 - 웹사이트 개발 화면 구현 (BootStrap) ㅁ 부트스트랩을 이용해서 웹 사이트 화면을 구현한다 ㅁ 다운로드 폴더에 그냥 04_front-workspace 깃에서 받았음.- vscode로 04_front-workspace 폴더 열기- 그리고 거기에 webapp 폴더 만들기- webapp 폴더 안에 "메인페이지.html" 만듦. - webapp 폴더 안에 views 폴더 만듦. (세부 페이지들을 여기에 둘 예정)- webapp 폴더 안에 assets 폴더 만듦.- assets 폴더 안에 image 폴더 만듦. (image 파일 여기에 둘 예정) - 화면 구현할 때는 파일명 식별이 가능하게끔 한글로 작성한다.- 회원 가입 페이지, 마이페이지, 공지사항 페이지, 게시판 페이지 등등 각각의 세부 페이지들은 보통 webapp 폴더 안에 views라는 폴.. 2024. 8. 28. [Servlet + JSP] 서블릿과 JSP 결합 ㅁ 서블릿과 JSP를 결합시켜서 사용자가 요청할 수 있는 페이지를 제작한다.- 요청은 서블릿이 처리하고, 처리된 결과를 JSP 페이지를 통해 사용자에게 응답하여 표현한다. - 아래는 02_jsp 프로젝트의 index.html이다. DOCTYPE html>html>head>meta charset="UTF-8">title>Insert title heretitle>head>body> h2>JSPh2> a href="/jsp/a_scripting_elements/main.jsp">1. Scripting Elementsa> br> a href="/jsp/b_page_directive/main.jsp">2. Page Directivea> br> a href="/jsp/c_includ.. 2024. 8. 28. 이전 1 2 다음