반응형

[성능테스트] Apache - JMeter 사용법


이번 포스팅은 성능테스트를 할수있는 Apache - JMeter 사용법에 대해서 포스팅하겠습니다.

JMeter 는 url정보를 입력해주고, 상황에따라 parameter을 넣어주신 후에 테스트할 사용자 및 반복횟수를 설정하여

성능을 확인할수 있습니다. 가장 기본적인 기능이고 자세한 기능들은 아직 저도 많이 안써봐서 잘모르겠네요..

아래는 로그인부터 쿠키저장을 하고 내부에 프로세스까지 테스트하는 직접 해본 예제를 첨부하였습니다.


아파치 JMeter 홈페이지

http://jmeter.apache.org/


JMeter 다운로드 ( 최신버전 이전의 버전들 )

https://archive.apache.org/dist/jmeter/binaries/ 



아파치 jmeter 홈페이지에서는 참고하실수있는 기본적인 매뉴얼 등을 제공하며 jmeter을 다운로드 받으실수 있습니다.

현재 최신버전은 Apache JMeter 3.3 버전 ( Java 8 필요 ) 이며, JMeter 3.3은 아직 Java 9를 지원하지 않습니다.

저는 기존 프로젝트가 java7 버전을 사용해서, JMeter 2.13버전을 다운로드 받아 사용했습니다.


Apache-jmeter-2.13.zip 을 다운로드하였으며, 압축을 풀어줍시다.

압축을 풀어서 폴더로 들어가시면



위와같이 폴더와 파일들이 있는데요.

apache-jmeter-2.13 / bin 폴더로 들어가셔서 jmeter.bat 를 실행하시면 됩니다.

실행하시면 cmd창과 함께 JMeter이 실행됩니다. ( cmd창 종료시 JMeter도 같이 종료됩니다. )



처음 화면에서 Test Plan 오른쪽 버튼을 클릭해서

Test Plan > Threads (Users) > Throad Gruop 를 클릭하여 생성해줍니다.


Throad Gruop 에서 설정해주셔야할게 있는데요.

성능테스트에서 가장 중요한 부분입니다.

표시를 못했는데 빨간박스 위에 부분에

Action to be taken after a Sampler error 이부분은 실행 중에 에러가 발생하면 처리할 방법을 선택해주시면 되구요.

빨간박스 Thread Properties 부분을 설정해주셔야되는데

Number of Threads ( users ) : 쓰레드의 갯수를 선택합니다. 쉽게말해서 유저라고 생각하시면 되고 몇명의 유저로 테스트를 할건지? 정해주시면 됩니다.

Ramp-Up Period ( in seconds ) : 쓰레드가 여러개면 여러개의 실행시간을 users로 계산해서 실행시키는것 같습니다.

Loop Count : user가 테스트할 반복할 횟수를 넣어주시면 됩니다.



생성된 Throad Gruop 에서 우클릭하셔서

Add > Config Element > HTTP Cookis Manager 클릭해주세요.



Throad Gruop 에서 또 우클릭하셔서

Add > Logic Conrtoller > Once Only Controller 클릭해주세요.



생성된 Once Only Controller 에서 우클릭하셔서

Add > Sample > HTTP Request 클릭해주세요.



생성된 HTTP Request 에서 설정을 해줘야됩니다.

위에 빨간색으로 표시해준 부분을 설정해줘야되는데요.


HTTP Request

Name : doLogin ( 나중에 Request 가 많아져 헷갈릴수 있으니 Name을 설정해줍니다. )

