Recent Posts
Link
250x250
오늘보다 더 나은 내일의 나에게_
비전공자의 IoT 국비 교육 수강일지 Day_29 본문
728x90
예제
빨강, 초록, 파랑 중에 원하는 색을 입력했을 때, 웹 브라우저 배경색이 바뀌도록 작성
더보기let color = prompt("색깔을 적어주세요(빨강,초록,파랑)"); if(color == "빨강"){ document.body.style.backgroundColor = "red"; }else if(color == "초록"){ document.body.style.backgroundColor = "green"; }else if(color == "파랑"){ document.body.style.backgroundColor = "blue"; }
반복문
예제
두 개의 숫자를 입력받아 그 범위에 해당하는 숫자의 합을 구하세요
더보기let num1 = Number(prompt("시작할 숫자를 입력해주세요")); let num2 = Number(prompt("마지막 숫자를 입력해주세요")); let total = 0; for (let i = num1;i <= num2;i++) { total += i; } console.log(num1+"부터 "+num2+"까지의 합 >>",total);
예제
다음 랜덤하게 뽑인 숫자를 맞추는 프로그램. 아래 결과와 같은 결과를 출력
더보기let ran = Math.floor(Math.random()*100); let num; while(true){ num = Number(prompt("숫자를 입력해주세요!")); if(num < ran){ alert("입력한 숫자보다 큰 수 입니다."); }else if(num > ran){ alert("입력한 숫자보다 작은 수 입니다."); }else{ alert("정답입니다! 축하합니다."); break; } }
자바스크립트 실행위치
내부
*작성위치에 따라 실행순서와 브라우저 렌더링에 영향을 미친다.
- <head> 혹은 </body> 태그 앞에 작성
- <head> 내 작성 _ 단순한 로직처리(설정값 초기화)
- </body> 앞 작성 _ 복잡한 로직처리(제어)
외부
외부에서 작성된 .js 파일 사용
- 관리가 편리하다.
- 소스코드를 숨길 수 있다.
- 재사용할 수 있다.
인라인
HTML태그 내부에 이벤트 속성 삽입
배열
여러 자료들을 한꺼번에 다룰 수 있는 자료구조, 여러 자료형을 섞어서 하나의 배열에 저장 가능
배열의 특징
- 인덱스와 인덱스에 대응한는 데이터 들로 이루어진 자료 구조
>> 배열에 데이터를 추가할 때 자동으로 공간 할당
- 모든 타입을 저장할 수 있는 구조
>> 한 배열의 요소가 모두 같은 타입일 필요 없음, 다른 배열이나 객체를 포함할 수도 있음
- 인덱스 0부터 시작
>> 배열의 시작 위치에서부터 데이터가 있는 상대적인 위치를 의미
배열 선언 및 생성
배열 선언
let nameArr = []; var nameArr = new Array();
배열 생성
nameArr = ["다훈", "승현", "수진"]; var nameArr = new Array("다훈", "승현", "수진");
배열 접근
- 반드시 배열 생성 후 접근할 수 있다
- 배열 변수명과 []사이에 원소의 인덱스를 적어 접근
- 인덱스 0부터 시작
배열의 크기
- 배열의 크기는 동적이다
- 배열의 크기가 지정되어 있어도 데이터를 추가하면 저장공간이 자동으로 할당된다
- 배열의 크기는 배열의 length 프로퍼티(property)에 저장
예제
- 23,54,78,13,44 값들이 저장되어 있는 arr 배열이 있다.
가장 큰 수를 찾아서 출력
더보기let arr = [23,54,78,13,44]; let max = arr[0]; for (let i = 1; i < arr.length; i++) { if(max < arr[i]){ max = arr[i]; } } alert("최댓값 >> "+ max);
예제
표 출력
더보기let subNum = Number(prompt("과목 수를 입력해주세요")); let subName = []; let subScore = []; let total = 0; let avg = total/subNum; for (let i = 0; i < subNum; i++) { subName[i] = prompt("점수를 입력할 과목명을 입력해주세요 >>"); } for (let i = 0; i < subNum; i++) { subScore[i] = Number(prompt(subName[i]+"의 점수 입력 >> ")); total += subScore[i]; } document.write("<table border='1'><tr>"); for (let i = 0; i < subNum; i++) { document.write("<td>"+subName[i]+"</td>"); } document.write("<td>총합</td><td>평균</td></tr>"); document.write("<tr>"); for (let i = 0; i < subNum; i++) { document.write("<td>"+subScore[i]+"</td>"); } document.write("<td>"+total+"</td><td>"+(total/subNum)+"</td>"); document.write("</tr></table>");
배열함수
push( ) : 배열의 맨 마지막 인덱스에 데이터 넣기
pop( ) : 배열의 맨 마지막 인덱스 데이터 삭제
unshift( ) : 배열의 맨 앞 인덱스 데이터 추가
shiift( ) : 배열의 맨 앞 인덱스 데이터 삭제
사용자가 서버프로그램으로 값을 보낼 수 있는 두가지 방법
get : URL을 통해서 데이터를 전달
- 보안에 취약함
- 보내는 데이터크기에 제한 O
- 속도가 빠름
post : 패킷을 통해서 데이터를 전달
- 보내는 데이터크기 제한 X
- 속도가 느림
인코딩 설정 => request.setCharacterEncoding("euc-kr");
인코딩 변경(get방식)
서버 패키지에 server.xml 클릭 후 밑에 Source클릭!
예제
html 표를 만들고 post방식으로 입력한 값을 console창과 브라우저에 출력
더보기html 코드
<!DOCTYPE html> <html lang="en"> <head> <meta charset="euc-kr"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <!-- 서버주소 : ex05 보내는 방식 : post 입력태그에 name값 설정 --> <form action="ex05" method="post"> <table align = "center" width = 400 bgcolor = "white" bordercolor = "white"> <tr> <th align = "left" bgcolor = "gray" colspan =2 height = 50> Step1 : 아이디 / 비번 입력 </th> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>아이디 : </td> <td> <input type = "text" name="id"> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>비밀번호 : </td> <td> <input type = "password" name="pw"> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>비밀번호 확인 : </td> <td> <input type = "password" name="pwCheck"> </td> </tr> <tr> <th align = "left" bgcolor = "gray" colspan =2 height = 50> Step2 : 개인정보 </th> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>성별 : </td> <td> 남<input type = "radio" name = "gender" value="남"> 여<input type = "radio" name = "gender" value="여"> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>혈액형 : </td> <td> <select name="bloodType"> <option>A형</option> <option>B형</option> <option>O형</option> <option>AB형</option> </select> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>생일 : </td> <td> <input type = "date" name="date"> </td> </tr> <tr> <th align = "left" bgcolor = "gray" colspan =2 height = 50> Step3 : 선호도 </th> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>취미 : </td> <td> 축구<input type = "checkbox" name = "hobby" value="soccer"> 야구<input type = "checkbox" name = "hobby" value="baseBall"> 농구<input type = "checkbox" name = "hobby" value="basketBall"> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "right" width = 150>좋아하는 색깔 : </td> <td> <input type = "color" name="color"> </td> </tr> <tr> <th align = "left" bgcolor = "gray" colspan =2 height = 50> Step4 : 적고 싶은 말 </th> </tr> <tr bgcolor = "whitesmoke" height = 35> <td colspan = 2> <textarea cols = 55 rows = 5 name="text"></textarea> </td> </tr> <tr bgcolor = "whitesmoke" height = 35> <td align = "center" colspan = 2> <input type = "submit"> <input type = "reset"> </td> </tr> </table> </form> </body> </html>
servlet 코드
package com.example; 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("/ex05") public class ex05 extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("euc-kr"); String id = request.getParameter("id"); String pw = request.getParameter("pw"); String pwCheck = request.getParameter("pwCheck"); String gender = request.getParameter("gender"); String bloodType = request.getParameter("bloodType"); String date = request.getParameter("date"); String hobby[] = request.getParameterValues("hobby"); String color = request.getParameter("color"); String text = request.getParameter("text"); String hobby_res = ""; for (int i = 0; i < hobby.length; i++) { hobby_res += hobby[i]+" "; } response.setContentType("text/html; charset=euc-kr"); PrintWriter out = response.getWriter(); out.print("id :" + id+"<br>"); out.print("pw :" + pw+"<br>"); out.print("pw :" + pwCheck+"<br>"); out.print("성별 :" + gender+"<br>"); out.print("혈액형 :" + bloodType+"<br>"); out.print("생일 :" + date+"<br>"); out.print("취미 :" + hobby_res+"<br>"); out.print("좋아하는 색깔 :" + color+"<br>"); out.print("적고 싶은 말 :" + text); System.out.println("id : " + id); System.out.println("pw : " + pw); System.out.println("pw확인 : " + pwCheck); System.out.println("성별 : " + gender); System.out.println("혈액형 : " + bloodType); System.out.println("생일 : " + date); System.out.println("취미 : " + hobby_res); System.out.println("좋아하는 색깔 : " + color); System.out.println("적고 싶은 말 : " + text); } }
request.getParameterValues() => 가져오는 값이 여러개 일 때 사용(값이 여러개이므로 배열로 받아야한다)
728x90
'비전공자의 코딩일지' 카테고리의 다른 글
비전공자의 IoT 국비 교육 수강일지 Day_31 (0) | 2022.02.03 |
---|---|
비전공자의 IoT 국비 교육 수강일지 Day_30 (0) | 2022.01.28 |
비전공자의 IoT 국비 교육 수강일지 Day_28 (0) | 2022.01.26 |
비전공자의 IoT 국비 교육 수강일지 Day_27 (0) | 2022.01.25 |
비전공자의 IoT 국비 교육 수강일지 Day_26 (0) | 2022.01.24 |
Comments