DAY_046[국비] 자바 웹프로그래밍 과정

Bona의 블로그 입니다.·2022년 12월 1일
0

국비과정

목록 보기
46/99

 🌞 Day 046 

  • JSTL설치, EL과 JSTL, SERVLET과 DB를 활용한 로그인

 🎁 delete.jsp 

  • 삭제하기 전에 사용자에게 알림창으로 한 번 더 물어보려면 파일이 하나 더 있어야 한다.
  • 자바스크립트를 사용해야 하기 때문에
  • delete_do로 가기 전에 이 파일을 거쳐 가도록 한다.
  • MemberMGR에서 a태그의 href 수정 잊지 말 것!!!




 🎄 EL / JSTL 

  • EL에 필요한 jar파일은 톰캣에 장착되어 있으므로 따로 다운 받을 필요 없음

 ✨ jstl 다운받기 

  • jstl download 검색 > 1.1버전 > binaries > jakarta-taglibs-standard-1.1.2.zip 다운 > (압축 풀고) lib폴더 > jar파일 2개(jstl.jar, standard.jar)
  • 위의 파일을 프로젝트 파일에 넣기
    : WEB-INF > lib안에 넣기 (오른클릭 > import > filesystem > 위 파일있는 폴더 선택하고 > 파일 2개 선택하고 finish버튼 클릭)

 🎁 EL (Expression Language) 

  • 표현 언어(EL, Expression Language)
    : JSP의 전달 값이나 변수 값 등 자료를 출력할 때의 번거로움을 간단히 해결하기 위해 만들어진 출력 문법, jsp의 문법을 html5에서 좀 더 구분하기 쉽고, 오류를 줄여서 운용하기 위해 개발된 언어, 주로 pageContext, request, session, application에 전달되는 Attribute의 값을 getter를 이용하지 않고 출력할 때 많이 사용한다.

 ✨ EL과 JSP 

  • 표현언어(EL, Expression Language)

    • JSP의 전달 값이나 변수 값 등 자료를 출력할 때의 번거로움을 간단히 해결하기 위해 만들어진 출력 문법
    • jsp의 문법을 html5에서 좀 더 구분하기 쉽고, 오류를 줄여서 운용하기 위해 개발된 언어,
    • 주로 pageContext, request, session, application에 전달되는 Attribute의 값을 getter를 이용하지 않고 출력할 때 많이 사용
  • #1.

  • #2.


 ✨ ParameterNull 


 🎁 JSTL 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

  • prefix="c" : JSTL 문법을 사용하기 위해서 태그의 첫글자를 c를 사용하겠다 라는 표시
    그리고 c:로 시작하는 "태그"는 jstl문법이 적용된다.

 ✨ 단순 출력 / 변수 생성 및 출력 / 객체 생성 


 ✨ JSTL : IF 


 ✨ JSTL : When (choose - when) 

  • jstl사이에 (html5)주석을 넣으면 에러 남

 ✨ ForEach : 반복문 


1. 사용 예시

  • <c:forEach items="${mList}" var="movie">
    ${movie} <br>
    </c:forEach>
  • var="movie" : 리스트 안의 요소 하나하나를 받는 변수

2. 연습 예제


 ✨ import 


 ✨ Redirect 

  • jstl
    <c:redirect url="08_Import.jsp"></c:redirect>

  • jsp
    <% response.sendRedirect("08_Import.jsp"); %>



 ✨ Format 

  • 포맷을 사용하기 위한 import
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

1. 날짜


2. 통화, 숫자

<h3>톰캣 서버의 기본 로케일 : <%=response.getLocale() %></h3>

<!-- 혹시 다른 곳으로 되어 있다면 -->
<fmt:setLocale value="ko_KR"/>

<h3>
통화(currency) : <fmt:formatNumber value="10000" type="currency"/>
<br>
숫자(number) : 
<fmt:formatNumber value="1000.1234" type="number"
maxFractionDigits="2"/><br>
<!-- maxFractionDigits : 소수점 자리수 -->
<c:set var="now" value="<%=new java.util.Date() %>"></c:set>
날짜 : <fmt:formatDate value="${now}"/>
</h3>

<h3>
<fmt:setLocale value="en_US"></fmt:setLocale>
로케일을 영어로 설정 후 로케일 확인 : <%=response.getLocale()%><br>
통화(currency) : <fmt:formatNumber value="10000" type="currency"/>
<br>
날짜 : <fmt:formatDate value="${now}"/> <br><br>
</h3> 

<h3>
<fmt:setLocale value="ja_JP"></fmt:setLocale>
로케일을 일본어로 설정 후 로케일 확인 : <%=response.getLocale()%><br>
통화(currency) : <fmt:formatNumber value="10000" type="currency"/>
<br>
날짜 : <fmt:formatDate value="${now}"/> <br><br>
</h3>
<br>

<fmt:requestEncoding value="UTF-8"/>
<%-- <% request.setCharacterEncoding("UTF-8"); %> --%>

 🎁 JSTL : Parameter 

 ✨ Parameter_From 


 ✨ Parameter_To 

  • id, pwd를 받는 곳
당신이 입력한 정보입니다(고전적 방식) <hr>
아이디 : <%=request.getParameter("id") %> <br>
비밀번호 : <%=request.getParameter("pwd") %> <br>

 <br> <br>

당신이 입력한 정보입니다(EL방식) <hr>
아이디 : ${param.id} <br>
비밀번호 : ${param.pwd} <br>

  • checkbox의 값을 받는 곳




 🎄 Login : JSP, SERVLET, DB 

 🎁 index.jsp 

  <%
  //response.sendRedirect("loginForm.jsp");
  response.sendRedirect("login.do");
  // 서블릿을 거쳐서 포워딩된 페이지는 외부로 노출되지 않는다.
  %>
  • 항상 최상위 폴더에 있는 index에서 시작해야 한다
    => 서블릿은 최상위 폴더에 있기때문에

 🎁 loginForm.jsp 

  • 자바스크립트가 필요한 부분이 있다.
    아이디와 패스워드를 입력했는지 체크하는 자바스크립트 함수를 작성

  • body태그 안에 만든 로그인 폼


 🎁 LoginServlet - 서블릿 


 🎁 SQL : 테이블 생성 

  • 프로젝트 연습용 테이블과 레코드 생성


 🎁 MemberDto 


 🎁 MemberDao 

  • 데이터베이스연결, 아이디와 비번 조회하고 일치여부 결과 리턴


 🎁 main.jsp 




profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글