티스토리 뷰

반응형

더하기 프로그램!
프로그램이라고 할 것도 없지만 일단 만들어보자!

Add.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="Add" method="post">
		<div>
			<label>두개의 숫자를 입력</label>
		</div>
		<div><input type="text" name="x"/><input type="text" name="y"/></div>
		<div>
			<input type="submit" value="더하기" />
		</div>
	</form>

</body>
</html>


Add.java

package com.newlecture.web;

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 Add extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html; charset=UTF-8");
		
		PrintWriter out = response.getWriter();
		
		int x = Integer.parseInt(request.getParameter("x"));
		int y = Integer.parseInt(request.getParameter("y"));
		
		out.println(x+y);
	}
	
	}
	

크게 설명할 것도 없다. 이전에 썼던 코드들을 조금만 변형해서 그냥 넣으면 된다!

더하기 웹 프로그램

자~ 이제 버그 투성인 이 프로그램 결과도 한번 보자!

문자 입력시 버그

문자나 공백 입력시 버그가 발생한다! 버그는 뭐 지금 수정하긴 그렇고... 일단 요기까지!

"뉴 렉처"님의 코드도 한번 확인해보자!

package com.newlecture.web;

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 Add extends HttpServlet {
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		response.setCharacterEncoding("UTF-8"); //UTF-8로 인코딩해서 출력
		response.setContentType("text/html; charset=UTF-8"); //브라우저야 UTF-8로 읽어줘

		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);
		}
	}
	
	}


x, y값을 문자열로 받아와서 임시변수에 저장 후
그리고 x, y 기본값을 0으로 설정해두셨다.
if문에서 문자열이 비어있지 않을 경우 임시변수의 값을 x, y에 대입해 결과값을 얻는다. 
어려운 코드는 아니지만 확실히 내가 짠,,, 계산만 있는 코드랑은 완전히 다르네;ㅋ

반응형
댓글
공지사항