* 본 글은 [뉴렉처]의 Servlet&JSP 프로그래밍 강의를 듣고 정리한 글입니다.
2020 Servlet&JSP 프로그래밍
www.youtube.com
여러 개의 Submit 버튼 사용하기
버튼 2개 만들기: 덧셈과 뺄셈
- add.html과 Add.java 복사+붙여넣기 해서 새 파일 만들기
- add.html 수정
- add.html의 <form>의 속성 action 값을 calc로 변경
- add.html에 <input type=”submit” value=”뺄셈”/> 추가
- 서버로 값을 전달하기 위해 add.html에서 두 <input>에 name=”operator” 추가
- 덧셈 버튼과 뺄셈 버튼을 동시에 누를 수 없으니 같은 이름으로 해도 됨
- 덧셈 버튼을 누르면 덧셈 값만 전달되고, 뺄셈 버튼을 누르면 뺄셈 값만 전달됨
- name: value의 형태로 operator: 덧셈이 전달됨
- URL 형태로 전달될 때는 ‘덧셈’이 URL 형식으로 변환됨
- add.html 최종 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>계산기 웹 프로그램</title>
</head>
<body>
<form action="calc" method="post">
<div>
<p>계산할 값을 입력하세요.</p>
</div>
<div>
<label>x : </label>
<input name="x" type="text"/>
</div>
<div>
<label>y : </label>
<input name="y" type="text"/>
</div>
<div>
<input type="submit" name="operator" value="덧셈">
<input type="submit" name="operator" value="뺄셈">
</div>
</form>
</body>
</html>
- Add.java 수정
- 매핑주소를 calc로 변경 ( @WebServlet("/calc") )
- 쿼리 operator의 값을 문자열 op로 받기
- result는 0으로 초기화
- op 값이 덧셈이면 x+y, 뺄셈이면 x-y 하도록 조건문 작성
- 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("/calc")
public class Calc extends HttpServlet {
@Override
protected void service(HttpServletRequest request
, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html; charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String x_ = request.getParameter("x");
String y_ = request.getParameter("y");
String op = request.getParameter("operator");
int x = 0;
int y = 0;
if(!x_.equals("")) {
x = Integer.parseInt(x_);
}
if(!y_.equals("")) {
y = Integer.parseInt(y_);
}
int result = 0;
if(op.equals("덧셈")) {
result = x + y;
} else {
result = x - y;
}
response.getWriter().printf("계산 결과는 %d\n", result);
}
}
결과
- 입력창
- 개발자도구>Network
- 덧셈 결과
- 뺄셈 결과
'☕ Java 웹 프로그래밍 > Servlet & JSP' 카테고리의 다른 글
[Servlet&JSP] 8일차 | 상태 유지를 필요로 하는 경우와 구현의 어려움 (0) | 2023.05.28 |
---|---|
[Servlet&JSP] 배열 형태로 입력 데이터 받기 (0) | 2023.05.28 |
[Servlet&JSP] 이클립스에서 클래스가 아닌, 서블릿으로 서블릿 만들기 (0) | 2023.05.26 |
[Servlet&JSP] 한글이 깨지는 문제 해결방법 최종 정리 (0) | 2023.05.26 |
[Servlet&JSP] 학습과제: 사용자 입력을 통한 계산 요청 (4) | 2023.05.26 |