본문 바로가기
코딩/수업 정리

21.01.06 Wed [031]

by 6^6 2021. 1. 6.
728x90

HTML

 

float에 대해 더 자세하게.

 

사진에

max-width

max-height

주면 크기가 조절된다.

 

자식이 부모보다 클때 overflow속성을 쓴다. 부모가 더 크면 쓸필요x

overflow : hidden; (넘치는건 hidden 시켜라)

visible : 기본값. 넘치면 상자밖으로 보여짐

scroll : 넘치는건 스크롤로.(가로세로 둘다)

auto : 스크롤 자동으로 추가.(가로 또는 세로 또는 둘다)

(onebyone1.tistory.com/42) 

 

사진(float:left)과 사진(float:right)사이 <p>글자 넣으면 사진 사이에 글자 넣어짐

근데 글자를 사진 밑으로 가게 하고 싶다면? 부모overflow:hidden; 넣어주면 된다. 

 

 

 

 

CSS 반응형웹 : 창줄였다 늘렸다하면 가로길이가 스크롤이 생기는게 아니라 창크기만큼 자동으로 들여쓰기 되는것.

 

 

 

 

 

 

어제 과제 중 질문

물리적 주소의 의미 : 물리적주소는 C:/ 이걸로 시작 

 

 

 

 

 

DB 데이터베이스

업무의 90%를 차지. 

wikidocs.net/3938

<오라클 설치 과정>

오라클 설치(비번1234),  그다음 sqldeveloper압축풀기

jdk-15.0.1 폴더 주소 복사해서 sqldeveloper 설치할때 경로 넣기

 

 

오라클=데이터베이스(눈에보이는게 x)

소프트웨어회사중 1위가 오라클

 

(로그인정보는 db에 저장된다.)

Name : system / 사용자이름 : system / 비밀번호 : 1234

@C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql

입력후 플레이버튼 - CONNECT 스크립트 명령으로 생성된 접속이 해제되었습니다. 나오면 성공

메뉴에 다른사용자-SCOTT있는지 확인

지우고 alter user scott identified by tiger;입력 -User SCOTT이(가) 변경되었습니다.뜨면 성공

→scott계정 만드는 과정임 (scott은 그냥 연습용)

↓scott창이 이렇게 떠야함

select * from tab 하거나

desc dept; 이거 하기

 

 

 

 

 

 

 

 

 

 

 

jsp_lecture_14

 

쿠키는 요즘 사용 거의안함. 세션이 중요

세션은 서버상의 객체. 내장객체. (따라서 Cookie처럼 new~~ 안해도됨)

서버에서만 접근가능. 따라서 보안이 좋다. 저장할 수 있는 데이터 한계없음.

서버쪽에 저장한다. (Cookie는 클라이언트에 저장)

 

 

자동로그인, 장바구니도 session으로 구현 

 

[login.html]
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<form action="loginOk.jsp" method="post">
		아이디 : <input type="text" name="id" size="10"><br />
		비밀번호 : <input type="password" name="pw" size="10"><br />
		<input type="submit" value="로그인">
	</form>
	
</body>
</html>
[loginOk.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	<%!
		String id, pw;
	%>
	<%
		id = request.getParameter("id");
		pw = request.getParameter("pw");
		
		if(id.equals("abcde") && pw.equals("12345")) {
			session.setAttribute("id", id);	
			response.sendRedirect("welcome.jsp");
		} else {
			response.sendRedirect("login.html");
		}
	%>

</body>
</html>

cookie처럼 쿠키 요청하는 response.addCookie(cookie); 이런거 안해도됨

session은 내장객체. setAttribute로 바로 세션에 데이터저장해서 메모리공간에 올라가는것임.

 

메소드 setAttribute(java.lang.String name, java.lang.Object value)

 리턴값 void
    지정된 이름을 사용하여 이 세션에 객체를 바인딩 시킨다.이전의 putValue메소드 대신 이것
    을 사용해야 한다

 

 

 

[welcome.jsp]→세션올린거를 전체 체크하는 곳.
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()){
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			if(sValue.equals("abcde")) out.println(sValue + "님 안녕하세요." + "<br />");
		}
	%>
	
	<a href="logout.jsp">로그아웃</a>
	