Server Name or IP : localhost ( http:// 를 제외한 주소를 적어줍니다. )

Port Number : 80 ( 사용하시는 포트를 입력해주시면 되구요, )

Method : POST ( 저는 POST방식으로 로그인을 해서 POST를 설정했는데 GET방식이시면 GET으로 하시면 됩니다. ) 

Path : /common/doLogin.do ( 주소뒤에 해당 mapping 주소를 입력해줍니다. )

Parameters : ( 실제 로그인 하실 계정정보를 입력해주시면됩니다. )

 - id : admin (  저는 id라고 적었는데 해당 input의 id값을 적어주시면 됩니다. ex) id="user_id" 이시면 user_id )

 - pw : admin ( input의 pw의 id값을 적어주시구요.)



Login을 하고 다음페이지를 확인하기 위해서

Thread Group 에서 우클릭하셔서

Add > Sample > HTTP Request 클릭해주세요.



이번에도 HTTP Request 에서 설정을 해줘야됩니다.

위에 빨간색으로 표시해준 부분을 설정해줘야되는데요.

위에서 설정을 많이해줘서 Name을 포함해서 4가지만 적어주시면 됩니다.


HTTP Request

Name : main 

Server Name or IP : localhost ( http:// 를 제외한 주소를 적어줍니다. )

Port Number : 80 ( 사용하시는 포트를 입력해주시면 되구요, )

Path : /common/doLogin.do ( 주소뒤에 해당 mapping 주소를 입력해줍니다. )


*제목이나 내용과 키워드를 가지고 조회기능이 있는 리스트에는 위에 처럼 Parameters 를 넣어주면 되는데요.

제목이나 내용의 selectBox 가있으면 그값의 id와 해당값

키워드면 해당 input text 창의 id와 해당값을 적어주시고

Method post or get을 설정해서 테스트를 하시면 결과 HTML값에 해당 리스트만 나오는 것을 확인할 수 있습니다.



이제 생성하는 것은 실행후 확인할수있는 Listener를 등록해주겠습니다.

위와 같이 Thread Group 우클릭을 해서

Add > Listener > View Results Tree / Summary Report / Graph Results 를 클릭해 주세요.

보통 View Results Tree / Summary Report / Graph Results 등을 많이 사용합니다.

그외에 추가로 그래프 같은것을 사용하시려면 라이브러리를 추가해주면 됩니다.

다음 아래 화면들은 Listener 등을 이용한 결과값 확인입니다. 



Graph Results 리스너입니다.

전체적인 결과를 그래프로 보여줍니다.

위에사진은 다른 결과의 값을 임의로 가져왔는데요.

위에서 The Group의 값이 1씩이라 그래프가 안나와서 값을 50씩 넣어줘서 돌린 결과입니다.

The Group 데이터의 값이 크면 클수록 데이터가 잘 나옵니다.



Summary Report 리스너입니다.

결과 값이 이렇게 나오는데 순차적으로 보시면

Label :  HTTP Request 의 NAME

# Samples : 서버에 요청한 횟수

Average : 평균 응답시간 (ms)

Min : 최소 응답시간 (ms)

Max : 최대 응답시간 (ms)

Error : 에러율

등 을 의미합니다.



마지막으로 View Results Tree 입니다.

다른 리스너보다는 한번에 결과를 볼수 있어서 바로 보기는 좋습니다.

빨간박스 왼편에 초록색으로 들어와있는 부분이 정상적으로 접속이 됬으면 초록색으로 표출되구요.

404에러 ip주소나 port 또는 url이 잘못됬을 경우는 빨간색 ! 표시가 나오게 됩니다.

로그인이나 그런부분에서 잘처리가 되었다면. Response data에서 

화면에 해당하는 JS 및 HTML이 표출되서 확인해보시면 빠르게 파악하실수 있습니다.

그밖에 post방식으로 전송했는지 get방식인지 Prameter는 어떤걸 보냈는지 다 확인할수 있으며, 

오류발생시 이것을보고 값 셋팅을 다시해주면 되겠습니다. 


*만약 Reponse data가 빈화면으로 나오면 ( JMeter response data empty )

jmeter.porperties 파일을 에디터로 켜서 아래부분이 false로 되있다면 true로 변경해주세요.

jmeter.save.saveservice.response_data = true

jmeter.save.saveservice.samplerData = true


* 그 밖에 인터넷으로는 접속이 되는데 JMater으로는 404에러가 뜬다 하시면

해당 url로 접속해서 크롬 개발자모드로 header부분을 확인해주시고

JMeter에서는 The Group 하위에 add > Config Element > HTTP Header Manager 추가하신후 해당하는 Header를 넣어주시고 테스트해보시면 될수도있습니다.


The Group 을 여러개 생성해서 서비스 분야별로 정리하거나 홈페이지별로 정리해서 사용하시면 더욱 편리합니다.



반응형
반응형

JSP - JSTL 데이터 포맷


jstl 태그 및 디펜더시를 추가
상단에 추가해준다.

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> 


에러가뜨면 아래와 같이 pom.xml에 dependency를 추가해주거나 .jar을 넣어준다.

<dependencies>

  <dependency>

  <groupId>jstl</groupId>

  <artifactId>jstl</artifactId>

  <version>1.2</version>

  </dependency>

  </dependencies>


데이터 format (시간)


태그립아래쪽에 c:set을 추가해서 써줘도 되고

<c:set var="date" value="<%=new Date() %>"/>
<fmt:formatDate value="${date}" type="date"/><br/> 


그냥써도됨
<fmt:formatDate value="<%=new Date() %>" type="date"/><br/> 



type

type="date"    --> ex) 2017.4.13
type="both"    --> ex) 2017. 4. 13 오후 5:12:33
type="time"    --> ex) 오후 5:12:33


