카테고리 없음

230207

Berylly 2023. 2. 7. 17:55

T.김동식

 

 

 

<c:url var="변수" value="경로"/>

<%@ page language="java" contentType="text/html; charset=UTF-8"
     import="java.util.*"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="contextPath" value="${pageContext.request.contextPath}"  />
<c:url var="url1"  value="/test03/memberForm.jsp"></c:url>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<a href="${url1}">회원가입</a>
<a href="member8.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>
	<form action="result2.jsp" method="post">
		아이디: <input type="text" name="userID"><br> 비밀번호: <input
			type="password" name="userPw"><br> <input type="submit"
			value="로그인"> <input type="reset" value="다시입력">
	</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
  request.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset=”UTF-8">
<title>결과창</title>
</head>
<body>

<c:if test="${empty param.userID}">
아이디를 입력하세요.<br>
  <a href="login.jsp">로그인 창 </a>
</c:if>
<c:if test="${not empty param.userID}">
<c:if test="${param.userID =='admin' }">
<h1>관리자로 로그인 했습니다.</h1>
  	<form>
	    <input type=button value="회원정보 삭제하기"  />
	    <input type=button value="회원정보 수정하기"  />
  	</form>  
</c:if>

<c:if test="${param.userID !='admin' }">
<h1> 환영합니다. <c:out value="${param.userID}" /> 님!!!</h1>
</c:if>

</c:if>