</body>
</html>

세션올린걸 가져오는것.

 

메소드 getAttributeNames()

리턴값 java.util.Enumeration
    세션에 들어있는 모든 키 값을 가져오기 위해서 사용되는 메소드이다.

    세션에 바인딩된 모든 객체들의 이름 Enumeration형으로 되돌려 준다.

 

(인터페이스 Enumeration객체는 java.util 팩키지에 정의 되어있으므로 java.util.Enumeration을 import 시켜야 한다.)

setAttribute 메소드에 의해 설정된 세션값들이 getAttributeNames에 의해 Enumeration형으로 반환된다.
Enumeration 객체는 여러 아이템들을 저장하는 컬렉션 클래스의 일종이며,Enumeration객체에서 아이템을 뽑아
오기 위해서는 hasMoreElements와 nextElement 메소드를 적절히 사용해야 한다.

 

hasMoreElements : Enumeration 객체에 뽑아올 데이터가 있는지를 검사하여 있다면 true를,

                    더 이상 데이터가 존재하지 않는다면 false를 리턴
nextElement : 다음 아이템이 존재한다는 전재하아이템을 하나씩 뽑아오는 역할을 한다.
                       nextElement 메소드도 getAttribute 메소드처럼 Object 형으로 값을 반환해 주므로 이를 형변환(casting)해야 한다.

 

메소드 getAttribute(java.lang.String name)

 리턴값 java.lang.Object
    세션에 바인딩된 객체중 name에 해당되는 객체 값을 가져온다. 없을 경우에는 null을 반환
    반환값은 Object형 이므로 반드시 형변환을 하여 사용한다.

따라서 (String)session.getAttribue(sName);으로 형변환해준다.

 

 

[logout.jsp]
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	
	<%
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()) {
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			if(sValue.equals("abcde")) session.removeAttribute(sName);
		}
		
	%>
	
	<a href="sessiontest.jsp">sessionTest</a>
	
</body>
</html>

메소드 removeAttribute(java.lang.Strng name)

    리턴값 void
    지정된 이름에 해당하는 객체를 이 세션에서 제거한다. 

 

session.removeAttribue(sName); 여기선 해당아이디랑 같으면 지우는 코드로 사용됐다.

만약 아이디 하나 날리지 않고 전부 날리고 싶으면 Invalidate(); 이거 쓴다.

 

 

