컴퓨터는 잘못이 없다..

[Spring]경로 작성하기 본문

공부/Spring

[Spring]경로 작성하기

도토리까꿍v 2021. 3. 3. 19:24
Contents 접기

*cpath = ${pageContext.request.contextPath } 를 의미한다. 

*이미지 참고하기 

case1

case1
webapp/WEB-INF/views/cafe/list.jsp 에서 webapp/WEB-INF/views/cafe/private/update_form.jsp 로 이동하고자 할 때
[in jsp]
상대경로로 요청할 때 : private/updateform.do //두 jsp파일이 같은 cafe폴더하위에 존재한다.
절대경로로 요청할 때 : cpath/cafe/private/update_form.do 

- .do 요청을 했으므로 dispatcher servlet을 거쳐간다.
- 절대경로에서 cpath/ 에서 /는 views를 의미한다.
[in Controller] 
RequestMapping : @RequestMapping("/cafe/private/updateform.do") //do는 생략이 가능하다.
이동할 경로 : cafe/private/updateform //.jsp는 설정에 따라 알아서 붙여준다. 

- RequestMapping과 이동할 경로에는 in jsp에서 절대경로로 요청할 때 cpath/ 다음에 있는 모든 경로를 적어주어야 한다.

[in list.jsp]

//상대경로
<a href="private/update_form.do"></a>

//또는

//절대경로
<a href="${pageContext.request.contextPath }/private/update_form.do"></a>

[in Controller.java]

@RequestMapping("/cafe/private/update_form.do") //.do는 생략가능
public String commentInsert() {
	....
	return "cafe/private/update_form"; //jsp는 설정에 따라 알아서 붙여준다.
}

 

case1-1

case1-1
 webapp/WEB-INF/views/cafe/list.jsp 에서 webapp/WEB-INF/views/cafe/detail.jsp 로 이동하고자 할 때
[in jsp]
상대경로로 요청할 때 : detail.do //두 jsp파일이 같은 cafe폴더하위에 존재한다.
절대경로로 요청할 때 : cpath/cafe/detail.do

1. .do 요청을 했으므로 dispatcher servlet을 거쳐간다.

2. 절대경로에서 cpath/ 에서 /는 views를 의미한다.
[in Controller] 
RequestMapping : @RequestMapping("/cafe/detail.do") //여기서 .do는 생략이 가능하다.
이동할 경로 : cafe/detail //.jsp는 설정에 따라 알아서 붙여준다. 

- RequestMapping과 이동할 경로에는 in jsp에서 절대경로로 요청할 때 cpath/ 다음에 있는 모든 경로를 적어주어야 한다.

[in list.jsp]

//상대경로
<a href="detail.do"></a>

//또는

//절대경로
<a href="${pageContext.request.contextPath }/cafe/detail.do"></a>

[in Controller.java]

@RequestMapping("/cafe/detail.do") //.do는 생략가능
public String commentInsert() {
		....
	return "cafe/datail"; //jsp는 설정에 따라 알아서 붙여준다.
}

 

case2

case2
webapp/WEB-INF/views/cafe/list.jsp 에서 webapp/svg/spinner-solid.svg 를 사용하고자 할때
[in jsp]
상대 경로로 요청할 때 : ../svg/spinner-solid.svg // 기준을 views라고 생각하자!(views이전의 svg폴더)
절대 경로로 요청할 때 : cpath/svg/spinner-solid.svg // cpath/의 /는 webapp을 의미한다. 

[in list.jsp]

//상대경로
<img src="../svg/spinner-solid.svg"></img>

//또는

//절대경로
<img src="${pageContext.request.contextPath }/svg/spinner-solid.svg"></img>

 

 

case2-1

case2-1
webapp/WEB-INF/views/cafe/private/update_form.jsp 에서 webapp/svg/spinner-solid.svg 를 사용하고자 할때
[in jsp]
상대 경로로 요청할 때 : ../../svg/spinner-solid.svg // 기준을 views라고 생각하자! (private이전, views이전의 svg폴더)
절대 경로로 요청할 때 : cpath/svg/spinner-solid.svg // cpath/의 /는 webapp을 의미한다. 
//상대경로
<img src="../../svg/spinner-solid.svg"></img>

