인프런 커뮤니티 질문&답변

zzzzz님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

서블릿, JSP, MVC 패턴질문입니다.

작성

·

160

·

수정됨

0

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="/jsp/members/save.jsp" method="post">
    username: <input type="text" name="username" />
    age:      <input type="text" name="age" />
    <button type="submit">전송</button>
</form>
</body>
</html>
  1. 서블릿, JSP, MVC 패턴 강좌 : JSP로 회원 관리 웹 애플리케이션 만들기 10분에서요.

age를 숫자가 아닌 문자를 넣으면 에러 페이지가 뜨는데 위에 코드에 숫자만 넣으라는 부분이 없는데 어디에서 에러를 잡아주는건가요? 자바는 아닌것 같아서요.

2.

MVC 패턴 - 적용 5분 45초 질문있습니다. 데이터 저장은 MemberRepository 에서 하는걸로 이해했는데요.

servlet/src/main/webapp/WEB-INF/views/new-form.jsp 이 파일에서 save가 상대경로를 의미하여, /servlet/members/new-form-> /servlet/members/save로 바뀐다고 하셨는데요.

그럼 save 즉 아래 파일(코드)에서 저장한다는 말씀인가요?

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<!-- 상대경로 사용, [현재 URL이 속한 계층 경로 + /save] -->

<form action="save" method="post">

username: <input type="text" name="username" />

age: <input type="text" name="age" />

<button type="submit">전송</button>

</form>

</body>

</html>

 

 

package hello.servlet.web.servlet;

import hello.servlet.domain.member.MemberRepository;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.io.PrintWriter;

@WebServlet(name = "memberFormServlet", urlPatterns = "/servlet/members/new-form")

public class MemberFormServlet extends HttpServlet {

private MemberRepository memberRepository = MemberRepository.getInstance();

@Override

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType("text/html");

response.setCharacterEncoding("utf-8");

PrintWriter w = response.getWriter();

w.write("<!DOCTYPE html>\n" +

"<html>\n" +

"<head>\n" +

" <meta charset=\"UTF-8\">\n" +

" <title>Title</title>\n" +

"</head>\n" +

"<body>\n" +

"<form action=\"/servlet/members/save\" method=\"post\">\n" +

" username: <input type=\"text\" name=\"username\" />\n" +

" age: <input type=\"text\" name=\"age\" />\n" +

" <button type=\"submit\">전송</button>\n" +

"</form>\n" +

"</body>\n" +

"</html>\n");

}

}

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. zzzzz님

1번을 이해하려면 오류 메커니즘을 전체적으로 이해해야 하는데요. 스프링 MVC2편에서 자세히 설명드립니다 :)

2번은 다음 코드에서 저장하게 됩니다.

@WebServlet(name = "memberSaveServlet", urlPatterns = "/servlet/members/save")

public class MemberSaveServlet extends HttpServlet {...}

감사합니다.

 

zzzzz님의 프로필 이미지

작성한 질문수

질문하기