both

dateStyle="short" timeStyle="short"              --> ex) 17. 4. 13 오후 5:12
dateStyle="medium" timeStyle="medium"      --> ex) 2017. 4. 13 오후 5:12:33
dateStyle="long" timeStyle="long"                --> ex) 2017년 4월 13일 (목) 오후 5시 12분 33초
dateStyle="full" timeStyle="full"                    --> ex) 2017년 4월 13일 목요일 오후 5시 12분 33초 KST


date

pattern="yyyy-MM-dd"    --> ex) 2017-04-13


time

pattern="(a)hh:mm:ss"     --> ex) (오후)05:12:33



데이터 format (숫자)

<fmt:formatNumber value="숫자" 타입/><br/>


groupingUsed="true"  ---> 천단위마다 ,넣어줌

pattern="##.##"    ---> 2째짜리까지 표지, 0이면 표시X
pattern="#.00"      ---> 0은 자리표기 숫자가 없으면 0
pattern="\#,###.##" ---> \는 \넣어줌
pattern="#,###.00%" ---> %표시하는데 소수점도표시

type="currency" currencySymbol="₩"  ---> 달러로 표시

type="percent" ---> %로 표시

반응형

'IT > JSP' 카테고리의 다른 글

JSTL - c:forEach 리스트 합계구하기  (0) 2017.11.02
JSP - 아이디 중복 체크  (0) 2017.11.01
JSTL - c:forEach문, c:if문, c:choose문(else문)  (0) 2017.10.27
JSP - 페이징처리  (0) 2017.10.20
반응형


날짜 타입변환

TO_DATE : 문자열을 가지고 날짜타입으로 변환

TO_CHAR : 날짜타입을 가지고 문자열로 변환


형식

YYYYMMDD

YYYY/MM/DD

YYYY-MM-DD

YYMMDD

YYYY-MM-DD HH:mm:ss ( *타임스탬프는 시간 초단위까지 표시가능 / DATE는 문자열로표시가능 )

등등 여러형식으로 원하는 포맷을 정해서 데이터를 포맷하면됩니다.


//문자열을 데이터 포맷후 다시 문자열로

myDate = "2017-10-10"

TO_CHAR( TO_DATE( myDate,'YYYYMMDD' ) )  -> "20171010"


// 현재시간을 가져와서 포맷

