www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm

 

JSP - Standard Tag Library (JSTL) Tutorial - Tutorialspoint

JSP - Standard Tag Library (JSTL) Tutorial In this chapter, we will understand the different tags in JSP. The JavaServer Pages Standard Tag Library (JSTL) is a collection of useful JSP tags which encapsulates the core functionality common to many JSP appli

www.tutorialspoint.com

 

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

jsp 파일에 붙여넣기

 

 

 

의존성 설정

<!-- JSTL -->
<dependency>
 	<groupId>javax.servlet</groupId>
	<artifactId>jstl</artifactId>
</dependency>

 

 


※  그 전에 JSP 파일을 스프링 부트에서 사용하려면

 

<!-- JSP 템플릿 엔진 -->
		 	
		 <dependency>
		  <groupId>org.apache.tomcat.embed</groupId>
		  <artifactId>tomcat-embed-jasper</artifactId>
		</dependency>

 

 


세션설정

 

 

 

로그인을 성공 했을 때

sessionID라는 세션 이름과 함게 user.getId()로 로그인 했을 때 사용했던 아이디를 세션 값으로 설정하였다.

 

 

 

user.getId() 

 

값은

 

request.getParameter( ) 대신

 

자바빈즈로 값을 가져왔다.

 

 

 


세션활용

 

설정 했던 세션 이름 sessionID를 가져와서 

String sessionID = null;
if(session.getAttribute("sessionID") != null){
		sessionID = (String) session.getAttribute("sessionID");
	}

 

 

세션 값이 없으면 (로그인을 하지 않았다면)

 

화면에는 로그인, 회원가입 이 보이고

 

세션 값이 null이 아니라면 (로그인을 했다면)

 

로그아웃과 회원 수정 화면이 보이게 설정해두었다.

 

 

  • 메인화면
<h1>메인화면</h1> <br/>
	<% 
	String sessionID = null;
	if(session.getAttribute("sessionID") != null){
			sessionID = (String) session.getAttribute("sessionID");
	}
	
	if(sessionID != null){
		
	
	%>
	<h2 id="sessionID">	<span id="sessionID"><%=sessionID %></span> 님 환영합니다. </h2>
	
	<% 
	}
    %>

 

 


세션 제거

 


		session.invalidate();
	

현재 세션에 저장된 모든 속성을 제거한다.

 

 

로그아웃 버튼을 눌러

<a class="dropdown-item" href="logout.jsp">로그아웃</a> 

 

logout.jsp 에 파일에 위해 세션 제거 코드를 넣고

 

<script>
			location.href= "index.jsp";
		</script>

페이지 이동을 하면 된다.

 

회원 탈퇴도 마찬가지다!!!!

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

자바빈즈 (useBean , setProperty)  (0) 2020.12.02
JSP 내장 객체  (0) 2020.12.01
Eclipse (Emmet 환경설정)  (0) 2020.12.01
게시판 목록 페이징 하기  (0) 2020.11.30
게시판 목록 만들기  (0) 2020.11.30

JSP 내장 객체

 

※ 내장 객체(implicit object)는 JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체 로 그 종류가 다양함.

 

JSP 페이지가 서블릿 프로그램으로 번역될 때 JSP 컨테이너가 자동으로 내장 객체를 멤버 변수, 메소드 매개변수 등의 참조 변수로 포함한다.

 

그래서 JSP 페이지에 별도의 import 문 없이 자유롭게 사용이 가능하다. 

그리고 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용 할 수 있다.

 


내장 객체의 종류

내장 객체 반환 유형 설명
request javax.servlet.http.HttpServletRequest 웹 브라우저의 HTTP 요청 정보를 저장
response javax.servlet.http.HttpServletResponse 웹 브라우저의 HTTP요청에 대한 응답 정보를 저장
out javax.servlet.jsp.jsp.jspWriter JSP 페이지에 출력할 내용을 담고 있는 출력 스트림
session javax.servlet.http.HttpSession 웹 브라우저의 정보를 유지하기 위한 세션 정보를 저장
application javax.servlet.ServletContext 웹 어플리케이션의 콘텍스트 정보를 저장합니다.
pageContext javax.servlet.jsp.pageContext JSP 페이지의 정보를 저장합니다.
page javax.lang.Object JSP 페이지를 구현한 자바 클래스로 JSP 페이지 자체를 나타냄
config javax.servlet.ServletConfig JSP 페이지의 설정 정보를 저장합니다.
exception javax.lang.Throwable JSP 페이지의 예외 발생을 처리합니다.

 

 

 

※ 모든 내장 객체는 JSP 컨테이너가 관리하는 객체로, 이 중 request, session , application, pageContext를 이용하여 

