728x90
반응형
이번 주 과제는 이와 같이 JSP 로 팩토리얼을 구현하는거였습니다.
사실 JSP 가 뭔지도 제대로 설명해주시지 않았기 때문에 하나하나 찾아보느라 좀 고생을 했지만 그래도 해냈습니다!
1. newFile.js (이름을 귀찮아서 제대로 안 지음..) : 입력값 받음
2. result.js 로 넘어감
3. JavaTest 에서 factorial 계산 수행
4. result.js 에 출력
<newFile.js>_입력값 받기
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="firstDWP.JavaTest" %>//JavaTest 파일을 임포트했는데 없어도 되는 부분
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action = "result.jsp">//입력값을 받아서 result.jsp 에 출력시켜준다.
input : <input type = "text" name="num"> //입력값
<input type = "submit" value = "factorial">//버튼을 누르면 이동
</form>
</body>
</html>
<result.js>_계산결과 출력하기
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%@ page import="firstDWP.JavaTest" %>//여기서는 자바코드를 사용하기 때문에 임포트 해준다.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%//자바 코드가 들어가는 부분
String str = request.getParameter("num");//입력한 숫자 (name = num)를 가지고 온다.
int num = Integer.parseInt(str);//문자를 정수형태로 바꿔준다.
%>
<%
JavaTest hw = new JavaTest(); //java 페이지 객체? 와 같은 걸 생성한다.
int result = hw.Method(num); // java 페이지 객체 안의 함수를 실행한다. 팩토리얼이다.
%>
<%= result %> //result, 팩토리얼 한 값을 화면에 출력한다.
</body>
</html>
<JavaTest.java>_factorial 돌린 부분
package firstDWP;
public class JavaTest {
public int Method(int temp){
int num = temp;
int total=1;
for(int i =1; i<=num;i++)
total*=i;//for 문을 통해 팩토리얼을 실행한다.
return total;//실행값 리턴
}
}
이 과제를 할땐 코드가 이해 안 갔는데 Node.js 를 공부하다가 비슷한 내용이 나왔습니다.
https://com24everyday.tistory.com/22
이 부분을 공부하면 좀 더 쉽게 코드를 볼 수 있습니다.
결과
factorial 버튼을 클릭하면
이렇게 값이 나옵니다!
아직 초반이라 과제가 좀 쉽게 나오네요ㅎㅎ
사실 url 을 보면 입력값을 넘긴게 직관적으로 다가옵니다.
이런 식으로 url 파라미터 값을 건드려서 할 수도 있답니다.
오늘은 여기까지! 감사합니다.
좋아요와 구독 부탁드려요ㅎㅎ
728x90
반응형