Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 그리디
- 자바
- 스프링 핵심 기능
- springdatajpa
- jpa
- pointcut
- spring
- SpringBoot
- 인프런
- JPQL
- 백준
- Exception
- Proxy
- http
- 김영한
- AOP
- 스프링 핵심 원리
- transaction
- Android
- Greedy
- JDBC
- Spring Boot
- 스프링
- Thymeleaf
- db
- QueryDSL
- java
- kotlin
- Servlet
- 알고리즘
Archives
- Today
- Total
개발자되기 프로젝트
[Servlet] 회원 관리 웹 애플리케이션 본문
1. MemberFormServlet
- 회원 등록 폼
- servlet 단점...html 자바 코드로 넣어야함.. ㅜㅜㅜ
@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");
//아 자바로 HTML 넣어야함.. 극혐
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");
}
}
2. MemberSaveServlet
@WebServlet(name = "MemberSaveServlet", 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 {
System.out.println("MemberSaveServlet.service");
String username = request.getParameter("username");
int age = Integer.parseInt(request.getParameter("age"));
Member member = new Member(username, age);
memberRepository.save(member);
response.setContentType("test/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();
w.write("<html>\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
"</head>\n" +
"<body>\n" +
"성공\n" +
"<ul>\n" +
" <li>id="+member.getId()+"</li>\n" +
" <li>username="+member.getUsername()+"</li>\n" +
" <li>age="+member.getAge()+"</li>\n" +
"</ul>\n" +
"<a href=\"/index.html\">메인</a>\n" +
"</body>\n" +
"</html>");
}
}
3. List조회
- 회원 목록 HTML을 for를 통해 동적으로 생성, 응답
@WebServlet(name = "MemberListServlet", urlPatterns = "/servlet/members")
public class MemberListServlet extends HttpServlet {
private MemberRepository memberRepository = MemberRepository.getInstance();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Member> members = memberRepository.findAll();
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter w = response.getWriter();
w.write("<html>");
w.write("<head>");
w.write(" <meta charset=\"UTF-8\">");
w.write(" <title>Title</title>");
w.write("</head>");
w.write("<body>");
w.write("<a href=\"/index.html\">메인</a>");
w.write("<table>");
w.write(" <thead>");
w.write(" <th>id</th>");
w.write(" <th>username</th>");
w.write(" <th>age</th>");
w.write(" </thead>");
w.write(" <tbody>");
/*
w.write(" <tr>");
w.write(" <td>1</td>");
w.write(" <td>userA</td>");
w.write(" <td>10</td>");
w.write(" </tr>");
*/
for (Member member : members) {
w.write(" <tr>");
w.write(" <td>" + member.getId() + "</td>");
w.write(" <td>" + member.getUsername() + "</td>");
w.write(" <td>" + member.getAge() + "</td>");
w.write(" </tr>");
}
w.write(" </tbody>");
w.write("</table>");
w.write("</body>");
w.write("</html>");
}
}
4.템플릿 엔진이 필요..
서블릿 덕분에 자바 코드로 동적으로 HTML을 만들 수 있었음.
근데..허허 굉장히 비효율적이고,, 오류 가능성이 많음.
HTML에 자바 코드가 들어가면 좋을텐데.. .라고해서 나온게 템플릿 엔진임.
5. GitHub : 210909 WebApplication with Servlet
'인프런 > [인프런] 스프링 MVC 1' 카테고리의 다른 글
[Servlet, JSP] MVC 패턴 (0) | 2021.09.09 |
---|---|
[JSP] 회원 관리 웹 애플리케이션 (0) | 2021.09.09 |
[Servlet] 회원 관리 웹 애플리케이션 요구사항 (0) | 2021.09.09 |
HTTP 응답 데이터 - API JSON (0) | 2021.09.08 |
HTTP 응답 데이터 - 단순 텍스트, HTML (0) | 2021.09.08 |
Comments