//또는

//절대경로
<img src="${pageContext.request.contextPath }/svg/spinner-solid.svg"></img>

 

case3

case3
webapp/WEB-INF/views/cafe/list.jsp 에서 webapp/WEB-INF/views/cafe/ajax_comment_list.jsp 로 ajax요청할 때 
[in jsp 의 in ajax url]
상대경로로 요청할 때 : ajax_comment_list.do //두 jsp파일이 같은 cafe폴더하위에 존재한다.
절대경로로 요청할 때 : cpath/cafe/ajax_comment_list.do // cpath의 /는 views를 의미한다. 

1. .do 요청을 했으므로 dispatcher servlet을 거쳐간다.
2. 절대경로에서 cpath/ 에서 /는 views를 의미한다.
[in Controller] 
RequestMapping : @RequestMapping("/cafe/ajax_comment_list.do") //do는 생략이 가능하다.
이동할 경로 : cafe/ajax_comment_list //.jsp는 설정에 따라 알아서 붙여준다. 

- RequestMapping과 이동할 경로에는 in jsp에서 절대경로로 요청할 때 cpath/ 다음에 있는 모든 경로를 적어주어야 한다. 

[in list.jsp]

//상대경로
$.ajax({
		url:"ajax_comment_list.do",
		method:"GET",
		data:"pageNum="+currentPage
        //ajax_page.jsp의 내용이 data로 들어온다.
		success:function(data){...}					
});

//절대경로
$.ajax({			
		url:"${pageContext.request.contextPath}/cafe/ajax_comment_list.do",
		method:"GET",
		data:"pageNum="+currentPage,
		//ajax_page.jsp의 내용이 data로 들어온다.
		success:function(data){...}
});        


[in Controller.java]

@RequestMapping("/cafe/ajax_comment_list.do") //.do는 생략가능
public String commentInsert() {
	....
	return "cafe/ajax_comment_list"; //jsp는 설정에 따라 알아서 붙여준다.
}

 

case3-1

case3-1
webapp/WEB-INF/views/cafe/list.jsp 에서 webapp/WEB-INF/views/cafe/ajax_comment_list.jsp(실제로는 없음) 
로 ajax요청하는 데 @ResponseBody로 응답할 때 
[in jsp 의 in ajax url]
상대경로로 요청할 때 : ajax_comment_list.do //두 jsp파일이 같은 cafe폴더하위에 존재한다.
절대경로로 요청할 때 : cpath/cafe/ajax_comment_list.do // cpath의 /는 views를 의미한다. 

1. .do 요청을 했으므로 dispatcher servlet을 거쳐간다.
2. 절대경로에서 cpath/ 에서 /는 views를 의미한다.
[in Controller] 
RequestMapping : @RequestMapping("/cafe/ajax_comment_list.do") 와 @ResonseBody //do는 생략이 가능하다.
이동할 경로 : 없음

- RequestMapping과 이동할 경로에는 in jsp에서 절대경로로 요청할 때 cpath/ 다음에 있는 모든 경로를 적어주어야 한다.
-ResponseBody로 응답할 경우 응답할 내용을 ResponseBody하위에 적어주어야 한다. 

[in list.jsp]

//상대경로
$.ajax({
		url:"ajax_comment_list.do",
		method:"GET",
		data:"pageNum="+currentPage
        //ajax_page.jsp의 내용이 data로 들어온다.
		success:function(data){...}					
});

//절대경로
$.ajax({			
		url:"${pageContext.request.contextPath}/cafe/ajax_comment_list.do",
		method:"GET",
		data:"pageNum="+currentPage,
		//ajax_page.jsp의 내용이 data로 들어온다.
		success:function(data){...}
});        


[in Controller.java]

@RequestMapping("/cafe/ajax_comment_list.do") //.do는 생략가능
@Responsebody
public void commentInsert() {
	....
}

 

 

case4

case4
컨트롤러에서 return문에 webapp/WEB-INF/views/cafe/private/update_form.jsp로 가지는
/cafe/private/update_form.do
요청을 하고싶을 때
return "redirect:/list.=.do"  
return "redirect:/~~~.do?num="+num 

 

 

 

 

Comments