
서버 테스트
css추가
기능 추가하기
- 추상클래스가 무엇인지?
- 인터페이스가 무엇인지?
- mvc 약자가 무엇인지?

- 서블릿은 view단을 구성하기에 너무 복잡하다.
- 서블릿 + JSP를 합쳐서 사용하는게 편하다.

Model : 실제 데이터베이스 (DAO)
- JDBC
- JPA
- MyBatis Framwork
View : Front 단
- HTML, CSS, JavaScript, jQuery, JSP
→ .jsp .asp .php .py 서버와는 상관이 없다.
- JSP는 자바코드도 들어갈 수 있어 코드가 복잡해지고 길어진다. (=스파게티코드)
- EL/JSTL
→ 톰캣에서 서버와 연결해야한다.
▷ 백엔드에서 모두 코드를 짜고 사용자에게 보여줄 때는 EL/JSTL로 보여준다.
▷ 오늘은 백엔드와 프론트엔드를 최대한 구분시켜 코드를 짜볼 것!
▷ Controller는 framework(다른 사람들이 만들어 놓은 것) controller를 사용하면 된다.
- DispatcherServlet (Struts Framework)
- ActionServlet (Spring Framework) → 추천







https://articles09.tistory.com/5

basic05_mvc 폴더에 list.jsp 파일이 없는 것이다.

에러가 발생하는 경우, 에러 메세지를 직접 출력하지 않고, 다른 페이지로 이동시켜야 한다.
→ /WEB-INF/web.xml 배치 관리자에서 지정

- /WEB-INF/web.xml 배치 관리자
- 환경설정에 관한 내용을 담고 있음
-Spring Framework에 가면 배치관리자를 관리해주는 클래스가 있다
- ※ 주의사항 : web.xml이 수정되면 반드시 서버를 재시작해야함
첫페이지(index.jsp) 자동 호출 등록
세션시간 등록 (20분)

에러가 발생했을 때 이동할 페이지 지정

<error-page>
<error-code>404</error-code>
<location>/error/404code.jsp</location>
</error-page>





- 이 부분을 확인하고 에러가 난 것을 알 수 있다.
국어점수가 넘어오지 않았다.
?뒤에 Query String값으로 kor값을 넘겨야 에러가 발생하지 않음
http:// localhost:9090/basic05_mvc/error/errorTest.jsp?kor=30






EL은 자바스크립트에서 확장된 Xpath에서 힌트를 얻어 만들어진 언어이다.
그러나 EL은 값이 없는 변수(null)에 좀 더 관대하고 데이터 형 변환을 자동으로 해준다.
이러한 특징들은 질의 문자열을 처리하는데 주요하게 작용한다. 질의 문자열은 서버로 전달될 때 항상 문자열로 보내는데, 서버프로그램 내에서는 int, boolean으로 사용할 때가 있다. 이때 EL을 사용하면 값이 없거나 형변환 등에 전혀 신경 쓸 필요 없이 사용할 수 있다.
jsp를 최소화 시켜줄 수 있다.
※ 주의사항 : 반드시 jsp파일로 저장해야한다





















JSP Standard Tag Library
JSP 전용태그

JSTL 설치

/tomcat-8/webapps/examples/WEB-INF/lib
/taglibs-standard-impl-1.2.5.jar
/taglibs-standard-spec-1.2.5.jar
I:\java202207\apache-tomcat-9.0.67\webapps\examples\WEB-INF\lib
▷ 여기 경로로 가서 jar 파일 복사한다.

basic05_mvc/lib 폴더에 붙여넣는다.

uri에 커서를 놓고 ctrl+space누르면 주소들이 나온다.

http://java.sun.com/jsp/jstl/core 입력

- url사이트에서 jstl문법을 제공해준다.
- prefix="c"로 명령을 해주면 된다.

1-2)prefix="c"로 JSPL 변수선언



3) JSPL 출력



4) b,c 변수 제거



5) 자바 객체 선언도 가능



<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jstlTest2.jsp</title>
</head>
<body>
<h3>* JSTL 제어문 연습 *</h3>
<form action="jstlTest2ok.jsp"> <!-- 결과페이지 JSP -->
이름 : <input type="text" name="name"> <br>
나이 : <input type="text" name="age"> <br>
<input type="submit" value="확인">
</form>
</body>
</html>

JSP, JSTL 두가지 버전으로 모두 출력해본다.

<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>jstlTest2ok.jsp</title>
</head>
<body>
<h3>* 결과페이지(JSP) *</h3>
<%
String name=request.getParameter("name");
int age =Integer.parseInt(request.getParameter("age"));
out.print("이름 : " + name + "<br>");
out.print("나이 : " + age + "<br>");
//문1) 나이가 10미만 "어린이", 20미만 "청소년", 나머지 "성인" 출력
if(age<10){
out.print("어린이");
}else if(age<20){
out.print("청소년");
}else{
out.print("성인");
}//if end
//2) 1~나이까지 짝수는 파랑색, 홀수는 빨강색으로 출력
for(int i=1; i<=age; i++){
if(i%2==0){
out.print("<span style='color:blue'>" + i + "</span>");
}else{
out.print("<span style='color:red'>" + i + "</span>");
}//if end
}//for end
%>
</body>
</html>


- 이걸로 변경
jstlTest2.jsp에 사용자가 입력한 값 가져오고, 변수 설정하기

조건문 / 다중조건문

- 이름이 itwill이면 대한민국 출력
- 나이가 10미만이면 어린이, 20미만이면 청소년, 나머지는 성인
결과확인


반복문

- a가 1부터 나이까지 +1씩 증가하면서 나이만큼 # 찍기


반복문 + 조건문 합치기


<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
→ 공통적으로 들어가기 때문에 header.jsp에 넣어두면 편하다.

글자개수, 공백제거 함수


문자열자르기, 소문자,대문자로 바꿔주는 함수


엔터를 <br>로 바꿔주는 함수 (JSP, EL+JSTL)


< > & ' " 특수문자 바꿔주는 함수

