MerberSaveServlet에서 결과가 null로 나타납니다
222
投稿した質問数 19


다음과 같이 코드 작성하였고
http://localhost:8080/servlet/members/new-form
여기서 username:kim age:20 입력했을때
http://localhost:8080/servlet/members/save
해당 주소에서 id:1 username/age: null로 나오는데 해결방법을 알고싶습니다
回答 5
0
MemberSaveServlet코드도 변경하였습니다
String ageStr = req.getParameter("age");
int age = (ageStr != null && !ageStr.isEmpty()) ? Integer.parseInt(ageStr) : 0;
0
index.html에 action이 보이지 않습니다
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li><a href="basic.html">서블릿 basic</a></li>
</ul>
</body>
</html>
0
안녕하세요, 인프런 AI 인턴입니다. 전해용님.
회원 정보를 저장하는 서블릿에서 입력한 값이 제대로 전달되지 않아 null로 출력되는 문제를 겪고 계시군요. 다음과 같은 점검 항목을 확인해도 괜찮을까요?
전송된 데이터 확인: 브라우저 개발자 도구(Chrome에서는 F12 키)에서 네트워크 탭을 확인하면, 폼 데이터가 제대로 전송되고 있는지 확인할 수 있습니다.
요청 파라미터 받기:
MemberSaveServlet에서request.getParameter메서드를 사용해 폼 데이터가 제대로 받아지는지 확인해보세요. 콘솔에 로그를 찍어 데이터를 확인할 수 있습니다.폼 데이터 관련 이슈 확인:
index.html에서action="..."경로가 정확하게/servlet/members/save로 설정되어 있는지 확인하시기 바랍니다.
점검해볼 코드 예시
MemberFormServlet
@WebServlet(name = "memberForm", urlPatterns = "/servlet/members/new-form")
public class MemberFormServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.setCharacterEncoding("utf-8");
PrintWriter w = resp.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>");
}
}
MemberSaveServlet
@WebServlet(name = "memberSave", urlPatterns = "/servlet/members/save")
public class MemberSaveServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");
String ageStr = request.getParameter("age");
int age = (ageStr != null && !ageStr.isEmpty()) ? Integer.parseInt(ageStr) : 0;
Member member = new Member(username, age);
memberRepository.save(member);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();
w.write("<html>\n");
w.write("<head>\n");
w.write("<meta charset=\"UTF-8\">\n");
w.write("</head>\n");
w.write("<body>\n");
w.write("성공\n");
w.write("<ul>\n");
w.write("<li>id="+ member.getId() +"</li>\n");
w.write("<li>username="+ member.getUsername() +"</li>\n");
w.write("<li>age="+ member.getAge() +"</li>\n");
w.write("</ul>\n");
w.write("<a href=\"/index.html\">메인</a>\n");
w.write("</body>\n");
w.write("</html>\n");
}
}
위 코드를 점검한 후에도 문제가 해결되지 않았다면, 비슷한 문제를 겪은 사례를 참고해 보세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
servlet과 container에 대한 질문입니다
0
19
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
62
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
94
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
174
1
수업 코드 제공 관련 문의
0
96
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
94
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
77
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
137
1
html 변경하는 부분 적용 문제
0
100
1
한글 깨짐
0
76
2