SELECT TO_CHAR(SYSDATE, 'YYYYMMDDHH') as nowDate FROM dual


오라클 연속된 날짜 데이터 만들기 ( 20170105~20170112 )

  SELECT 

    TO_CHAR(TO_DATE('20170105', 'yyyymmdd') +LEVEL -1, 'yyyymmdd') searchDate

  FROM 

    DUAL

  CONNECT BY TO_DATE('20170105','yyyymmdd') + LEVEL -1  <= TO_DATE('20170112', 'yyyymmdd')



오라클 연속된 숫자 만들기

SELECT LEVEL val FROM DUAL CONNECT BY LEVEL <= 10

반응형
반응형

JSP에서 JSTL로 받아온 리스트값 자바스크립트에서 받기

array값타입의 list를 생성해서 list에 담아주면됩니다.

var list = new Array();

<c:forEach var="result" items="${resultList}" varStatus="status"  >
list.push("${result.userId()}");
</c:forEach>


리스트 갯수 구하기

상단에 JSTL - fn태그 추가

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<c:forEach var="result" items="${resultList}" varStatus="status"  >
${fn:length(resultList) } // resultList의 갯수 구하기
</c:forEach>



JSP에서 자바스크립트 호출하기

1. JSP사이에 함수를 그냥호출해도된다.

<script>fn_userinfo</script> 

2. 자바의 if문 사용해서 특정 조건에서 함수호출

<%if (true){%>
<script>fn_userInfo( );</script>
<%}else{%>
<script>fn_userInfo();</script>
<%}%>

3. 그냥 자바스크립스 함수에 조건을 넣으셔도됩니다.

JSP혹은 자바스크립트에서 자바 사용

<%안에서 java소스 쓰시면됩니다.

<% %>


java변수값 가져오고싶을때

<%=변수 %>
변수의 값이 10이라면 10이 리턴됩니다.

반응형

'IT' 카테고리의 다른 글

IT 계층구조  (0) 2018.01.25
css - 긴글 자동 줄바꿈  (0) 2018.01.12
[JAVA/JS/JSP] 문자와 숫자 길이 구하기 - length  (0) 2017.11.08
네이티브 앱, 모바일 웹앱, 하이브리드 앱  (0) 2017.10.12
ERD 표기방법  (0) 2017.09.29
반응형

오라클 / MYSQL의 날짜별 요일 구하는 법

오라클과 MYSQL에서 DATE의 값을 가지고 혹은 날짜형식의 STRING을 가지고 요일을 리턴하는 함수 및 쿼리입니다.
오라클같은경우는 day, dy, d로 요일까지 출력, 요일제외출력, 정수출력 3가지를 지원해서 더 편합니다.
MYSQL 같은경우에는 영어로 요일이 나와서 정수형식을 리턴받아서 한글로 변환해줘야합니다.

오라클 날짜 요일구하기

TO_CHAR( 날짜, 'day' )

*day = 월요일
*dy = 월
*d = 2 ( 1~7 일~토)


-- String으로 요일구하기

SELECT
   TO_CHAR( (TO_DATE(20171101) ), 'day')
FROM DUAL

결과값 = 수요일

SELECT
   TO_CHAR( (TO_DATE(20171101) ), 'dy')
FROM DUAL

결과값 = 수

SELECT
   TO_CHAR( (TO_DATE(20171101) ), 'd')
FROM DUAL

결과값 = 4

 

-- date로 요일구하기

SELECT
    TO_CHAR(SYSDATE, 'day')
FROM DUAL

결과값 = (오늘이 금요일일때!) 금요일

SELECT 
    TO_CHAR(SYSDATE, 'day') 
FROM DUAL

결과값 = (오늘이 금요일일때!) 금

SELECT 
    TO_CHAR(SYSDATE, 'day') 
FROM DUAL

결과값 = (오늘이 금요일일때!) 6


MYSQL 날짜 요일구하기

