ALLYES
[2022년 청년친화형 기업 ESG지원 사업 - 29] 본문
일시 : 2022.10.13
시간 : 9:00 ~ 18:00
오전/오후 : JavaScript
- 데이터 전송 방식 - Get
- header에 저장됨 => header에 주소 정보가 저장되어 있음(url)
- 데이터를 쿼리스트링 형태로 url 뒤에 붙여서 전송하는 방법
- 쿼리 스트링(Query String)
- 주소 : ?color=%23001eff&num1=2&num2=5
- ? : 쿼리 스트링의 시작점
- ?name=value&name2=value2 .
- 주소 : ?color=%23001eff&num1=2&num2=5
- 쿼리 스트링(Query String)
- 데이터를 server로 전송하는 실습 : name = "data" => key..
- 데이터 전송 방식 - Post
- 데이터를 패킷의 Body에 담아 전송하는 방법

예제7 - servlet 코드
package com;
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;
/**
* Servlet implementation class Ex07mul
*/
@WebServlet("/Ex07mul")
public class Ex07mul extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// name(num1)에서 num1의 값을 가져옴
int mul1 = Integer.parseInt(request.getParameter("num1"));
int mul2 = Integer.parseInt(request.getParameter("num2"));
// 파라미터 수집 : 각각의 파라미터(보내진 데이터)를 가져와서 변수에 담는 과정
String color = request.getParameter("color");
// 받아온 데이터를 기반으로 응답 작성
PrintWriter out = response.getWriter();
// table 생성, color 불러오기
out.print("<table border = '1' style='background-color:"+color+"'>");
for (int j = mul1; j <= mul2; j++) {
out.print("<tr>");
for (int i = 1; i < 10; i++) {
out.print("<td>");
out.print(j + "*" + i + "=" + j * i);
out.print("</td>");
}
out.print("</tr>");
}
out.print("</table>");
}
}
예제7 - html 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="Ex07mul"> <!-- url mapping 적용 -->
색상선택
<input type ="color" name ="color"> <!-- input type의 color 속성 -->
<br>
<input type="text" name="num1"> <!-- 시작 구구단 -->
에서
<input type="text" name="num2"> <!-- 끝 구구단 -->
까지의 구구단을 출력
<input type="submit" value="send"> <!-- 값 전송 -->
</form>
</body>
</html>
- Get
- URL로 데이터 전송
- 전송하는 데이터의 길이에 한계(1024byte)
- 보안상 문제가 있음
- method='Get' 기본값이 Get이라 생략가능
- Post
- HTTP Message 구조 내 Body 부분에 담아서 전송
- 전송하는 데이터의 길이에 제한없음
- 보안에 강함
- method = 'Post'
- JSP(Java Server Page)
- HTML내에 java 코드를 작서하고 웹 서버에서 웹 페이지를 생성하여 웹 브라우저에 돌려주는 Java를 기반으로 한 스크립트 언어
- .jsp 확장자
- 동적으로 작동하여 응답은 html을 이용함(동적 웹 애플리케이션 컴포넌트)
- jsp -> 서블릿(.java) -> 클래스(.class) -> html으로 변환되어 실행됨

<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>Java Server Page</h1>
<%--
스크립트릿 : java 코드를 사용하기 위한 영역
<% %>
표현식 : java코드 실행결과나, 변수를 HTML 코드 사이에 출력시킬때 사용
<%= %>
jsp -> Servlet
--%>
<%
int a = 15;
int b = 25;
%>
<h1><%= a+b %></h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<table border = '1'>
<tr>
<% for(int i=1; i<=10; i++) {%>
<td><%=i %></td>
<%} %>
</tr>
</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%--
선언문 : JSP에서 필드나 메서드를 만들기 위해 사용하는 것
선언문 안에서 작성된 변수는 전부 전역변수(필드)가 된다.
스크립트안에서 만들어진 변수는 지역변수가 된다.
--%>
<%!
String myName = "박병관";
public int plus(int num1, int num2){
return num1+num2;
}
%>
<%
String youName = "이수환";
%>
<%=myName%>
<br>
<%=youName%>
<br>
10 + 30 = <%=plus(10,30) %>
</body>
</html>

