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
감사합니다 ~ 🦁
'📗 스프링 Spring' 카테고리의 다른 글
[스프링/Spring] Properties (0) | 2021.05.14 |
---|---|
[스프링/Spring] 요청방식 (@RequestMapping / @GetMapping / @PostMapping) (0) | 2021.05.13 |
[스프링/Spring] Spring MVC 세팅 Java (0) | 2021.05.13 |
[스프링/Spring] Spring MVC 세팅 XML (0) | 2021.05.13 |
[스프링/Spring] Spring MVC - DispatcherServlet (0) | 2021.05.06 |