ํฐ์คํ ๋ฆฌ ๋ทฐ

๐ JSP๋ก ์ฌ์น์ฐ์ฐ ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ ์ค์ต

์์ ๊ฐ์ ํ๋ฆ์ผ๋ก ์๋น์ค๋ฅผ ์ฒ๋ฆฌํด ๋ณด๋ ค๊ณ ํฉ๋๋ค :)
1. ์ฐ์ ํ๋ฉด์ ๋ง๋ค์
๐ WebContent/calc.jsp ํ์ผ
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์ ์ ์
๋ ฅ</title>
</head>
<body>
<form action="" name="expression-form">
<input type="text" placeholder="์์ ์
๋ ฅ" id="expression" name="expression">
<input type="button" id="send" value="๊ฒฐ๊ณผ ํ์ธ">
</form>
</body>
<script src="https://code.jquery.com/jquery-3.6.4.min.js"></script>
<script>
$("#send").on("click", () => {
if(!$("#expression").val()) {
alert("์์์ ์
๋ ฅํด์ฃผ์ธ์.");
return;
}
$("form[name='expression-form']").submit();
})
</script>
</html>

๊ทธ๋ผ ์์ ๊ฐ์ด ๊ฐ๋จํ๊ฒ input ์ฐฝ, button ํ๋ ์ด๋ ๊ฒ ๊ตฌ์ฑ๋ฉ๋๋ค.์ฐ๋ฆฌ๋ ์์์ ๋ ฅ์ด๋ผ๊ณ ๋ณด์ด๋ input์ 1+1 ์ด๋ฐ์์ผ๋ก ๋ฌด์กฐ๊ฑด ์ซ์ 2๊ฐ์ ์ฌ์น์ฐ์ฐ ๊ธฐํธ 1๊ฐ ์ด๋ ๊ฒ ๋ค์ด์จ๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ก์ง์ ์์ฑํ๋ ค๊ณ ํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ฌ์น์ฐ์ฐ ๊ธฐํธ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ฐ์ฐํ๊ฒ ๋๊ฒ ์ฃ ?
์ฐธ๊ณ ๋ก ์์ง action="" ์๋ฆฌ๋ ๋น์๋์ต๋๋ค. ํด๋น ์๋ฆฌ์๋ ์ฐ์ฐ์ ๋ด๋นํ ์๋ธ๋ฆฟ์ด ์๋ ํ์ผ๋ช ํน์ ๊ฒฝ๋ก๋ฅผ ์ ์ด์ฃผ์ด์ผ ํฉ๋๋ค. ์ ๋ ์๋ธ๋ฆฟ์ ์์ฑํ๊ณ , web.xml์์ ๊ฐ์์ฃผ์๋ฅผ ๋ฑ๋กํ ํ์ ๋ค์ ์ฑ์ฐ๋๋ก ํ๊ฒ ์ต๋๋ค.
2. ์ค์ ์ฐ์ฐ์ ๋ด๋นํ ํด๋์ค๋ฅผ ๋ง๋ค์
๐ src/com/task/app/Calc.java ํ์ผ
package com.task.app;
public class Calc {
private int number1;
private int number2;
public Calc() {;}
public Calc(String number1, String number2) {
super();
this.number1 = Integer.parseInt(number1);
this.number2 = Integer.parseInt(number2);
}
public int add() {return number1 + number2;}
public int sub() {return number1 - number2;}
public int mul() {return number1 * number2;}
public int div() {return number1 / number2;}
}
3. ์๋ธ๋ฆฟ์ ๋ง๋ค์ - ์๋ธ๋ฆฟ์ HttpServlet์ ์์๋ฐ์ Class์ผ๋ฟ์ด๋ค..
๐ src/com/task/app/Oper.java ํ์ผ
package com.task.app;
import java.io.IOException;
public class Oper extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
boolean isError = false;
String expression = request.getParameter("expression");
String opers = "+-*/";
char oper = ' ';
Calc calc = null;
String[] numbers = null;
int result = 0;
PrintWriter out = response.getWriter();
for (int i=0; i<expression.length(); i++) {
for (int j=0; j<opers.length(); j++) {
if (expression.charAt(i) == opers.charAt(j)) {
oper = opers.charAt(j);
}
}
}
numbers = expression.split("\\" + oper);
calc = new Calc(numbers[0], numbers[1]);
switch (oper) {
case '+':
result = calc.add();
break;
case '-':
result = calc.sub();
break;
case '*':
result = calc.mul();
break;
case '/':
try {
result = calc.div();
} catch (Exception e) {
isError = true;
out.print("<h1>0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.</h1>");
out.print("<a href='/calc'>๋ค์ ๊ณ์ฐํ๊ธฐ</a>");
out.close();
}
break;
}
if (!isError) {
out.print("<h1>๊ฒฐ๊ณผ: " + result + "</h1>");
out.print("<a href='/calc'๋ค์ ๊ฒ์ฐํ๊ธฐ></a>");
out.close();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
'๋ฐฑ์๋ > JSP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JSP] ๋ก๊ทธ์ธ, ํ์๊ฐ์ , ์์ด๋ ์ค๋ณต๊ฒ์ฌ ๊ธฐ๋ฅ ๊ตฌํํด๋ณด๊ธฐ (0) | 2023.04.20 |
---|---|
[JSP] MVC ํจํด์ด๋? (0) | 2023.04.20 |
[JSP] ์๋ธ๋ฆฟ(Servlet)์ด๋ ? (0) | 2023.04.19 |
[JSP] MyBatis๋ ? (0) | 2023.04.19 |
[JSP] JSP(Java Server Page)๋? (0) | 2023.04.19 |
- Total
- Today
- Yesterday
- styled-components
- react
- ํ์ด์ฌ
- CSS
- JSP
- ์๋ฐ
- ํ๋ก ํธ์๋ ๊ธฐ์ด
- ์ธํ๋ฐ
- frontend
- Python
- ์๋ฐ์คํฌ๋ฆฝํธ
- react-query
- ํ๋ก ํธ์๋ ๊ณต๋ถ
- ํ๋ก ํธ์๋
- ๋ํ๋ง
- jest
- ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด
- ํ๋ก์ ํธ ํ๊ณ
- TypeScript
- ๋ฅ๋ฌ๋
- ๋ฐ์ดํฐ๋ถ์
- ๋ฆฌ์กํธ
- next.js
- rtl
- ๋ฆฌ์กํธ ํ
- ์คํ์ผ ์ปดํฌ๋ํธ styled-components
- ํ์ ์คํฌ๋ฆฝํธ
- HTML
- testing
- ๋จธ์ ๋ฌ๋
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |