티스토리 뷰

WEB/Java BackEnd

[WEB-jsp/servlet] jsp

Happyoon ~ 2021. 11. 24. 13:54
728x90
반응형

그동안은 서블릿 클래스를 만들거나 web.xml에 작성을 했었다.

서블릿 클래스는 자바 코딩은 간편하지만 html을 문자열로 일일이 넣었기 때문에 불편했었다.

jsp는 이러한 단점을 보완하여 java 코드와 html 코드를 모두 편리하게 작성할 수 있다. 

 

예제를 통해 jsp 작성법을 알아보자.


jsp와 서블릿의 차이점 알아보기

예제 1 - DB의 member 테이블 활용하기 

 

1. DB 사용을 위해 WebContent - WEB-INF - lib 폴더에 ojdbc6.jar 파일 넣기

 


2. Java Resources - srcDBConnect 클래스, MemberDao 클래스, MemberDto 클래스 넣기

 

 

MemberDao 

https://live-for-myself.tistory.com/108

 

[Java] JDBC #2 DAO

DAO는 Data Access Object로 데이터베이스의 데이터에 접근하기 위한 객체이다. 저번 게시물에서 DTO(Data Transfer Object)를 활용해보았는데 이번 게시물에서는 CRUD 작업을 수행하는 DAO 클래스를 활용해볼

live-for-myself.tistory.com

 

MemberDto

https://live-for-myself.tistory.com/101

 

[Java] DTO(Data Transfer Object) or VO(Value Object) /getter(), setter()

DTO는 Data Transfer Object의 약어로 Value Object, 즉 VO라고도 불린다. 오로지 정보를 보관, 전달을 위해 생성된 클래스로, 매개변수를 정리할 수 있고 코드를 간결하게 만드는데 도움이 된다. 전에, 리모

live-for-myself.tistory.com

 


3. index.html 작성

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index.html</title>
<link rel="stylesheet" href="/Step01_Example/css/bootstrap.css" />
<script src="/Step01_Example/js/bootstrap.bundle.min.js"></script>
</head>
<body>
	<div class="container">
		<h1>인덱스 페이지입니다.</h1>
		<ul>
			<li><a href="/Step01_Example/member/insertform.html">회원 추가하러 가기</a></li>
			<li><a href="/Step01_Example/member/deleteform.html">회원 삭제하러 가기</a></li>
			<li><a href="/Step01_Example/member/updateform.html">회원 정보 수정하러 가기</a></li>
			<li><a href="/Step01_Example/member/list">회원목록 보기</a></li>
		</ul>
	</div>
</body>
</html>

회원 추가, 삭제 정보 수정 폼, 회원목록 페이지로 이동하도록 작성

 


결과

 


4. Servlet으로 작성 

MemberInsertServlet.java

package test.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import test.dao.MemberDao;
import test.dto.MemberDto;

@WebServlet("/member/insert")
public class MemberInsertServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//비즈니스 로직
		//요청 파라미터 추출
		String name = req.getParameter("name");
		String addr = req.getParameter("addr");
		//DB에 저장
		MemberDto dto = new MemberDto();
		dto.setName(name);
		dto.setAddr(addr);
		new MemberDao().insert(dto);

		// 응답 인코딩 설정
		resp.setCharacterEncoding("utf-8");
		// 응답 컨텐츠type 설정(웹브라우저에 어떤 컨텐츠를 응답할 것인지 알려서 준비를 시킨다.)
		resp.setContentType("text/html;charset-utf-8");

		// 요청을 한 클라이언트에게 응답할 수 있는 객체의 참조값 얻어오기
		PrintWriter pw = resp.getWriter();
		pw.println("<!DOCTYPE html>");
		pw.println("<html>");
		pw.println("<head>");
		pw.println("<meta charset= \"UTF-8\">");
		pw.println("<title>회원 추가 결과 페이지</title>");
		pw.println("</head>");
		pw.println("<body>");
		pw.println(name + "의 정보가 DB에 저장되었습니다.");
		pw.println("<a href='/Step01_Example/member/list'>목록보기</a>");

		pw.println("</body>");
		pw.println("</html>");
		pw.close();
	}

}

회원 추가 폼1 : /Step01_Example/member/list 에 get 방식으로 폼의 내용 전달.

 

결과


5. MemberInsertServlet의 내용을 jsp 파일로 만들어보기

 

- JSP는 클라이언트가 동적페이지를 요청 했을 경우 웹서버에서 WAS에게 제어권을 넘기고 WAS가 서블릿 소스코드로 변환되고 서블리스 클래스로 컴파일 되어 응답하는 구조로 이루어져 있다.

- <%%> 에 자바 코드를 작성할 수 있다.

- <%%>내부는 서블릿의 service() 메소드 안으로 볼 수 있다. 

- <%= %>의 '=' 뒤에는 웹에 바로 출력할 내용을 작성하면 된다.

 

member 폴더에 insert.jsp 파일 생성 

<%@page import="test.dao.MemberDao"%>
<%@page import="test.dto.MemberDto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%
	String name = request.getParameter("name");
	String addr = request.getParameter("addr");
	MemberDto dto = new MemberDto();
	dto.setName(name);
	dto.setAddr(addr);
	new MemberDao().insert(dto);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>/member/insert.jsp</title>
</head>
<body>
	<p>회원정보를 추가했습니다.</p>
	<a href="/Step01_Example/member/list.jsp">목록보기</a>
</body>
</html>

 

jsp는 html 안에 java, 서블릿은 그 반대이므로 jsp에서는 html을 더 편리하게 작성할 수 있는 모습을 확인할 수 있다.

 

servlet은 논리 경로를 매핑하는 방식이었다면, jsp는 물리주소 그대로, member 폴더안에 작성하면된다. 

 

자바 코딩이 필요없는 파일도 jsp로 만드는 것이 일반적이다. 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함