속성을 관리할 수 있다. 속성은 각각의 내장 객체가 존재하는 동안 JSP 페이지 사이에서 정보를 주고받거나 공유하는데 사용된다. 

 

 

속성을 처리하는 메소드는 다음과 같이 4 종류이다.

 

 

메소드 반환 유형 설명
setAttribute(String name, Object value) void 해당 내장 객체의 속성 이름이 name인 속성 값을 value로 저장한다.
getAttribute(String name) Object 해당 내장 객체의 속성 이름이 name인 속성 값을 가져온다.
removeAttribute(String name) void 해당 내장 객체의 속성 이름이 name인 속성을 삭제한다.
getAttributeNames( ) java.util.Enumeration 해당 내장 객체의 모든 속성 이름을 가져온다(pageContext 내장 객체는 이 메소드를 제공하지 않는다.)

 

 


request 내장 객체

 

※ JSP 페이지에서 가장 많이 사용되는 기본 내장 객체로, 웹 브라우저에서 서버의 JSP 페이지로 전달하는 정보를 저장

 

요청 파라미터 관련 메소드

 

요청 파라미터는 사용자가 폼 페이지에 데이터를 입력한 후 서버에 전송할 때 전달되는 폼 페이지의 입력된 정보 형태를 말한다. 이러한 파라미터는 <name=value> 형식으로 웹 브라우저에서 서버의 JSP 페이지로 전송 된다.

 

 

요청 파라미터는 폼 페이지에서 <input type="text"...> 처럼 입력 양식이 텍스트 유형인 경우 값을 입력하지 않으면 서버로 빈 문자열이 전송된다. 하지만 체크 박스와 라디오 버튼 유형인 경우 선택하지 않고 전송하면 요청 파라미터 자체가 전달되지 않는다.

 

요청 파라미터 관련 메소드 반환 유형 설명
getParameter(String name) String 요청 파라미터 이름이 name인 값을 전달 받는다. 요청 파라미터 값이 없으면 null을 반환한다.
getParameterValues(String name) String[ ] 모든 요청 파라미터 이름이 name인 값을 배열 형태로 전달 받는다. 요청 파라미터 값이 없으면 null을 반환한다.
getParameterNames( ) java.util.Enumeration 모든 요청 파라미터의 이름과 값을 Enumeration 객체 타입으로 전달받는다.
getParameterMap( )  java.util.Map 모든 요청 파라미터의 이름과 값을 Map 객체 타입으로 전달 받는다.[Map 객체 타입은 (요청 파라미터 이름, 값) 형식으로 구성 된다.) ]

 


 

실제로 form 태그 에서 값을 지정해서 데이터를 전송하면 request.getParameter로 값을 가져왔었다.

 

 


그런데, 글 상세보기 화면 구현 중...

 

 

Board 객체의 값을 넣어서 상세보기 화면을 구현한다.

 

BoardDAO에 있는 detail함수 매개변수에 해당 게시글 번호를 넘겨준다.

 

 

detail 메소드에서는 받아온 매개변수 값으로

쿼리문을  실행한다.

 

이렇게 해당 게시글 번호를 매개변수로 넘겨줘야 하는데

 

이때 

request.getParameter("bno")

을 사용했는데

 

form 태그를 사용하지 않았는데

 

이때 request는 어떤 데이터를 요청하는 걸까? ....

 

 

 

form 태그 없으니깐... 웹 브라우저 Http 요청 정보인가..?

이 bno 값은 어디서 왔을 까??....

 

 

 

 


board.jsp

 아마  board.jsp 파일

a 태그 안에 있는 detail.jsp?bno=????    <-  여기서 데이터를 보내지 않았을 까 싶다.

jsp 파일로 화면 구현을 하는데,

 

table 이나 input 태그를 쓸때

 

하나 하나 씩 입력하면 귀찮다.

 

빠르게 입력해보자!!

 

 

Help -> Eclipse MarketPlace 클릭

 

Emmet 라이브러리를 다운 받는다.

 

 

 

 

Install를 눌러 설치를 한다.

 

 

 

 

설치가 완료 되면  업데이트 적용을 위해 재시작 할지를 묻는다.

 

당연히 재시작!!

 

 

 

이제

 

Ctrl +E를 눌러 빠르게 html 코드를 짜보자..

 

 

div 태그 안에 있는 클래스 이름 container를 만들고 싶으면

 

div.container 하고 Ctrl+ e

 

 

 

 

이번엔 table 태그에 클래스 이름을 지정하고

그안에 thead 속성  그 안 에 tr 태그 그 안에 th 태그 2개를 한 번에 만들어보자 

굿!!! 엄청 편함

 

 

 

 

 

자주 쓰이는 기호 몇 개를 알아두고 계속 써먹자!!

