문제풀이/일일연습문제

[Servlet]사용자 입력을 통한 계산 요청

Mo_bi!e 2023. 3. 7. 12:06

[4 - 2]

1. 문제설명

2. 나의 해답

package praticeWebPrj;

import java.io.IOException;
import java.io.PrintWriter;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

@WebServlet("/add")
public class servletTest extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) 
			throws ServletException, IOException {
		
		resp.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html;charset=utf-8;");
		
		PrintWriter out = resp.getWriter(); //문자열의 경우
//		out.println("test");
		
		
//		String a = req.getParameter("b");
//		System.out.println(a);
		
		String x = req.getParameter("x");
		String y = req.getParameter("y");
		
		int x_ = 0;
		int y_ = 0;
		int result = 0;
		
		if(!x.equals("")) x_ = Integer.parseInt(x);
		if(!y.equals("")) y_ = Integer.parseInt(y);
		
		result = x_ + y_;
		
		System.out.println(x);
		System.out.println(y);
		System.out.println(result);
		
		resp.getWriter().printf("result is %d", result);
		
		
//		req
//		.getRequestDispatcher("/add.html")
//		.forward(req, resp);
	
		
	
	
	}

}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="add">
	
		<div>
			<label>x:</label>
			<input type="input" name="x">
		
		</div>
		
		<div>
			<label>y:</label>
			<input type="input" name="y">
		
		</div>
		
		<div>
			<input type="submit" name="덧셈">
		
		</div>
		
		<div>
			결과
		</div>
	</form>

</body>
</html>

콘솔 : 21 (오답)

 

3. 정답 코드

상동

 

4. 보충 및 회고 

(1) 보충

 

(2) 회고 : 문제풀이과정에서 어떻게 접근하려고했는지 (접근방법) + 어려움이 있었는데 해결했다.

1) 서버가 여러개가 한번에 켜질 수있다는 것을 알게되었음

 

2) 서블릿에서 포워딩, 리다이렉트 방식보다 앞서서 동일 주소로 html 바로 접근이 가능하다는 것을 알게되었음

 

3) resp로 이후 출력에 대해서 명시가 가능함

 

4) 서블릿으로 기본기좀 단련하자!