반응형
[1] 테스트 환경
hardware | |
cpu : intel i7-7700, gpu : intel hd 630, ram : ddr4 16GB, mainboard : samsung DB400S7A-Z51, secondary storage : 256GB SSD, 1TB HDD |
OS |
windows pro 64bits |
software |
jdk version 1.8.0_301 eclipse version 2021-09 (4.21.0) apache-tomcat version 9.0.54 |
[2] 강의 정리
jsp란 :
()
hello.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- HTML 주석입니다. -->
<!-- HTML 주석은 웹브라우저에 노출이 됩니다.(소스 보기에 노출) -->
<%-- JSP 주석입니다. --%>
<%-- JSP 주석은 웹브라우저에 노출이 안됩니다.(보안성이 뛰어남) --%>
<h1>Hello JSP~!!</h1>
</body>
</html>
()
jspTag01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- 스크립트릿(scriptlet) 알아보기 --%>
<%
for(int i = 1; i <= 10; i++){
if(i % 2 ==1 ){
out.print(i + " ");
// out : jsp 페이지가 생성하는 결과를 출력할때 사용되는 내장객체
}
}
%>
<%--
<% %> : 이 안에는 자바에서 쓰는 모든것을
사용할 수 있는 자바의 영역이다.
자바의 기능을 가지고 여러가지 작업을 할 수 있다.
--%>
<%
for(int i = 0; i < 10; i++){
%>
<p>안녕하세요</p>
<%
}
%>
<%-- 범위가 중간를 포함하게 된다. --%>
</body>
</html>
()
jspTag02.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%-- 선언문(declaration) --%>
<%-- JSP 페이지에서 사용되는 전역변수 또는 메소드를 선언할 때 사용한다.
여기서 선언된 변수 및 메소드는 전역의 의미로 사용된다.
--%>
<%!
String name = "홍길동";
int age = 20;
%>
<%-- 클래스 블록처럼 생각하면 된다 --%>
<%!
public int add(int a, int b){
return a + b;
}
%>
<%
out.print("이름 : " + name + "<br>");
out.print("나이 : " + age +"<br>");
int result = add(10,20);
out.print("10 + 20 : " + result + "<br>");
%>
</body>
</html>
()
jspTag03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
표현식(expression)
JSP 페이지 내에서 사용되는 변수의 값 또는 메소드 호출 중
결과값을 출력하기 위해 사용된다. 결과는 String 타입이며,
세미콜론 (;)을 사용할 수 없다.
--%>
<%!
String id = "hong";
String pw = "1234";
public int add(int x, int y){
return x + y;
}
%>
아이디 : <%= id %><br>
비밀번호 : <%=pw %><br>
100 + 200 : <%=add(100,200) %>
<%-- 표현식은 out.print(); << 를 대체한다.
세미콜론을 사용할 필요가 없다.--%>
</body>
</html>
()
jspTag04.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%--
<%@ %> : 지시자 >> 파일의 전체적인 속성을 지정할때 사용한다.
page, include, taglib가 있다.
page : 해당 페이지의 속성을 지정
include : 별도의 페이지를 현재 페이지에 삽입
taglib : 태그라이브러리의 태그 사용(jstl을 사용하기 위해 지정)
--%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
int[] array = {1, 2, 3, 4, 5};
out.print(Arrays.toString(array));
%>
</body>
</html>
()
ex01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
선언문으로 이름 나이 전화번호의 변수 선언하기
스크립트릿으로 변수 초기화 하기
표현식으로 웹브라우저에 이름 나이 전화번호 출력하기
--%>
<%!
String name;
int age;
String tel;
%>
<%
name = "김덕수";
age = 25;
tel = "010-1111-2222";
%>
<h2>김덕수 프로필</h2>
이름 : <%=name%><br>
나이 : <%=age %><br>
전화번호 : <%=tel%>
</body>
</html>
()
ex02.jsp
<%@page import="java.text.SimpleDateFormat"%>
<%@ page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
Date 클래스와 SimpleDateFormat 클래스로
오늘의 날짜를 웹브라우저에 출력하기 (스크립트릿, 표현식)
--%>
<%
Date now = new Date();
// 현재 시스템의 시간으로 객체를 생성
out.print(now);
SimpleDateFormat format1 = new SimpleDateFormat("yyyy년 MM월 dd일");
SimpleDateFormat format2 = new SimpleDateFormat("a hh시 mm분 ss초");
String date = format1.format(now);
String time = format1.format(now);
%>
<p>오늘의 날짜 : <%=date %></p>
<p>현재시간 : <%=time %></p>
</body>
</html>
()
ex03.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
선언문으로 1 ~ 10까지 정수 중 하나를 반환해주는 메소드 만들기
(randomSu, Math.random() )
--%>
<%!
public int randomSu() {
int su = (int)(Math.random()*10)+1;
return su;
}
%>
<%-- 스크립트릿으로 메소드 호출하여 웹브라우저에 호출하기 --%>
<%
int number = randomSu();
out.print("<h2> 오늘의 번호는 : " + number + "입니다.<h2>");
%>
</body>
</html>
()
ex04.jsp
<%@page import="java.util.Collections"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
Integer 타입의 ArrayList를 생성한 후
Math.random()으로 1~45의 정수를 6개 뽑아
ArrayList 안에 넣은 후에 웹 브라우저에 번호 출력하기 (중복수x)
--%>
<%
ArrayList<Integer> lotto = new ArrayList<>();
while(lotto.size() < 6){
int number = (int)(Math.random()*45) + 1;
if(!lotto.contains(number)){
lotto.add(number);
}
}
// 오름차순 정률 / 리스트 안의 객체들을 오름차순으로 정렬
Collections.sort(lotto);
%>
<h2>로토 추첨 결과</h2>
<%
for(int num : lotto){
out.print("<b>" + num + "</b> ");
}
%>
</body>
</html>
()
request01.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
웹 브라우저를 통해 서버에 어떤 정보를 요청하는 것을 request라고 한다.
이러한 요청 정보는 request 객체가 관리한다.
--%>
<%
out.print("서버 : " + request.getServerName() + "<br>");
out.print("컨텍스트 패스 : " + request.getContextPath() + "<br>");
out.print("포트번호 : " + request.getServerPort() + "<br>");
out.print("요청방식 : " + request.getMethod() + "<br>");
out.print("프로토콜 : " + request.getProtocol() + "<br>");
out.print("URL : " + request.getRequestURL() + "<br>");
out.print("URI : " + request.getRequestURI() + "<br>");
%>
</body>
</html>
()
requestForm.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="request02.jsp" method="post">
이름 : <input type="text" name="name" size="10"><br>
학번 : <input type="text" name="studentID" size="10"><br>
연락처 : <input type="text" name="tel" size="10"><br>
동아리 : <input type="checkbox" name="circle" value="band"> 밴드동아리
<input type="checkbox" name="circle" value="dance"> 댄스동아리
<input type="checkbox" name="circle" value="game"> 게임동아리
<br>
전공 : <input type="radio" name="major" value="economy"> 경제학과
<input type="radio" name="major" value="com"> 컴퓨터공학과
<input type="radio" name="major" value="law"> 법학과
<br>
<input type="submit" value="학생정보 전송">
</form>
</body>
</html>
request02.jsp
<%@page import="java.util.Arrays"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String name, studentID, tel, major;
String[] circle;
%>
<%
request.setCharacterEncoding("UTF-8");
name = request.getParameter("name");
studentID = request.getParameter("studentID");
tel = request.getParameter("tel");
major = request.getParameter("major");
circle = request.getParameterValues("circle");
%>
<h2>학생정보</h2>
이름 : <%=name %><br>
학번 : <%=studentID %><br>
전화번호 : <%=tel %><br>
전공 : <%=major %><br>
동아리 : <%=Arrays.toString(circle) %><br>
</body>
</html>
반응형
'강의 > JSP 강의 정리' 카테고리의 다른 글
JSP 강의 정리 9일차 (0) | 2022.07.18 |
---|---|
JSP 강의 정리 8일차 (0) | 2022.07.15 |
JSP 강의 정리 6일차 (0) | 2022.07.13 |
JSP 강의 정리 5일차 (0) | 2022.07.12 |
JSP 강의 정리 4일차 (0) | 2022.07.11 |