출처: https://jwkim96.tistory.com/50

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

세션(로그인,글 작성/수정/삭제)  (0) 2020.12.02
JSP 내장 객체  (0) 2020.12.01
게시판 목록 페이징 하기  (0) 2020.11.30
게시판 목록 만들기  (0) 2020.11.30
게시판에서 User 객체 가져오기?  (0) 2020.11.29

게시판 글쓰기로 MySQL에 저장된 데이터를 가져와서

 

게시판 목록을 만들어보자!

 

 

select 문을 이용해서 데이터를 가져오고

 

PrepareStatement 객체에 데이터를 담고

 

결과 값을 반환하기 위해 

ResultSet 객체를 불러온다.

 

BoardDAO.java

 

게시판 글이 몇개 인지 모르기 때문에  객체 배열 클래스 ArrayList를 사용하여

return 값을 ArrayList로 반환 해야한다.

 

list라고 이름을 붙인 함수를 호출 했을 때

ArrayLIst 배열로 게시글 데이터를 담은 값을 반환해서

 

 

화면에 보여줘야 한다.

 

그래서 ArrayList<Board>에 값을 담아보자!!

쿼리문의 데이터를 가져온 ResultSet 객체

Board 클래스의 인스턴스(?)에 담기 위해

setter 사용

 

setter 안에 담을 데이터는 ResultSet 안에 있는 쿼리 데이터

 

 

SELECT * FROM BOARD;

MySQL에 bno , title ,content , writer ,createTime 순서 대로 있기 때문에

 

rs.getXXX에 순서 대로 담으면 된다.

 

 

이제 화면을 구현 해보자!!!

 

 

Board.jsp

당연히 먼저 데이터를 불러와야 하니깐

BoardDAO 클래스를 불러온다.

 

그 다음에 Board 객체 배열 클래스에 DAO 객체를 담는다.

 

위에 list 안에 값을 보여줄건데

 

ArrayList 배열 클래스이기 때문에

길이가 딱히 정해져 있지 않다.

 

그래서 배열의 각 위치에 있는 값을 다 불러와줘야한다.

 

-> for 반복문 사용

 

ArrayList get 메서드를 사용해서 확인 해보면

 

 

get(0) 

첫번째 위치에 있는 배열의 제목을 들고오면

 

안녕이라는 데이터를 가져올수 있다.

 

 

 

for 문을 사용해서 목록을 만들어보자

board.jsp

배열의 길이(크기, 사이즈) 는 실제로 13개!!

컴퓨터는 숫자 0부터 세기 때문에  0부터 12까지의 해당하는 배열의 index 불러와야하니깐

 

get(i).불러오고 싶은 데이터 값!!

 

 

 

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

Eclipse (Emmet 환경설정)  (0) 2020.12.01
게시판 목록 페이징 하기  (0) 2020.11.30
게시판에서 User 객체 가져오기?  (0) 2020.11.29
자바 빈즈 <jsp:useBean>  (0) 2020.11.29
페이지 전환, 이동  (0) 2020.11.20

 

request.getParameter() 대신

 

자바 빈즈를 통해 값을 들고 와 DAO 객체에 넘겨 주려고 했는데 실패했다.

 

왜냐 하면

 

Board.java에

 

setter, getter 가 없기 때문이다.

 

 

 

자바 클래스에 setter 가 jsp:setProperty와 연결 되는 거 같고

getter가 <jsp:getProperty> 와 연결 되는 거 같다

 

둘 이 어떻게 연결이 되는 거지...

감이 안온다..

 

BoardAction.jsp

write.jsp  form 태그에서 들고 온 값을

 

request.getParameter로 가져 왔다.

 

이제 자바 빈즈를 사용해서 코드를 수정하면

 

 

Board.java 에 setter, getter 와

 

자바 빈즈를 이용해서 

BoardDAO에 자바 빈즈 객체 board를 넘겨 주었다.

 

 

 

write.jsp 파일에서  boardAction.jsp 파일로 데이터를 넘겨 줄 때

input 태그에 name 과 Board.java에 있는 변수 명이 같고

 

boardAction.jsp

<jsp : useBean> 에서 Board.java 클래스를 불러왔고

setProperty에 있는 property 값의 변수 이름과 동일 하기 때문에 연동이 되는 것 같다...............

 

 

'프로젝트 > JSP CRUD 게시판' 카테고리의 다른 글

게시판 목록 페이징 하기  (0) 2020.11.30
게시판 목록 만들기  (0) 2020.11.30
게시판에서 User 객체 가져오기?  (0) 2020.11.29
페이지 전환, 이동  (0) 2020.11.20
포트 번호 충돌  (0) 2020.11.20

+ Recent posts