일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링Java설정
- 스프링개발환경
- html기본문법
- 인테리어소품
- tomcat실행오류
- 내맘대로테마적용
- 전자책사전준비
- 스프링플러그인설치방법
- mybatis의mapper오류
- 수익쏠쏠한전자책
- 이클립스마켓
- 전자책등록방법
- 크몽전문가인증
- 이클립스이쁜테마
- 자바개발환경구축
- 프로젝트Java버전변경
- 크몽으로부자되기
- 이클립스테마변경
- 이클립스사용꿀팁
- eclipse설치
- STS설치방법
- 이클립스설치
- 코딜리티테스트
- 크몽부업
- 스프링자바설정
- Mapper중복선언
- 스프링빌드패스설정
- 스프링뽀개기
- 코딜리티문제
- 스프링BuildPath
응 괜찮아,
05. Spring 프로젝트 JSP 직접 호출 시, 404 에러 발생 본문
안냐세염 😊
지난번 Spring 프로젝트 한글깨짐 해결했던 포스트에 이어
오늘은 Spring 프로젝트에서 발생할 수 있는 에러에 대해 다뤄보려고 합니다.
Spring 프로젝트 한글깨짐 해결방법에 대해 다시 보고 싶으신 분은 아래 링크 클릭 클릭 👇👇👇
2021/02/11 - [IT/Spring] - 04. Spring 프로젝트 한글깨짐 해결
04. Spring 프로젝트 한글깨짐 해결
안녕하세요. 설을 앞둔 즐거운 오후입니다. 오늘은 스프링 프로젝트와 큰 관련은 없지만, 지난번 포스트와 관련하여 잠깐 부가적인 설명을 하려고 합니다. 지난번에는 이클립스(Eclipse)에서 아파
itsokay92.tistory.com
그리고 HTML의 a 태그에 대해 모르시는 분은 아래 포스트 다녀와주세요 👇👇👇
2021/02/25 - [IT/HTML] - [HTML] a 태그 파헤치기
[HTML] a 태그 파헤치기
1. a 태그, 언제 사용하는 아이인가 현재 페이지에서 다른 페이지로 이동할 때 사용 2. a 태그 표기방법 내용 3. a 태그의 속성 속성 역할 href 이동할 페이지 주소 (= 목적지 주소) target 이동할 페이
itsokay92.tistory.com
저는 Spring 프로젝트의 /WEB-INF/views 폴더 안에 있던 home.jsp에서 joinMember.jsp을 호출하려고
아래와 같이 코드를 일단 작성해봤는데요.
/*********************************** home.jsp **************************************/
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="joinMember.jsp">회원가입</a>
</body>
</html>
코드를 작성하고 나서 프로젝트를 톰캣 서버에서 실행했습니다. 그
럼 웹 브라우저에서 아래 화면이 보여지는데 화면에 있는 "회원가입"을 클릭해봅니다.
헉!!!😧
404 에러가 발생하네요. 404 에러는 웹 페이지를 찾을 수 없을 때 나는 오류!!
이상하죠? joinMember.jsp는 분명 /WEB-INF/views 폴더 안에 존재하고 있고 웹 브라우저 주소도 맞는데 말이죠.
알고보니 home.jsp에서 a 태그로 joinMember.jsp를 호출했을 때 404 에러가 발생했던 이유는
joinMember.jsp가 위치해있는 WEB-INF 폴더가 브라우저에서 직접적으로 접근 불가능한 폴더이기 때문입니다.
외부에서의 직접적인 접근을 막고 있기 때문에 시스템의 구조(내부)를 감출 수 있는 장점을 갖추고 있죠.
따라서 아래 코드처럼 "~.do"와 같이 Controller에서 처리 가능하나 Request URL 형태로 호출하여,
View(home.jsp)가 아닌 Controller에서 또 다른 View(joinMember.jsp)로 이동할 수 있도록 해야 합니다.
/************************** View (home.jsp) *****************************/
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="joinMember.do">회원가입</a>
</body>
</html>
/***************************** Controller (HomeController.java) *****************************/
package com.test.myspring;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Handles requests for the application home page.
*/
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/**
* Simply selects the home view to render by returning its name.
*/
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("method [" + Thread.currentThread().getStackTrace()[1].getMethodName() + "]"); // 로그에 메소드명 나타내기x
return "home";
}
@RequestMapping(value = "joinMember.do")
public String joinMmeber(Model model) {
logger.info("method [" + Thread.currentThread().getStackTrace()[1].getMethodName() + "]");
return "joinMember"; // joinMember.jsp 호출!!!
}
}
좋아요는 언제나 환영입니다😊
잘못된 부분이나 문의사항 있으시면 언제든 댓글주세요!!
'IT > Spring' 카테고리의 다른 글
07. [오류] The prefix "mybatis-spring" for element "mybatis-spring:scan" is not bound. (0) | 2021.03.07 |
---|---|
06. 메이븐 오류 Missing artifact com.oracle:ojdbc7:jar:12.1.0.2 (0) | 2021.03.07 |
04. Spring 프로젝트 한글깨짐 해결 (0) | 2021.02.11 |
03. 아파치 톰캣과 이클립스 연동 (0) | 2021.02.09 |
02. 아파치 톰캣( Apache Tomcat) 설치 (0) | 2021.02.09 |