DAYOFWEEK( DATE ) -- 정수로 리턴

DAYNAME( DATE ) -- 영어요일로 리턴

*DAYOFWEEK 숫자 ( 1~7 일~토 )


SELECT DAYOFWEEK( '2017-11-10' )

결과값 = 6

SELECT DAYNAME( '2017-11-13' )

결과값 = Monday


한글값 요일을 불러오고싶을 때

SELECT SUBSTR(_UTF8'일월화수목금토', DAYOFWEEK('2017-11-10'), 1 );



반응형
반응형

문자와 숫자의 길이 구하기 - length

문자의 길이와 숫자의 길이 구하는 것을 JSP와 JAVA, JSP 각각 알려드리겠습니다.



JAVA - length()


문자 

문자는 변수에 .length() 를 써주면 됩니다.


String str = "문자의길이";

int strLength = str.length();


숫자
length()는 문자열에서 추출하는 기능이라 숫자에 쓸수없고, 아래와 같이 수학적 계산을 이용하거나! 문자열로 변경해서 length()를 사용해주시면 됩니다. 

*단 숫자는 0보다 커야합니다.


int n=1000;

int intLength = (int)(Math.log10(n)+1);




JS ( 자바스크립트 ) - length


문자
자바스크립트 같은 경우는 length에서 ()괄호가 없습니다. 이점 유의해주세요.


var str = '문자의길이';

var strLength = str.length;


숫자

자바스크립트도 length는 숫자형을 지원하지않아서 숫자를 문자열로 바꿔서 length를 사용하시면 됩니다.


n = 123;

nLength = n.toString().length;




JSP ( JSTL ) - ${fn:length(" ") } 


문자

JSP에서는 JSTL을 사용해서 문자열 길이를 구할수 있습니다.

상단에 아래 태그를 입력해주시고


<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>


이렇게 넣어주시면 구할수 있습니다.
${fn:length("문자의길이") }

숫자
JSP - JSTL에서는 안해봤고 쓸일도 없지만 찾아보도록 하겠습니다.

반응형

'IT' 카테고리의 다른 글

IT 계층구조  (0) 2018.01.25
css - 긴글 자동 줄바꿈  (0) 2018.01.12
JSP / 자바스크립트 / 자바 데이터 및 함수호출  (0) 2017.11.10
네이티브 앱, 모바일 웹앱, 하이브리드 앱  (0) 2017.10.12
ERD 표기방법  (0) 2017.09.29
반응형

저장 프로시저 ( stored procedure / SP ) 정의 및 장점


저장 프로시저란?

일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이다. 

데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한(지속성) 것으로, 

영구저장모듈(Persistent Storage Module)이라고도 불린다.

쉽게말해서 저장프로시저는 데이터베이스에서 처리해야 할 어떤 로직을 구성하고

그것을 하나의 명령어로 처리할 수 있게 하는 것이며 복잡한 처리의 조회 등의 쿼리를 작성할때 사용합니다.


저장 프로시저의 장점

-DB보안

sql인젝션과 문법적인 취약점을 이용하여 해킹하기가 어렵다.

자체적인 보안설정 기능을 가지며, 스토어드 프로시저 단위로 실행권한을 부여할 수있다.


-성능 및 개발

저장프로시저 컴파일 후에 프로시저 캐시를 가지고 있어 성능향상이 된다.

sql문이 서버에 저장되어 쿼리문 자체를 보내지 않고, 저장프로시저의 매개변수만 보내 트래픽양을 줄여준다.

네트워크 소요시간을 줄일수있다.

코드 재사용에 용이하다.


반응형
반응형

자바스크립트에서 현재날짜와 일주일전의 날짜를 구하는 예제입니다.
홈페이지에서 날짜를 선택하는 달력에서 기본으로 입력해놓을때 주로 사용합니다.


JS 현재날짜 구하기

