관리 메뉴

개발 노트

9/15 html cookie, git 사용법 본문

프로젝트 기반 JAVA 응용 SW개발 : 22.07.19~23.01.20/JDBC

9/15 html cookie, git 사용법

hayoung.dev 2022. 9. 19. 20:20

dbcp폴더 > mysql폴더 생성

mySelectIn.jsp

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@page import="och10.Professor"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	ArrayList<Professor> al = new ArrayList<Professor>();
	Context ctx = new InitialContext();
	DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
	Connection conn = ds.getConnection();
	String sql = "select profno, name from professor";
	Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery(sql);
	while (rs.next()) {
		Professor professor = new Professor();
		professor.setProfno(rs.getInt(1));
		professor.setName(rs.getString(2));
		al.add(professor);
	}
	request.setAttribute("al", al);
	rs.close();
	stmt.close();
	conn.close();
%>
<h2>보고싶은 교수 번호를 선택하세요</h2>
<form action="mySelect.jsp">
	<select name="pno">
	<c:forEach var="professor" items="${al }">
		<option value = "${professor.profno }">${professor.profno } ${professor.name }</option>
	</c:forEach>		
	</select><p>
	<input type="submit" value="선택완료">
</form>
</body>
</html>

mySelect.jsp

<%@page import="och10.Professor"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="../../dbError.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	String profno = request.getParameter("pno");
	String sql = "select profno, name, sal, hiredate from professor where profno="+profno;
	Context ctx = new InitialContext();
	DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/MySql");
	Connection conn = ds.getConnection();
	Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery(sql);
	System.out.println("Professor list sql->" + sql);
	
	Professor p = new Professor();
	if (rs.next()) {
		System.out.println("Professor profno->" + rs.getInt(1));
		System.out.println("Professor name->" + rs.getString(2));
		System.out.println("Professor Sal->" + rs.getInt(3));
		System.out.println("Professor hiredate->" + rs.getDate(4));
		p.setProfno(rs.getInt(1));
		p.setName(rs.getString(2));
		p.setSal(rs.getInt(3));
		p.setHiredate(rs.getDate(4));
		request.setAttribute("professor", p);
	}
		
		rs.close();
		stmt.close();
		conn.close();
		RequestDispatcher rd = request.getRequestDispatcher("myResult.jsp");
		rd.forward(request, response);
%>
</body>
</html>

myResult.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>professor 정보</h2>
	사번 : ${professor.profno }<p>
	이름 : ${professor.name }<p>
	급여 : <fmt:formatNumber value="${professor.sal }" groupingUsed="true"/><p>   
	입사일 : <fmt:formatDate value="${professor.hiredate }" pattern="yyyy/MM/dd"/>

</body>
</html>

출력 결과

.

 

[och11]

상단 위치에 라이브러리 파일 복붙

 

webapp > cookie 폴더 생성

cookie > cookie2.jsp

<%@page import="java.net.URLEncoder"%>
<%@ 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>
<%
	Cookie cook2 = new Cookie("name", URLEncoder.encode("중앙정보","utf-8"));
	response.addCookie(cook2);
	
%>
쿠키저장 성공<p>
<a href="cookView2.jsp">쿠키보기</a>

</body>
</html>

출력 결과

(쿠키보기 누르면)

 

webapp > session 폴더 생성

session > dbError.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<%response.setStatus(200); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h2>DB Error></h2>
	<%=exception.getMessage() %>
</body>
</html>

person.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>
<style type="text/css">
   table   { background-color: pink;}
   tr:HOVER { background-color: green;}
</style>
</head>
<body>
<h2>회원가입</h2>
	<form action="agree.jsp">
		<table border="1">
			<tr><td>아이디</td><td> <input type="text" name="id" required="required"></td></tr>
			<tr><td>패스워드</td><td> <input type="password" name="password" required="required"></td></tr>
			<tr><td>이름</td><td> <input type="text" name="name" required="required"></td></tr>
			<tr><td><input type="submit" value="확인"></td>
				<td><input type="reset" value="취소"></td></tr>
		</table>
	</form>
</body>
</html>

agree.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 id = request.getParameter("id");
	String password = request.getParameter("password");
	String name = request.getParameter("name");
	//session이 내장 객체이기 때문에 세션이 끝날 때까지 메모리에 계속 있는다.
	session.setAttribute("id", id);
	session.setAttribute("password", password);
	session.setAttribute("name", name);
%>
<h2>약관 동의</h2>
------------------------------------------------------------------------- <BR>
1. 회원 정보는 웹 사이트의 운영을 위해서만 사용됩니다.     <BR>
2. 웹 사이트의 정상 운영을 방해하는 회원은 탈퇴 처리합니다. <BR>
--------------------------------------------------------------------------- <BR>
<form action="subscribe.jsp">
	동의 <input type="radio" name="agree" value="y"><p>
	거부 <input type="radio" name="agree" value="n"><p>
	<input type="submit" value="확인">
</form>
</body>
</html>

 

oracle > scott계정에 하단 실행

--------------------------------------------------------
--  DDL for Table MEMBER1
--------------------------------------------------------
DROP  TABLE   Member1;

