본문 바로가기
강의/JSP 강의 정리

JSP 강의 정리 7일차

by 리드민 2022. 7. 14.
반응형

[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 + "&nbsp;&nbsp;");
				// 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>&nbsp;&nbsp;");
		}
	%>
</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