//현재날짜를 구합니다.

var date = new Date();

// 1~9월 1~9일에 앞자리 0추가해주는 함수

function fn_leadingZeros(n, digits) {

  var zero = '';

  n = n.toString();

  if (n.length < digits) {

    for (var i = 0; i < digits - n.length; i++){ zero += '0'; }

  }

  return zero + n;

}

// 날짜의 포맷을 ( YYYY-mm-dd ) 형태로 만들어줍니다.

var nowDate = date.getFullYear() + '-' + fn_leadingZeros(date.getMonth() + 1, 2) + '-' + fn_leadingZeros(date.getDate(), 2);


nowDate 에 현재날짜가 ( YYYY-mm-dd ) 형태로 저장되었습니다.



JS 현재날짜로부터 일주일전 날짜 구하기

// 위에서 구한 현재날짜 ( nowDate ) 를 가지고 일주일전 날짜를 구하겠습니다.

nowDate = nowDate.split("-");

var beforeDate = new Date();

beforeDate.setFullYear(nowDate[0], nowDate[1]-1, nowDate[2]-7);

var y = beforeDate .getFullYear();

var m = beforeDate.getMonth() + 1;

var d = beforeDate.getDate();

if(m < 10) { m = "0" + m; }

if(d < 10) { d = "0" + d; }

beforeDate = y + "-" + m + "-" + d;


beforeDate  현재날짜로부터 일주일 전 날짜가 저장되었습니다.

반응형
반응형

Chart.js로 JSP 차트띄우기 (버전주의 Chart.min.js - 1.0.2)

chartJS를 가지고 jsp에 차트를 띄운 예제를 공유해드리겠습니다.

일단 아래부분에 스크립트를 head안쪽이나 스크립트있는쪽에 넣어서 import해주세요.

그리고 자바스크립트부분에 아래 barChart() / lineChart() 두가지 함수가있는데

barChart는 막대모양차트이고 lineChart는 선그래프차트입니다.

data 안쪽에 labels: [] 이안에는 하단에 들어갈 데이터이며, labels와 datasets - data와 갯수가 동일해야합니다.

사진보시면 대충 데이터가 어떤곳에 쓰이는지 감이 오실거라 믿습니다.

그밖에 datasets안쪽에 label아래는 차트의 색상값을 설정해줄수있습니다.

설정이 다됬으면

var ctx = document.getElementById("barCanvas").getContext("2d"); 

var options = { };

var barChart = new Chart(ctx).Bar(data, options);

이부분이 canvas의 ID값을 가지고 캔버스에 2d차트를 띄워주는 부분입니다.

옵션이 필요하시면 옵션값을 주면됩니다.

위와같이 new Chart로 각 ctx / data / option 등등 넣어서 띄워주시면됩니다.

JSP - html부분에서 <canvas>태그에 차트가 그려지며, 

아래소스보시면 아시겠지만태그에 높이와 너비등을 설정해줄수있습니다. 


자세한 옵션의 함수나 그래프유형 스크립트 및 파일등이 필요하시면 

chartJS공식홈페이지 : http://www.chartjs.org/samples/latest/ 

공식홈페이지를 이용하시면 될것같습니다.


SCRIPT

<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js"></script>


JSP - 자바스크립트

// 막대차트입니다.

function barChart(){

var data = {

labels: ["09시", "10시", "11시", "12시", "13시", "14시", "15시", "16시", "17시", "18시", "19시", "20시", "21시", "22시"],

datasets: [

{

label: "",

fillColor: "rgba(150,200,250,0.5)",

strokeColor: "rgba(150,200,250,0.8)",

highlightFill: "rgba(150,200,250,0.75)",

highlightStroke: "rgba(150,200,250,1)",

data: [65, 59, 80, 81, 56, 55, 30, 100, 120, 50, 11, 40, 70, 120]

}

]

};

    var ctx = document.getElementById("barCanvas").getContext("2d");

    var options = { };

    var barChart = new Chart(ctx).Bar(data, options);

}