CREATE TABLE MEMBER1
        ( id                      VARCHAR2(10) 
         CONSTRAINT PK_MEMBER1_ID PRIMARY KEY,    -- ID
         password            VARCHAR2(20),    -- 비밀번호
         name                 VARCHAR2(100),   -- 이름 
         reg_date             Date                   -- 일자
       ) ;

Insert into SCOTT.MEMBER1 (ID,password,NAME,REG_DATE) 
values ('aa','1234','김유신',to_date('22/06/18' ,'RR/MM/DD'));

scr/main/java > MemberDto.java (클래스 생성)

package och11;

import java.util.Date;

public class MemberDto {
	private String ID;
	private String password;
	private String name;
	private Date red_date;
	
	public String getID() {
		return ID;
	}
	public void setID(String iD) {
		ID = iD;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Date getRed_date() {
		return red_date;
	}
	public void setRed_date(Date red_date) {
		this.red_date = red_date;
	}
	
	

}

MemberDao.java

package och11;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

// DBCP
//DAO : dml 작업들을 모아놓은 것
public class MemberDao {

	private Connection getConnection() throws SQLException {
		Connection conn = null;

		try {
			Context ctx = new InitialContext();
			// 연결 모듈화한것 불러옴
			DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/OracleDB");
			conn = ds.getConnection();
		} catch (NamingException e) {
			System.out.println(e.getMessage());
		}

		return conn;
	}

	// insert Method 생성
	// parameter는 member
	// return값은 int

	public int insert(MemberDto member) throws SQLException {
		Connection conn = null;
		int result = 0;
		PreparedStatement pstmt = null;
		String sql = "insert into member1 values(?, ?, ?, sysdate)";
		try {
			// reuse를 하여 쉽게 사용
			conn = getConnection();
			pstmt = conn.prepareStatement(sql);

			pstmt.setString(1, member.getID());
			pstmt.setString(2, member.getPassword());
			pstmt.setString(3, member.getName());
			result = pstmt.executeUpdate();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		} finally {
			if (pstmt != null)
				pstmt.close();
			if (conn != null)
				conn.close();
		}
		return result;
	}
}

DBCP를 작성하므로 context.xml 가 필요하다. och10의 context.xml 파일을 복사해서 같은 위치에 붙여넣기. eclipse를 껐다가 켜야 적용된다.

 

subscribe.jsp

<%@page import="och11.MemberDto"%>
<%@page import="och11.MemberDao"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="dbError.jsp"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 모델 1 -->
<%
	String chk = "";
	String agree = request.getParameter("agree");
	/* y면 회원가입 */
	if (agree.equals("y")) {
		String id = (String)session.getAttribute("id");
		String password = (String)session.getAttribute("password");
		String name = (String)session.getAttribute("name");
		MemberDao md = new MemberDao();
		MemberDto member = new MemberDto();
		member.setID(id);
		member.setName(name);
		member.setPassword(password);
		int result = md.insert(member);
		if (result > 0) chk = "success";
		else chk = "fail";
	} else chk = "fail";
	//세션 종료
	session.invalidate();
	out.print("invalidate() 적용 후에도 " + session.getId()+"<br>");
	//result.jsp로 이동
	//form이 아닌 경우 ?로 넘겨주기도 함.
	response.sendRedirect("result.jsp?chk="+chk);
%>


</body>
</html>

result.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 chk = request.getParameter("chk");
	if (chk.equals("success")) out.println("축하합니다 회원가입");
	else out.println("회원 가입이 안됐습니다.");
%>

</body>
</html>

 

출력 결과

 

[GIT]

1. git 명령어

2. git 저장소 생성

3. git 프로젝트 지정

깃 추가해놓고

 

java ee 에서

 

4. github 동작 원리 : 커밋(commit), 푸시(push), 패치(fetch), 풀(pull). 지역저장소와 원격저장소

5. commit

여기서 commit만 하고 push를 안함. 그래서 지역저장소에만 있는 것임.

 

6. push

 

push를 하면 원격저장소에 올라가는 것임.

 

Authentication에 자신의 깃허브 계정 입력

 

Advanced클릭 후 All Branches클릭

 

Save and Push 클릭 후 로그인.

비밀번호 칸에는 토큰 입력해야 함.

 

[토큰 생성하는 방법]

깃허브 홈페이지 > 프로필> 세팅 > Personal access tokens> generate new token>

 

기간 최대 1년 (메모장에 저장해둠)

완료 화면

github 웹서버에서도 파일이 올라간 것을 확인할 수 있다.

코드를 수정하거나 새로운 파일을 추가하면 자동으로 이렇게 뜬다.

아까와 같이 commit 한 후 

 

7. pull

깃허브에서 이클립스로 다운

 

처음에는 clone URI 선택, 그 다음에는 기존에 있는 것 사용

 

8. 저장소 삭제하는 법

1. github 사이트 > setting > danger zone > delete this repository

2. eclipse > team > disconnect

3. eclipse > git > repositories 삭제

 

[github 협업]

팀장 : github > collaborators > add people

팀원 : eclipse > file > import > git > clone url > 팀장의 url 입력

 

*push를 동시에 여러사람이 하면 파일이 없어지는 경우가 있으므로 주의한다.

반응형