📗 스프링 Spring

[스프링/Spring] URL Mapping

핑크빛연어 2021. 5. 13. 14:52

 

 

URL 주소

사용자가 서버에 접속해서 서비스를 받기 위해 입력하는 주소

프로토콜://도메인주소(ip):포트번호(port)/경로1/경로2/경로3/...

 

 

프로토콜 : 서버와 클라이언트 간의 통신을 위한 약속 (생략 시 http)

 

도메인 주소(ip 주소)

  - ip 주소 :  같은 네트워크 망에서 컴퓨터를 구분하기 위해 제공되는 숫자로 구성된 고유 주소

  - 도메인 주소 : IP 주소로 변환되어 컴퓨터를 찾을 수 있도록 한다.

 

포트번호(port) : 1~65535번까지 구성된 숫자. 컴퓨터 내에서 프로그램을 구분하기 위해 사용 (생략 시 80)

 

경로1/경로2/경로3/...

  - 경로1 은 Context Path 이다.

  - Context Path 란 하나의 서버에서 각 웹 애플리케이션을 구분하기 위해 지정되는 이름. 폴더의 이름이 Context Path 가 된다. 

  - 그 이후 경로는 Context Path 의 하위 경로 이다.

  - Spring MVC 에서는 Context Path 다음에 나오는 주소는 사용자 임의로 지정할 수 있다.

 

 

 


 

 

 

작성한 파일 목록 입니다.

  - HomeController.java

  - TestController.java

  Sub1Controller.java

  Sub2Controller.java

  index.jsp

  lion.jsp

  apeach.jsp

  muzi.jsp

  neo.jsp

 

 

작성한 프로젝트 구조 입니다.

 

 

 HomeController.java

package com.my.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HomeController {

	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String home() {
		System.out.println("home()");
		return "index";
	}
	
	@GetMapping("/lion")
	public String lion() {
		return "lion";
	}
	
}


 

 TestController.java

package com.my.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class TestController {
	
	private String TAG = "===== "+TestController.class.getSimpleName()+" >> ";

	@RequestMapping(value = "/apeach", method = RequestMethod.GET)
	public String apeach() {
		System.out.println(TAG+"apeach()");
		return "apeach";
	}
}

 

 

 Sub1Controller.java

하위 경로 Controller

package com.my.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class Sub1Controller {
	
	private String TAG = "===== "+Sub1Controller.class.getSimpleName()+" >> ";
	
	@RequestMapping(value = "/sub1/muzi", method = RequestMethod.GET)
	public String muzi() {
		System.out.println(TAG+"muzi()");
		return "muzi";
	}

}

 

 Sub2Controller.java

하위 경로 통합한 Controller

package com.my.spring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/sub2")
public class Sub2Controller {
	
	private String TAG = "===== "+Sub2Controller.class.getSimpleName()+" >> ";
	
	@RequestMapping(value = "/neo", method = RequestMethod.GET)
	public String neo() {
		System.out.println(TAG+"neo()");
		return "neo";
	}

}

 

 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>index</h1>

	<div>
		<img src="image/carebear.jpg" />
	</div>
	
	<div>
		<a type="button" class="btn_a1" href="lion">LION</a>
	</div>
	
</body>

<style>

.btn_a1 { width: 100px; height: 50px; margin: 15px; padding: 15px; border: 1px solid #F29661; background: #FAF4C0; color: #000000; display: inline-block; }

</style>
</html>

 

 lion.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>LION</h1>

	<div>
		<img src="image/img_little_lion.png" style="width: 300px; height: 400px;" />
	</div>
	

	<div>
		<h2><a href='apeach'>apeach</a><br/></h2>
	</div>
	
	<div>
		<h2><a href='sub1/muzi'>sub1/muzi</a><br/></h2>
	</div>
	
	<div>
		<h2><a href='sub2/neo'>sub2/neo</a><br/></h2>
	</div>
	
</body>
</html>

 

 apeach.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>APEACH</h1>
	<div>
		<img src="image/img_little_apeach.png" style="width: 300px; height: 400px;" />
	</div>
	
</body>
</html>

 

 muzi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>MUZI</h1>
	<div>
		<img src="../image/img_little_muzi.png" style="width: 300px; height: 400px;" />
	</div>
	
</body>
</html>

 

 neo.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>NEO</h1>
	<div>
		<img src="../image/img_little_neo.png" style="width: 300px; height: 400px;" />
	</div>
	
</body>
</html>

 

 

 

웹 결과화면

 

초기화면 -> index.jsp

http://localhost:8080/MySpringProj01/

 

LION 버튼 클릭 시

http://localhost:8080/MySpringProj01/lion

 

lion 화면에서 apeach 클릭 시

http://localhost:8080/MySpringProj01/apeach

 

lion 화면에서 sub1/muzi 클릭 시

http://localhost:8080/MySpringProj01/sub1/muzi

 

lion 화면에서 sub2/neo 클릭 시

http://localhost:8080/MySpringProj01/sub2/neo

 

 

 

감사합니다 ~ 🦁

 

 

 

728x90
반응형