프로그래밍/자바, JDBC
뉴렉처 학습(서블릿/JSP) 21강 ~ 22강(학습과제)
현호s
2020. 5. 12. 19:36
반응형
#21강 학습 과제(사용자 입력을 통한 계산 요청)
- 문제 : 사용자로부터 x, y 값 입력받아 결과 값으로서 x+y의 합계를 반환하기.
(직접 푼것)
1. add.html 파일 생성하여 입력받을 폼 생성 (WebContent에 add.html 생성 후 진행)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
// 입력 폼 생성 코드 x, y 입력, 결과 버튼
<form action="add" method="post">
<div>
<label> x : </label>
<input type="text" name="x" />
</div>
<div>
<label> y : </label>
<input type="text" name="y" />
</div>
<div>
<input type="submit" valut="덧셈(계산)" />
</div>
<div>
결과 : 0
</div>
</form>
</body>
</html>
2. 서블릿 생성하여 세부 코드 작성 (x+y 연산 등)
package com.nelecture.add;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/add")
public class sum extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
PrintWriter out = resp.getWriter();
String temp1 = req.getParameter("x");
String temp2 = req.getParameter("x");
int x = Integer.parseInt(temp1);
int y = Integer.parseInt(temp2);
int sum = 0;
sum = x + y;
out.printf("x + y 결과 : %d", sum);
}
}
#22강 과제풀이 (사용자 입력을 통한 계산 요청)
*21강 학습과제 풀이
1. 기존 com.newlecture.web 패키지에서 new 클릭 > servlet > class명 Add 입력 후 next > url mapping 편집(기존 Add > add) > service, inherited abstract methods만 체크 후 완료
2. 생성된 서블릿에 코드 입력 (x+y 연산 및 빈 문자열이 올 경우의 조건 설정 등)
package com.newlecture.web;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/add")
public class Add extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
// 이때 빈 문자열이 오거나 or 진짜 담긴 값이 오는 경우 발생
String x_ = request.getParameter("x");
String y_ = request.getParameter("y");
int x = 0;
int y = 0;
// ! : '아니다' 를 의미.
// 빈 문자열이 아닐 경우의 조건 설정(빈 문자열이 아닌 경우 입력 된 값 받기)
if (!x_.equals("")) x = Integer.parseInt(x_);
if (!y_.equals("")) y = Integer.parseInt(y_);
int result = x + y;
response.getWriter().printf("result is %d\n", result);
}
}
3. add.html 생성하여 코드 작성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="add" method="post">
<div>
<label> x : </label>
<input type="text" name="x" />
</div>
<div>
<label> y : </label>
<input type="text" name="y" />
</div>
<div>
<input type="submit" value="덧셈(계산)" />
</div>
<div>
결과 : 0
</div>
</form>
</body>
</html>
4. 입력 - 출력 결과 확인
반응형