일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Python
- 데이터베이스
- 클론
- 따옴표 삭제
- 단축키
- error 해결
- github token
- 깃 토큰
- localhost
- clone
- run sql script
- 파이썬
- jupyter
- 에러
- MySQL
- error
- import data
- visualstudio code
- console창
- github clone
- cmd
- 오류
- Visual Studio Code
- PHPStorm
- DataGrip
- database
- vscode
- php
- OrCAD 다운로드
- csv
- Today
- Total
개발 노트
9/15 html cookie, git 사용법 본문
9/15 html cookie, git 사용법
hayoung.dev 2022. 9. 19. 20:20dbcp폴더 > 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를 동시에 여러사람이 하면 파일이 없어지는 경우가 있으므로 주의한다.
'프로젝트 기반 JAVA 응용 SW개발 : 22.07.19~23.01.20 > JDBC' 카테고리의 다른 글
9/16 파일 업로드 폼, 필터, ready 메서드 (0) | 2022.09.20 |
---|---|
9/14 데이터베이스 커넥션 풀(Database Connection pool), 모듈화, exERD 설치 및 사용, 순공학, 역공학 (0) | 2022.09.19 |
9/13 html 페이지 이동, request.setAttribute, MVC2모델 (0) | 2022.09.19 |
8/4 JDBC(Select, Insert, Update, procedure, function) (0) | 2022.08.04 |
8/3 JDBC, 데이터베이스, 스키마, DB연결, JDBC 프로그래밍 단계 및 Class (0) | 2022.08.04 |