[sessiontest.jsp]
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		Enumeration enumeration = session.getAttributeNames();
		int i = 0;
		while(enumeration.hasMoreElements()) {
			i++;
			
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		if(i == 0) out.println("해당 세션이 삭제 되었습니다.");
		
	%>

</body>
</html>

 

 

 

태그 코드 참고

leejungyeoul.tistory.com/50

 

 

쿠키와 세션이 어떻게 상호작용을 하는지?

[sessioninit.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		session.setAttribute("mySessionName", "mySessionData");
		session.setAttribute("myNum", 12345);
	%>
	
	<a href="sessionget.jsp">session get</a>

</body>
</html>
[sessionget.jsp]
<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		Object obj1 = session.getAttribute("mySessionName");
		String mySessionName = (String)obj1;
		out.println(mySessionName +"<br />");
		
		Object obj2 = session.getAttribute("myNum");
		Integer myNum = (Integer)obj2;
		out.println(myNum +"<br />");
		
		out.println("************************ <br />");
		
		String sName;
		String sValue;
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()){
			sName = enumeration.nextElement().toString();
			sValue = session.getAttribute(sName).toString();
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		out.println("************************ <br />");
		
		String sessionID = session.getId();
		out.println("sessionID : " + sessionID + "<br />");
		int sessionInter =  session.getMaxInactiveInterval();
		out.println("sessionInter : " + sessionInter + "<br />");
		
		out.println("************************ <br />");
		
		session.removeAttribute("mySessionName");
		Enumeration enumeration1 = session.getAttributeNames();
		while(enumeration1.hasMoreElements()){
			sName = enumeration1.nextElement().toString();
			sValue = session.getAttribute(sName).toString();
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		out.println("************************ <br />");
		
		session.invalidate();
		if(request.isRequestedSessionIdValid()) {
			out.println("session valid");
		} else {
			out.println("session invalid");
		}
	%>

</body>
</html>

String mySessionName = (String)obj1; 이 코드가 핵심(여길모르고 지나치면 많은걸 잃는다...)

아이디

int sessionInter =  session.getMaxInactiveInterval(); 톰캣 세션이 기본적으로(디폴트로) 30분(30*30)으로 정해져있다.

 

session은 코드쪽. 클라이언트가 뭘가지고있는지 모른다. (cookie는 확인가능)

***F12-network-.jsp파일 클릭-cookies-몇개 넘어가고 오는지 알수있다. 밑에는 서버쪽으로 넘어간 쿠키.  --개발자들은 이렇게 무조건 크롬에서 f12로 확인한다.

 

 

sessionID란?

cookie와 session을 동시에 사용하는게 sessionID이다.

 

홈페이지에 로그인하고 새창열어서 같은 홈페이지 열면 그대로 로그인인 상태이다.

다른 브라우저열면 로그인상태가 아니다.(sessionID는 브라우저당 한개만 주기때문)

원리는 sessionID와 관련이있다.

수많은 사람들(클라이언트들)이 크롬으로 접근하면 서버에 session이라는 공간을 두고 sessionID 를 생성한다(32bit)(sessionID는 브라우저당 한개만 준다.). 로그인으로 응답을 주게되면 쿠키로 담아서sessionID를 클라이언트에게 준다. 그래서 새창으로 켜도 쿠키로 전에 접속한 놈이구나 를 알아서 로그인상태가 유지된다.

 

로그인유지 시간도 서버마다 다르다.

로그인유지 시간이 지나면 서버에 가지고있던 sessionID가 시간이 다돼서 날아갔기 때문에 자동로그아웃이 되는것이다.

 

요즘엔 보안때문에 sessionID가 로그인될때마다 바뀐다.

getID : 서버가 클라이언트별루 주는 세션ID입니다. 인식자인 셈

 

 

jsp_lecture_15

예외처리 아니고 예외페이지  ///프로젝트할때 404 에러페이지 무조건 생성하기!

HTTP 400 에러 : 서버가 요청의 구문을 인식하지 못했다는 뜻으로 문법상 오류가 있다는 것입니다.
HTTP 403 에러 : 서버가 요청을 거부하고 있다는 뜻으로 접근이 금지되었다는 것입니다.
HTTP 404 에러 : 서버가 요청한 페이지를 찾을 수 없다는 뜻입니다.
HTTP 500 에러 : 서버에 오류가 발생하여 요청을 수행할 수 없다는 것입니다.

 

 

 

[info.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    
<%@ page errorPage="errorPage.jsp"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		int i = 40/0;
	%>
	
</body>
</html>
[errorPage.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page isErrorPage="true"%>
<% response.setStatus(200); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	에러 발생<br />
	<%= exception.getMessage() %>
</body>
</html>

info.jsp의 errorPage.jsp를 포워딩해서 errorPage.jsp를 띄우는것.

사실 int i =40/0; 는 에러500페이지를 띄어야하는데 response.setStatus(400)으로 돌리라고 해서 400페이지가 나오는것. 

 

response.setStatus(200); →200이 뜬다는건 전부 정상페이지 

F12에 Status확인해보면 정상페이지는 전부 200이 떠있다.

web.wml 반드시 생성★

[web.xml] WebContent - WEB-INF 에 생성

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" id="WebApp_ID" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<display-name>jsp_15_3_ex1_exceptionex</display-name>

<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>

<error-page>
<error-code>404</error-code>
<location>/error404.jsp</location>
</error-page>

<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
</web-app>
[error01.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<%
		int i = 40/0;
	%>

</body>
</html>

 

[error02.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>

	<a href="error03.jsp">error03.jsp</a> //error03.jsp 페이지가 없기때문에 404에러가 뜬다.

</body>
</html>

 

[error404.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page isErrorPage="true" %>
<% response.setStatus(200); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	404에러 입니다.
</body>
</html>
[error505.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<%@ page isErrorPage="true" %>
<% response.setStatus(200); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	500에러 입니다.<br />
</body>
</html>

 

 

 

 

jsp_lecture_16

[jspEx.jsp]
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<jsp:useBean id="student" class="com.javalec.ex.Student" scope="page" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:setProperty name="student" property="name" value="홍길동"/>
	<jsp:setProperty name="student" property="age" value="13"/>
	<jsp:setProperty name="student" property="grade" value="6"/>
	<jsp:setProperty name="student" property="studentNum" value="7"/>
	
	이름 : <jsp:getProperty name="student" property="name" /><br />
	나이 : <jsp:getProperty name="student" property="age" /><br />
	학년 : <jsp:getProperty name="student" property="grade" /><br />
	번호 : <jsp:getProperty name="student" property="studentNum" /><br />


</body>
</html>
[Student.java]
package com.javalec.ex;

public class Student {
	
	private String name;
	private int age;
	private int grade;
	private int studentNum;
	
	public Student() {
		
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public int getGrade() {
		return grade;
	}

	public void setGrade(int grade) {
		this.grade = grade;
	}

	public int getStudentNum() {
		return studentNum;
	}

	public void setStudentNum(int studentNum) {
		this.studentNum = studentNum;
	}

	
}

= 클래스

 

액션태그를 이용해서 빈을 사용한다.(빈은 액션태그땜에 사용)

 

jsp에는 디폴트 생성자를 반드시 적을것!!

 

데이터멤버의 getter setter 속성 주는게 bean

 

 

scope범위 매우 중요 - 나중에 함

 

 

 

 

 

 

 

오늘의 문제

 

1.session 이란?

session은 서버상의 객체이다.(=내장객체) 클라이언트와 서버사이에 일정 시간동안 클라이언트로부터 들어오는 응답을 유지시키는 것. (쿠키와 다른점은 쿠키는 클라이언트 정보를 클라이언트 메모리에 저장하고 session은 서버에 저장한다.) 서버에서만 접근이 가능하기 때문에 보안이 좋다.

2.DBMS의 의미와 종류는?

DBMS=데이터베이스 관리 시스템(database management system) 데이터를 모은 저장소. 여러 사용자가 접근해서 저장,검색, 관리 할수 있는 공간. (로그인정보도 db에 저장된다.)

 

1.관계형 데이터베이스 RDB

  • Oracle, Mysql, MS-SQL, PostgreSQL, MariaDB 등

2. NoSQL (Not Only SQL)

  • Mongodb, cassandra, hbase 등

3.sessin id 란?

클라이언트들 웹브라우저로 접근하면 서버에 session이라는 공간을 두고 32bit sessionID 를 생성한다(sessionID는 브라우저당 한개만).

로그인으로 응답을 주게되면 쿠키로 담아서 그 sessionID를 클라이언트에게 준다.

그래서 새창으로 켜도 쿠키로 전에 접속한 놈이구나 를 알아서 로그인상태가 유지된다.

 

4.에러페이지 처리 방법 2가지를 설명하시오?

<에러페이지 주요 4가지>

HTTP 400 에러 : 문법상 오류.

HTTP 403 에러 : 서버가 요청을 거부. 접근이 금지.

HTTP 404 에러 : 서버가 요청한 페이지를 찾을 수 없다는 뜻.

HTTP 500 에러 : 서버에 오류가 발생하여 요청을 수행할 수 없다는 뜻.

 

<처리방법 2가지>

 

1. JSP 페이지 이동으로 처리

[info.jsp] <%@ page errorPage="errorPage.jsp"%>

<%int i = 40/0; %>//예외발생

 

[errorPage.jsp]

<%@ page isErrorPage="true"%>//해당 jsp문서를 에러페이지로 인식

<% response.setStatus(200); %>//해당 jsp문서를 정상페이지로 인식(200)은 정상페이지넘버

<%= exception.getMessage() %>

2. web.xml로 처리 해당오류넘버 태그들을 만들어서 작성.

[web.xml]

<error-page>

<error-code>404</error-code> //에러코드

<location>/error-404.jsp</location> //에러페이지 주소

</error-page>
[error-404.jsp]

<%@ page isErrorPage="true" %> //해당 jsp문서를 에러페이지로 인식

<% response.setStatus(200); %> //해당 jsp문서를 정상페이지로 인식(200)은 정상페이지넘버

5.bean 이란?

bean = 클래스

액션태그를 이용해서 빈을 사용한다.

반복적인 일을 효율적이게 진행하기 위해 사용.

데이터멤버의 getter setter 속성 주는게 bean이다.

 

액션태그 종류

<jsp:useBean id="student" class="com.javalec.ex.Student" scope="page" />
//특정 빈 사용한다고 명시
<jsp:setProperty name="student" property="name" value="홍길동"/>
//데이터 값 설정
<jsp:getProperty name="student" property="name" />
//데이터값 가져올때

 

1.가위바위보 게임을 출력하시오

 

<%@ 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>
	<%!int game;
	int com;%>


	<%
		game = Integer.parseInt(request.getParameter("game"));
	%>

	<h2>당신이 낸 것</h2>
	<%
		if (game == 1) {
		out.println("<img src=\"가위.PNG\">");
	} else if (game == 2) {
		out.println("<img src=\"바위.PNG\">");
	} else if (game == 3) {
		out.println("<img src=\"보.PNG\">");
	}
	%>
	<h2>컴퓨터가 낸 것</h2>

	<%
		com = (int) (Math.random() * 3) + 1;
	if (com == 1) {
		out.println("<img src=\"가위.PNG\">");
	} else if (com == 2) {
		out.println("<img src=\"바위.PNG\">");
	} else if (com == 3) {
		out.println("<img src=\"보.PNG\">");
	}

	if (com == 1 && game == 1) {
		out.println("<h2>비김</h2>");
	} else if (com == 1 && game == 2) {
		out.println("<h2>이김</h2>");
	} else if (com == 1 && game == 3) {
		out.println("<h2>컴퓨터승리</h2>");
	}

	if (com == 2 && game == 2) {
		out.println("<h2>비김</h2>");
	} else if (com == 2 && game == 1) {
		out.println("<h2>컴퓨터승리</h2>");
	} else if (com == 2 && game == 3) {
		out.println("<h2>이김</h2>");
	}

	if (com == 3 && game == 3) {
		out.println("<h2>비김</h2>");
	} else if (com == 3 && game == 1) {
		out.println("<h2>이김</h2>");
	} else if (com == 3 && game == 2) {
		out.println("<h2>컴퓨터승리</h2>");
	}
	%>

	<a href="GameMain.jsp">다시하기</a>
</body>
</html>
<%@ 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>
	<h2>가위바위보 게임</h2>
	<a><img src="가위바위보.PNG"></a>
	<form action="Game.jsp" method="post">
		<select name="game" onchange="drawImage()">
			<option value="1">가위</option>
			<option value="2">바위</option>
			<option value="3">보</option>
		</select> <input type="submit" value="제출">
	</form>
</body>
</html>

출력 결과

728x90

'코딩 > 수업 정리' 카테고리의 다른 글

21.01.08 Fri [033]  (0) 2021.01.08
21.01.07 Thu [032]  (0) 2021.01.07
21.01.05 Tue [030]  (0) 2021.01.05
21.01.04 Mon [029]  (0) 2021.01.04
20.12.31 Thu [028]  (0) 2020.12.31

댓글