[ pom.xml ]
<!-- 한글 설정 시작 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 한글 설정 끝 -->
[ BMICalculator.java ]
package com.edu.di.bmi;
//-------------------------------------------------------------------
// BMI(Body Mass Index : 체질량 지수) 계산기
// 비만도 측정(BMI 지수)
// BMI를 이용한 비만도 계산 : 자신의 몸무게를 키의 제곱으로 나눈 것으로 공식은 kg/㎡
// BMI가 18.5 이하 : 저체중 / 18.5 ~ 22.9 : 정상 / 23.0 ~ 24.9 과체중 / 25.0 이상 : 비만
// Ex) 키 170cm, 몸무게 73kg => 73 / (1.7x1.7) = 25.6 => 과체중
//-------------------------------------------------------------------
public class BMICalculator {
// 체질량 계산에 기준이 되는 변수들
private double lowWeight; // 저체중
private double normalWeight; // 정상
private double overWeight; // 과체중
private double obesity; // 비만
//---------------------------------------------------------------
// 비만도를 계산하는 메서드
//---------------------------------------------------------------
public void bmiCalculator(double weight, double height) {
double h = height * 0.01;
double result = weight / (h*h);
System.out.println("BMI 지수 : " + (int)result);
// 큰 수부터 비교하여야지만 충돌이 일어나지 않음
if(result > obesity) {
System.out.println("비만입니다. 살 빼세요!");
} else if(result > overWeight) {
System.out.println("과체중입니다. 건강 유의하시기 바랍니다.");
} else if(result > normalWeight) {
System.out.println("정상입니다.");
} else {
System.out.println("저체중입니다. 건강 관리하세요.");
}
} // End - public void bmiCalculator(double weight, double height)
public double getLowWeight() {
return lowWeight;
}
public void setLowWeight(double lowWeight) {
this.lowWeight = lowWeight;
}
public double getNormalWeight() {
return normalWeight;
}
public void setNormalWeight(double normalWeight) {
this.normalWeight = normalWeight;
}
public double getOverWeight() {
return overWeight;
}
public void setOverWeight(double overWeight) {
this.overWeight = overWeight;
}
public double getObesity() {
return obesity;
}
public void setObesity(double obesity) {
this.obesity = obesity;
}
@Override
public String toString() {
return "BMICalulator [lowWeight=" + lowWeight + ", normalWeight=" + normalWeight + ", overWeight=" + overWeight
+ ", obesity=" + obesity + "]";
}
} // End - public class BMICalulator
[ BMIMain.java ]
package com.edu.di.bmi;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
//-------------------------------------------------------------------------
// public class BMIMain
//-------------------------------------------------------------------------
public class BMIMain {
//-------------------------------------------------------------------------
// public static void main(String[] args)
//-------------------------------------------------------------------------
public static void main(String[] args) {
// classpate => src/main/resources를 가르킨다.
String conf = "classpath.ApplicationContext.xml";
// 스프링 컨테이가 형성된다.
ApplicationContext ctx = new GenericXmlApplicationContext(conf);
// 스프링 컨테이너에서 컴포넌트를 가져온다.
MyInfo myInfo = ctx.getBean("myInfo", MyInfo.class);
myInfo.getInfo();
((AbstractApplicationContext) ctx).close();
} // End - public static void main(String[] args)
} // End - public class BMIMain
[ applicationContexts.xml ]
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- BMICalculator bmiCalc = new BMICalculator(); -->
<bean id="bmiCalc" class="com.edu.di.bmi.BMICalculator">
<property name="lowWeight">
<value>18.5</value>
</property>
<property name="normal">
<value>23</value>
</property>
<property name="overWeight" value="25"></property>
<property name="obesity" value="33"></property>
</bean>
<!-- MyInfo myInfo = new MyInfo(); -->
<bean id="myInfo" class="com.edu.di.bmi.MyInfo">
<property name="name" value="홍길동"></property>
<property name="height" value="178"></property>
<property name="weight" value="78"></property>
<property name="hobby">
<list>
<value>무술 연마</value>
<value>등산</value>
<value>음악 감상</value>
<value>남의 집 방문하기</value>
<value>신천 유람</value>
</list>
</property>
<property name="bmiCalculator">
<ref bean="bmiCalc"/>
</property>
</bean>
</beans>
[ MyInfo.java ]
package com.edu.di.bmi;
import java.util.ArrayList;
//-------------------------------------------------------------------
// 개인 정보
//-------------------------------------------------------------------
public class MyInfo {
private String name; // 이름
private double height; // 키
private double weight; // 몸무게
private ArrayList<String> hobby; // 취미
private BMICalculator bmiCalculator;
public void bmiCalculate() {
bmiCalculator.bmiCalculator(weight, height);
}
public void getInfo() {
System.out.println("이 름 : " + name);
System.out.println("키 : " + height);
System.out.println("몸무게 : " + weight);
System.out.println("취 미 : " + hobby);
// BMI 지수를 계산해 결과를 보여준다.
bmiCalculate();
}
// getter setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public ArrayList<String> getHobby() {
return hobby;
}
public void setHobby(ArrayList<String> hobby) {
this.hobby = hobby;
}
public BMICalculator getBmiCalculator() {
return bmiCalculator;
}
public void setBmiCalculator(BMICalculator bmiCalculator) {
this.bmiCalculator = bmiCalculator;
}
// toString
@Override
public String toString() {
return "MyInfo [name=" + name + ", height=" + height + ", weight=" + weight + ", hobby=" + hobby
+ ", bmiCalculator=" + bmiCalculator + "]";
}
} // End - public class MyInfo
[ ExamController1 ]
package com.edu.exam;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
//-------------------------------------------------------------------------
// public class ExamController1
// @Container : ExamController1 클래스를 컨트롤러로 설정하는 어노테이션이다.
// @Controller : ExamController1 클래스를 컨트롤러로 설정하는 어노테이션이다.
// @RequestMapping("/exam01") : /exam01로 접근하는 URL을 처리하겠는가를 기술하는 것이다.
//-------------------------------------------------------------------------
@Controller
@RequestMapping("/exam01")
public class ExamController1 {
//-------------------------------------------------------------------------
// public doA() : void 타입 => return 타입이 없는 경우
// localhost:8099/exam01/doA
//-------------------------------------------------------------------------
@RequestMapping("/doA")
public void doA() {
System.out.println("doA가 실행되었습니다......");
}
//-------------------------------------------------------------------------
// public void doB()
//-------------------------------------------------------------------------
@RequestMapping("/doB")
public void doB() {
System.out.println("doB가 실행되었습니다......");
}
} // End - public class ExamController1
[ doA ]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>doA.jsp</title>
</head>
<body>
<h1>doA.jsp</h1>
<h2>저는 doA.jsp 파일입니다.</h2>
</body>
</html>
[doB]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>doB.jsp</title>
</head>
<body>
<h1>doB.jsp</h1>
<h2>doB.jsp가 불려왔습니다.</h2>
</body>
</html>
[ ExamController2 ]
package com.edu.exam2;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
//-------------------------------------------------------------------------
// public class ExamController2
// @Container : ExamController2 클래스를 컨트롤러로 설정하는 어노테이션이다.
// @Controller : ExamController2 클래스를 컨트롤러로 설정하는 어노테이션이다.
// @RequestMapping("/exam02") : /exam02로 접근하는 URL을 처리하겠는가를 기술하는 것이다.
//-------------------------------------------------------------------------
@Controller
@RequestMapping("/exam02")
public class ExamController2 {
//-------------------------------------------------------------------------
// return 타입이 String인 경우
// @ModelAttribute("msg")는 주소창에서 msg라는 파라미터의 값을 가져온다.
// http://localhost:8099/exam02/doC?msg=hello
// 이렇게 주소창에 파라미터가 적혀있는 경우에 자동적으로 msg의 값인 hello를 가져오게 된다.
// request.getParameter("msg")를 사용하지 않아도 된다.
//-------------------------------------------------------------------------
@RequestMapping("/doC")
public String doC(@ModelAttribute("msg") String msg) {
System.out.println("doC가 실행되었습니다 msg => " + msg);
// return에 문자열이 사용될 경우에는 문자열.jsp파일을 찾아서 실행하게 된다.
// void 타입과는 다르게 return타입이 string인 경우에는
// return 하는 문자열이 View의 이름이 된다.
return "exam02/doC";
}
} // End - public class ExamController2
[ doC ]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>doC.jsp</title>
</head>
<body>
<h1>doC 실행 화면</h1>
<h1>ModelAttribute에 담겨져 오는 메시지 받기</h1>
<hr/>
<h1>메시지 : ${msg}</h1>
</body>
</html>
728x90
반응형
'프로그래밍 언어 > JSP' 카테고리의 다른 글
JSP_22-11-08 (0) | 2022.11.08 |
---|---|
쇼핑몰 만들기(1) (0) | 2022.11.07 |
JSP_22-11-02 (0) | 2022.11.02 |
JSP_22-11-01 (0) | 2022.11.01 |