</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>
<h1>출력할 구구단의 수를 지정해 주세요.</h1>
<form action="guguResult.jsp">
출력할 구구단  :	<input type=text  name="dan" /> <br>
<input type ="submit" value="구구단 출력">	
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
tbody>tr:nth-child(odd){background:#ededed}
</style>
</head>
<body>
	<c:set var="dan" value="${param.dan}"></c:set>

	<table border="1" width="800" align="center">
	<thead>
	<tr align="center" bgcolor="lightgreen">
			<td colspan="2">${param.dan}단출력</td>
		</tr>
	</thead>
		<tbody>
		<c:forEach var="i" begin="1" end="9">
		<tr class="body" align=”center”>
			<td width="400">${param.dan} x ${i}</td>
			<td width="400">${dan*i}</td>
		</tr>
		</c:forEach>
		</tbody>
		
	</table>

</body>
</html>

 

 

 

<c:out value="값"/>

<%@ 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>
<!-- 코드 그대로 빠져나오게 함 -->


<p>&lt, <c:out value="&lt"></c:out></p>
<p>&gt, <c:out value="&gt"></c:out></p>
<p>&amp, <c:out value="&amp"></c:out></p>

</body>
</html>

 

 

properties 파일 + fmt 국제화/형식화의 기능을 제공해주는 JSTL 라이브러리

fmt:setLocale value="지정할 언어"
fmt:bundle basename="읽을파일명"
fmt:message key="출력할 key값"

//member.properties
mem.name = 홍길동
mem.address = 서울시 강남구
mem.job = 회계사
//member_ko.properties
mem.name = 홍길동
mem.address = 서울시 강남구
mem.job = 회계사
//member_en.properties
mem.name = hong kil-dong
mem.address = kang-name gu, seoul
mem.job = account
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
    
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ 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>

<fmt:setLocale value="en_US" />
<%-- <fmt:setLocale value="ko_KR" /> --%>
 회원정보<br><br>
 <fmt:bundle basename="resource.member" >  
  이름:<fmt:message key="mem.name" /><br>
  주소:<fmt:message key="mem.address" /><br>
  직업:<fmt:message key="mem.job" />
</fmt:bundle>

</body>
</html>

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	import="java.util.Date" pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
  request.setCharacterEncoding("UTF-8");
%>
<html>
<head>
<meta charset="UTF-8">
<title>포매팅 태그 라이브러리 예제</title>
</head>
<body>
	<h2>fmt의 number 태그를 이용한 숫자 포맷팅 예제.</h2>
	<c:set var="price" value="100000000" />
	<fmt:formatNumber value="${price}" type="number" var="priceNumber" />
	통화로 표현 시 :
	<!-- formatNumber 표시할 숫자형식을 지정 -->
	<fmt:formatNumber type="currency" currencySymbol="₩" value="${price}"
		groupingUsed="true" />
	<br> 퍼센트로 표현 시 :
	<fmt:formatNumber value="${price}" type="percent" groupingUsed="false" />
	<br> 일반 숫자로 표현 시 : ${priceNumber}
	<br>

	<h2>formatDate 예제</h2>
	<c:set var="now" value="<%=new Date() %>" />
	<!-- formatDate 지정한 형식의 날짜를 표시 -->
	<fmt:formatDate value="${now }" type="date" dateStyle="full" />
	<br>
	<fmt:formatDate value="${now }" type="date" dateStyle="short" />
	<br>
	<fmt:formatDate value="${now }" type="time" />
	<br>
	<fmt:formatDate value="${now }" type="both" dateStyle="full"
		timeStyle="full" />
	<br>
	<fmt:formatDate value="${now }" pattern="YYYY-MM-dd :hh:mm:ss" />
	<br>

	<br>
	<br> 한국 현재 시간:
	<fmt:formatDate value="${now }" type="both" dateStyle="full"
		timeStyle="full" />
	<br>
	<br>

	<!-- 지정한 국가의 시간을 지정 -->
	<fmt:timeZone value="America/New York">
      뉴욕 현재 시간:<fmt:formatDate value="${now }" type="both"
			dateStyle="full" timeStyle="full" />
		<br>
	</fmt:timeZone>
</body>
</html>

 

 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"
    isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"  %>       
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"  %>

<%
  request.setCharacterEncoding("utf-8");
%>
 
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 문자열 함수 기능</title>
</head>
<body>
	<c:set var="title1" value="hello world!" />
	<c:set var="title2" value="쇼핑몰 중심 JSP입니다!" />
	<c:set  var="str1" value="중심" />
	<h2>여러 가지 문자열 함수 기능</h2>
	title1="hello world"<br>
	title2="쇼핑몰 중심 JSP 입니다.!"<br>
	str1="중심"<br><br>
	
	fn:length(title1) 문자열의 전체 길이를 반환 =${fn:length(title1) } <br>
	fn:toUpperCase(title1) 대문자로 변환 =${fn:toUpperCase(title1)}<br>
	fn:toLowerCase(title1) 소문자로 변환 =${fn:toLowerCase(title1)}<br><br>
	
	fn:substring(title1,3,6) title1에서 3~6까지 해당하는 문자열 반환 =${fn:substring(title1,3,6)}<br>
	fn:trim(title1) 앞 뒤 공백 제거 =${fn:trim(title1)}<br>
	fn:replace(title1," ","/") title1에서 공백을 /로 대체 =${fn:replace(title1," ","/")}<br><br>
	
	fn:indexOf(title2,str1) title2에서 str1이 처음으로 위치하는 자리값 반환 =${fn:indexOf(title2,str1) }<br>
	fn:contains(title1,str1) title1에 str1의 포함여부 =${fn:contains(title1,str1) }<br>
	fn:contains(title2,str1) title1에 str2의 포함여부 =${fn:contains(title2,str1) }<br>
</body>
</html>

 

 

 

jsp + sql

회원등록 및 회원정보 출력

//참고 MemberDAO.java

package sec01.ex01;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

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

public class MemberDAO {
	private Connection con;
	private PreparedStatement pstmt;
	private DataSource dataFactory;

	public MemberDAO() {
		try {
			Context ctx = new InitialContext();
			Context envContext = (Context) ctx.lookup("java:/comp/env");
			dataFactory = (DataSource) envContext.lookup("jdbc/oracle");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public List listMembers() {
		List list = new ArrayList();
		try {
			con = dataFactory.getConnection();
			String query = "select * from t_member order by joinDate desc ";
			System.out.println("prepareStatememt: " + query);
			pstmt = con.prepareStatement(query);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next()) {
				String id = rs.getString("id");
				String pwd = rs.getString("pwd");
				String name = rs.getString("name");
				String email = rs.getString("email");
				Date joinDate = rs.getDate("joinDate");
				MemberBean vo = new MemberBean();
				vo.setId(id);
				vo.setPwd(pwd);
				vo.setName(name);
				vo.setEmail(email);
				vo.setJoinDate(joinDate);
				list.add(vo);
			}
			rs.close();
			pstmt.close();
			con.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}

	public void addMember(MemberBean memberBean) {
		try {
			Connection con = dataFactory.getConnection();
			String id = memberBean.getId();
			String pwd = memberBean.getPwd();
			String name = memberBean.getName();
			String email = memberBean.getEmail();
			String query = "insert into t_member";
			query += " (id,pwd,name,email)";
			query += " values(?,?,?,?)";
			System.out.println("prepareStatememt: " + query);
			pstmt = con.prepareStatement(query);
			pstmt.setString(1, id);
			pstmt.setString(2, pwd);
			pstmt.setString(3, name);
			pstmt.setString(4, email);
			pstmt.executeUpdate();
			pstmt.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
   <meta charset="UTF-8">
   <title>회원 등록창</title>
<body>

<!-- member_action.jsp로 정보를 보낸다 -->
<form method="post"   action="member_action.jsp">
<h1  style="text-align:center">회원 등록창</h1>
<table  align="center">
    <tr>
       <td width="200"><p align="right">아이디</td>
       <td width="400"><input type="text" name="id"></td>
    </tr>
    <tr>
        <td width="200"><p align="right">비밀번호</td>
        <td width="400"><input type="password"  name="pwd"></td>
    </tr>
    <tr>
        <td width="200"><p align="right">이름</td>
        <td width="400"><p><input type="text"  name="name"></td>
    </tr>
    <tr>
        <td width="200"><p align="right">이메일</td>
        <td width="400"><p><input type="text"  name="email"></td>
    </tr>
    <tr>
        <td width="200"><p>&nbsp;</p></td>
        <td width="400">
	<input type="submit" value="가입하기">
	<input type="reset" value="다시입력">
  </td>
    </tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
     import=" java.util.*,sec01.ex01.*"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%
  request.setCharacterEncoding("UTF-8");
%>    
<html>
<head>
<meta charset="TF-8">

<!-- 
useBean MemberBean을 setProperty property="*" 모든 정보를 연결시킨다. 
id값과 name이 일치해야 연결된다 -->
<jsp:useBean  id="m" class="sec01.ex01.MemberBean" />
<jsp:setProperty name="m" property="*"  />
<%
   MemberDAO memDAO=new MemberDAO();
   memDAO.addMember(m); //추가, addMember()해 sql에도 저장
   List membersList =memDAO.listMembers(); //조회, listMembers()를해서 정보를 가져옴
   request.setAttribute("membersList", membersList); //회원정보를 request에 바인딩
%> 
</head>
<body>
<!-- setAttribute한것들이 membersList.jsp로 전송될것이다. -->
<jsp:forward  page="membersList.jsp" />
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
     import="java.util.*, sec01.ex01.*"
    pageEncoding="UTF-8"
    isELIgnored="false" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>    
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
  request.setCharacterEncoding("UTF-8");
%>    
<html>
<head>
<meta charset=”UTF-8">
<title>회원 정보 출력창</title>
</head>
<body>
<table align="center" border=”1” align="center" >
   <tr align="center" bgcolor="lightgreen" >
      <td width="7%" ><b>아이디</b></td>
      <td width="7%" ><b>비밀번호</b></td>
      <td width="7%" ><b>이름</b></td>
      <td width="7%"><b>이메일</b></td>
      <td width="7%" ><b>가입일</b></td>
   </tr>  
<c:choose>
<%--ArrayList list =request.getAttribute("membersList");--%>
<!-- membersList--null 회원정보가 없을때 -->
<c:when test="${membersList==null}" > 
   <tr>
    <td colspan=5>
      <b>등록된 회원이 없습니다.</b>
    </td>  
  </tr>
</c:when>  
<c:when test="${membersList!= null}" >
<!-- 향상된for문 이용 membersList만큼을 돌린다. -->
  <c:forEach  var="mem" items="${membersList }" >
   <tr align="center">
     <td>${mem.id }</td>
     <td>${mem.pwd}</td>
     <td>${mem.name}</td>     
     <td>${mem.email}</td>     
     <td>${mem.joinDate}</td>     
   </tr>
   </c:forEach>
</c:when>
</c:choose>
</table>  
</body>
</html>

 

 

 

 

+이클립스에서 플러그인 설치하기

install New Sofrware, Eclipse Marketplace

 

 

 

+Properties Editor 설치

help - install new software - add - ... - finish

 

 

 

Scrapy

크롤링과 스크레이핑을 할때 사용하는 프레임워크

https://scrapy.org/download/

 

Scrapy | Download

 

scrapy.org

 

 

AI

 

강화학습

보상함수로 얼마나 행동이 좋은지를 측정,

상태와 변화 행동을 번갈아 수행하며 목적을 달성, 지도학습/비지도학습으로 불가능한 과업.

환경, 에이전트 ->  행동, 상태, 보상

https://www.bostondynamics.com/

 

Boston Dynamics | Changing Your Idea of What Robots Can Do

Boston Dynamics’ mission is to imagine and create exceptional robots that enrich people’s lives. Discover Spot, Stretch, and our other robots.

www.bostondynamics.com

 

 

비지도학습

군집(clustering)
사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹(subgroup) 또는 클러스터(cluster)로 조직하는 탐색적 데이터 분석 기법

차원 축소(dimensionality reduction)
잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있음
관련 있는 정보를 대부분 유지하면서 더 작은 차원을 가진 부분 공간(subspace)으로 데이터를 압축
고차원 특성을 1차원 또는 2차원, 3차원 특성 공간으로 투영하여 3D와 2D 산점도(scatterplot)나 히스토그램(histogram)으로 시각화

 

훈련데이터(데이터셋을 나타내는 테이블의 행) = 훈련샘플 = 관측치(observation) = 레코드(record) = 인스턴스(instance) = 예시(example)

 

훈련: 모델 피팅(fitting)

 

모집단(population)

 

 

표기법

https://archive.ics.uci.edu/ml/datasets.php

 

UCI Machine Learning Repository: Data Sets

 

archive.ics.uci.edu

 

 

붓꽃(Iris) 
Setosa, Versicolor, Virginica 세 종류 150개의 붓꽃 샘플보유

https://archive.ics.uci.edu/ml/datasets/iris

 

UCI Machine Learning Repository: Iris Data Set

Data Set Characteristics:   Multivariate Number of Instances: 150 Area: Life Attribute Characteristics: Real Number of Attributes: 4 Date Donated 1988-07-01 Associated Tasks: Classification Missing Values? No Number of Web Hits: 5146171 Source: Creator:

archive.ics.uci.edu

https://archive.ics.uci.edu/ml/machine-learning-databases/iris/

 

Index of /ml/machine-learning-databases/iris

 

archive.ics.uci.edu

 

 

 

위 붓꽃 데이터를 출력해보자.

1. sklearn 이용

scikit-learn(=사이킷런)이란 python을 대표하는 머신러닝 라이브러리, 오픈 소스
sklean에 내장된 데이터를 사용할 수도 있지만, 직접 만들수도 있다.

from sklearn.datasets import load_iris
import pandas as pd
import numpy as np

Iris = load_iris()
Iris_Data = pd.DataFrame(data=Iris['data'], columns= Iris['feature_names'])
Iris_target = pd.DataFrame(data=Iris['target'],columns = ['target'])

Iris_Data

2.위 경로에서 iris.data 다운후 출력

#데이터를 표형태로 보여줌
import pandas as pd
pd.read_csv('D:/# 박상희/2. 실습/data/iris.data')

3. 다운후 데이터 전처리 후 출력

쉼표로 구분해 데이터를 나눈 뒤

iris_name파일을 확인 후 head에 삽입 - csv 로 저장

#데이터를 표형태로 보여줌
import pandas as pd
pd.read_csv('D:/# 박상희/2. 실습/data/iris.data')

 

 

+ 파이썬복습

#변수에 우선 저장 후 사용
df=pd.read_csv('D:/# 박상희/2. 실습/data/iris.csv')
#5줄 미리보기
df.head()

# 데이터요약
df.describe()

#전반적인 정보확인
df.info()

#해당 열 확인하기
df['sepal_length']

#합계
df['sepal_length'].count()

#평균
df['sepal_length'].mean()

#표준편차
df['sepal_length'].std()

#최소값
df['sepal_length'].min()

#최대값
df['sepal_length'].max()