//선 차트입니다.

function lineChart(){

var data = {

        labels: ["월","화","수","목","금","토","일"],

        datasets: [

            {

                label: "",

                fillColor: "rgba(220,220,220,0.2)",

                strokeColor: "rgba(220,220,220,1)",

                pointColor: "rgba(220,220,220,1)",

                pointStrokeColor: "#fff",

                pointHighlightFill: "#fff",

                pointHighlightStroke: "rgba(220,220,220,1)",

                data: [2, 3, 5, 7, 11, 13, 17]

            },

            {

                label: "",

                fillColor: "rgba(151,187,205,0.2)",

                strokeColor: "rgba(151,187,205,1)",

                pointColor: "rgba(151,187,205,1)",

                pointStrokeColor: "#fff",

                pointHighlightFill: "#fff",

                pointHighlightStroke: "rgba(151,187,205,1)",

                data: [0, 1, 1, 2, 3, 5, 8]

            }

        ]

    };

    var ctx = document.getElementById("lineCanvas").getContext("2d");

    var options = { };

    var lineChart = new Chart(ctx).Line(data, options);


}



JSP - HTML

<-- 막대차트입니다. -->

<div class="graphBox">

<canvas id="barCanvas" width="384" height="210"></canvas>

</div>


<-- 선차트입니다. -->

<div class="graphBox">

<canvas id="lineCanvas" width="384" height="210"></canvas>

</div>





※ Chart.min.js - 2.7.1

* fillColor - backgroundColor 변경됨

* strokeColor - borderColor 변경됨

* type 선언이 달라짐 아래와같이 type선언

var ctx = document.getElementById(elementId).getContext('2d');

new Chart(ctx, {

    type: 'bar',

    data: {

        labels: labels,

        datasets: [{

            label: label,

            data: data,

            backgroundColor: 'rgba(54, 162, 235, 0.2)',

            borderColor: 'rgba(54, 162, 235, 1)',

            borderWidth: 1

        }]

    },

    options: {

        scales: { yAxes: [{ ticks: { beginAtZero:true } }] }   // 데이터값 시작을 0부터시작

    }

});




※ lables 와 data에 request값 넣기


//차트 값 생성

var labels = new Array();

var data = new Array();

<c:forEach items="${resultList}" var="result" >

var json = new Object();

labels.push("${result.month}");

data.push("${result.monthVal}");

</c:forEach>


반응형
반응형

c:forEach 리스트 합계구하기

JSTL에서 request로 받아온 값의 합계 구하는 예제를 작성하겠습니다.


1. total이라는 변수를 선언해줍니다.

변수명은 임의로 하시면됩니다. 저는 total이라는 변수에 List속 num값들의 합을 넣을려고합니다. 

forEach문위에 선언해줘야합니다. 안에 선언하면 forEach돌면서 0으로 계속 선언해버립니다.


2. </tr>태그 아래쪽에 다시 선언해주고 value값에 total + 값을 더해줍니다.


3. forEach를 돌면서 total값에 num들의 합이 다 들어갔습니다.

c:out으로 value값 total을 불러오면 num의 합계를 불러옵니다.


JSP - HTML

<c:set var = "total" value = "0" />

<c:forEach var="result" items="${resultList}" varStatus="status">     

<tr>

<td>${result.num}<td>

</tr>

<c:set var= "total" value="${total + result.num}"/>

</c:forEach>

<c:out value="${total}"/>


반응형

'IT > JSP' 카테고리의 다른 글

JSP - JSTL 데이터 포맷  (0) 2017.11.15
JSP - 아이디 중복 체크  (0) 2017.11.01
JSTL - c:forEach문, c:if문, c:choose문(else문)  (0) 2017.10.27
JSP - 페이징처리  (0) 2017.10.20

+ Recent posts