- 스크립트릿<% %>
- jsp문서 안에 java코드를 넣기 위해 사용
- 그러나 jsp는 모든 것을 태그화 하여 쓰는것이 목적이므로 줄여가도록 함
- 표현식 <%= %>
- web brower에 결과값을 출력하기 위해 사용
- 지시자 <%@ >
- JSP가 servlet으로 변환될 때 필요한 정보를 기술하기 위해 사용
- <%@ include file = " " >
- 내장객체
- JSP page안에서 내장객체를 사용할 수 있는 이유는 Web Application Server가 JSP page를 Servlet class로 변환시키면서 자동으로 내장 객체 선언
<%@ page import="java.util.Random" %>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%> <%-- 지시자 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<% Random r = new Random(); %>
<%--
지시자 : JSP가 Servlet으로 변환될 때 필요한 정보를 기술하기 위해 사용
--%>
졸려요
<%--
include 지시자 : 외부페이지를 내 페이지 안에 포함시킬때
--%>
<%@ include file ="Ex02table.jsp"%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%--
내장객체 : JSP안에서 객체를 생성하지 않아도 사용가능한 객체
JSP가 Servlet로 변환될 때 자동으로 생성됨
--%>
<%
// out : Servlet에서 PrintWriter와 비슷한 객체
String name = "안녕";
out.print("안녕");
%>
<%=name %>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action = "Ex06form.jsp" method = "post">
이름 : <input type ="text" name = "name"><br>
성별 : 남자<input type="radio" value = "남자" name = "gender">
여자<input type="radio" value="여자" name ="gender"><br>
취미 :
영화보기<input type ="checkbox" value ="영화보기" name = "hobby">
독서하기<input type ="checkbox" value="독서하기" name = "hobby">
TV보기<input type = "checkbox" value="TV보기" name = "hobby">
음악듣기<input type = "checkbox" value="" name = "hobby">
<br>
<input type = "submit">
</form>
</body>
</html>
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("EUC-KR");
String name = request.getParameter("name");
String gender = request.getParameter("gender");
String[] hobby = request.getParameterValues("hobby");
%>
입력한 이름 : <%= name%> <br>
성별 : <%= gender %><br>
취미 :
<%
for(int i=0; i<hobby.length; i++){
out.print(hobby[i]+" ");
}
%>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<h1>생성할 층과 방의 수를 입력하세요</h1>
<form action="Ex07maketable.jsp" method = "post">
층 <input type ="text" name ="floor">
방 <input type ="text" name ="room">
<input type ="submit" value = "생성">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("EUC-KR");
int floor = Integer.parseInt(request.getParameter("floor"));
int room = Integer.parseInt(request.getParameter("room"));
%>
<%
out.print("<table border='1'>");
for(int i =0; i<floor; i++){
out.print("<tr></tr>");
for(int j = 0; j<room; j++){
out.print("<td>" + j + "</td>");
}
}
out.print("</table>");
%>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<form action="Ex08write.jsp" method = "post">
<p>랜덤 숫자 입력</p><br>
<input type="number" name="num">
<input type="submit" value="생성하기">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
랜덤당첨 작성
<form action="Ex08result.jsp" method = "post">
주제 : <input type ="text" name = "title"><br>
<%
request.setCharacterEncoding("EUC-KR");
int num = Integer.parseInt(request.getParameter("num"));
for(int i = 1; i<=num; i++)
{
out.print("아이템"+i+":"+"<input type ='text' name ='item'><br>");
}
%>
<input type ="submit" value ="시작">
</form>
</body>
</html>
<%@page import="java.util.Random"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<p>랜덤당첨 결과</p>
<%
request.setCharacterEncoding("EUC-KR");
String title = request.getParameter("title");
String[] item = request.getParameterValues("item");
Random rd = new Random();
%>
<p><%= title %></p>
<p><%= item[rd.nextInt(item.length)] %></p>
</body>
</html>
'ESG' 카테고리의 다른 글
| [2022년 청년친화형 기업 ESG지원 사업 - 31] (0) | 2022.10.17 |
|---|---|
| [2022년 청년친화형 기업 ESG지원 사업 - 30] (0) | 2022.10.14 |
| [2022년 청년친화형 기업 ESG지원 사업 - 28] (0) | 2022.10.12 |
| [2022년 청년친화형 기업 ESG지원 사업 - 27] (1) | 2022.10.11 |
| [2022년 청년친화형 기업 ESG지원 사업 - 26] (0) | 2022.10.11 |