본문 바로가기
Back-End/Spring Boot

Spring Boot - jsp 파일 생성, web 확인

by 코젼 2022. 7. 20.
728x90
반응형

2022-07-20(23일차)


💡jsp 파일 생성

▪️ src - main - webapp - WEB-INF - views - base - New - Other... - Web - JSP File - .jsp 파일 생성


📃index1.jsp

▪️ 서버에서 id, name값을 보내줄 것이라고 짐작할 수 있다.
▪️ return index --> index.jsp
 --> 만약 base하위에 index 폴더가 있다면 "base/index"
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Index 1</title>
</head>
<body>
<%
	out.println("#################");
%>

<br>
아이디 : [ ${id}] <br>
성 명 : [${name}]<br>

<%
	out.println("#################");
%>

</body>
</html>

📃index3.jsp - 커맨드 객체 사용

◾ 접근할 때, member.id, member.name으로 접근하여 사용한다.
◾ 멤버함수, 멤버변수를 호출한다.

📌static클래스 / 일반 클래스
◾ static클래스라면 접근할 때 Member.id로 접근한다.
◾ static 클래스가 아니라 일반 클래스라면, 객체를 생성하여 접근한다.
 --> Member member = new Member();
 --> member.id, member.name, member.getId()...
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Index 1</title>
</head>
<body>
<%
	out.println("#################");
%>

<br>
아이디 : [${member.id}] <br>
성 명 : [${member.name}]<br>

<%
	out.println("#################");
%>

</body>
</html>

📃BaseWebController.java

▪️ @RequestMapping("/index1")
 --> index1 호출

💬 Spring Web에서 정의된 프로토콜
▪️ HttpServletRequest request
 --> 서버에서 사용자의 요청을 한 번에 다 받는 request를 http를 통해서 만든다. - Spring 제공.
 --> 서버에서 자동으로 입력해준다.
▪️ Model model
 --> Model는 jsp에서 주는 결과를 받아주는 객체 model이고, Hashmap 형태이다.
 --> key와 value가 필요하다.

▪️ String id = request.getParameter("id");
 --> request객체 안에서 사용자가 id라고 보내준 값을 getParameter를 통해 id에 저장한다.

▪️ model.addAttribute("id", id);
 -->  model에 key값을 id, 실제 값(읽은 값)을 저장한다.

▪️ return "base/index1";
 --> base/index1 페이지로 이동한다.

▪️ @RequestParam("id") String id, @RequestParam("name") String name
 --> "id"인 파라미터 값을 id로 뽑아오고, "name"을 name으로 뽑아옴 

▪️ public String index3(Member member, Model model)
 --> 커맨드 객체

변수로 하다보니 너무 번거롭고 의도하기 복잡해서 주소로만 표기한다.
▪️ @RequestMapping("/index4/(id)/(name)")
 --> id와 name은 변수와 이름이 동일해야 한다.
package com.example.base.web.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.example.base.web.vo.Member;

@Controller
public class BaseWebController {
	@RequestMapping("/") // 단순 문자열을 전달받아 사용한다.
	public @ResponseBody String root() throws Exception {
		return "문자 데이터 전달받아 사용";
	}
	
	
	// ------------- 1 ---------------
	@RequestMapping("/index1") //index1 호출
	// 서버에서 사용자의 요청을 받는 request를 Http를 통해서 만든다. - Spring 제공. 서버에서 자동으로 입력해준다. 사용자의 요청을 한 개로 다 받는 것
	// 통째로 name, id를 파라미터로 뽑아옴
	
	// Model는 jsp에서 주는 결과를 받아주는 객체 model이고, Hashmap 형태이다. key와 value가 필요하다. 결과를 Model로 돌려주는 것
	public String index1(HttpServletRequest request, Model model) { // Spring Web에서 정의된 프로토콜
		
		String id = request.getParameter("id"); // request객체 안에서 사용자가 id라고 보내준 값을 getParameter를 통해 id에 저장한다.
		String name = request.getParameter("name");
		
		// model에 key값을 id, 실제 값(읽은 값)을 저장한다.
		model.addAttribute("id", id); // key-value
		model.addAttribute("name", name);
		
		// base/index1 페이지로 이동한다.
		// model에서 자동으로 찾아서 세팅해준다.
		return "base/index1";
	}
	
	// ------------- 2 ---------------
	@RequestMapping("/index2")
	// "id"인 파라미터 값을 id로 뽑아오고, "name"을 name으로 뽑아옴 
	public String index2(@RequestParam("id") String id, @RequestParam("name") String name, Model model) {
		model.addAttribute("id", id);
		model.addAttribute("name", name);
		return "base/index2";
	}
	
	
	// ------------- 3 ---------------
	public String index3(Member member, Model model) {
		return "base/index3";
	}
	
}

⭐주기적으로 Project - Clean...으로 정리한다.

프로젝트를 clean시키고 다시 build하기


💡커맨드 객체를 위한 Member Class 생성

▪️ Source - Generate Getters and Setters... 를 통해 getter와 setter를 생성한다.

클래스 내에서 getter, setter를 자동으로 생성해준다.


💡ORM

▪️ object relation mapping
▪️ 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것

 

728x90
반응형

'Back-End > Spring Boot' 카테고리의 다른 글

Spring Boot - JPA  (0) 2022.07.21
Spring Boot - 어노테이션 종류  (0) 2022.07.20
Spring Boot - jsp  (0) 2022.07.20
Spring boot - 시작하기  (0) 2022.07.19
Spring Boot - 환경 변수 설정 및 파일 설치  (0) 2022.07.19

댓글