728x90

자바의 특징

 

◆ 자바는 객체지향 언어이다.

 - 객체지향 프로그램(OOP, Object Oriented Programming)이란 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는 것이다.

 

- 객체를 만들기 위해서는 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다.

 

- 객체지향 언어의 특징인 캡슐화, 상속성, 다향성을 완벽하게 지원한다. 

 

◆ 이식성이 높다

- 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다.

 

- 자바는 자바 실행환경(JRE)이 설치 되어 있는 모든 운영체제에서 실행이 가능하다.

 

◆ 인터프린터 언어이다.

- 컴파일 언어인 동시에 인터프리터 언어이다.

 

- 텍스트 소스를 컴파일 하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트 하면서 실행한다.

 

- 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다.

 

◆ 메모리를 자동으로 관리한다.

- C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야 한다. 만약 이 작업을 성실하게 해주지 않는다면 프로그램은 불안전해지고 갑자기 다운되는 현상을 겪을수도 있다. (JAVA와 다른점)

 

- 자바는 개발자가 직접 메모리에 접근할 수 없으며 메모리는 자바가 직접 관리한다.

 

- 객체 생성시 자동으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector)를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.

 

- 덕북에 개발자는 메모리 관리의 수고를 덜고, 핵심기능 코딩에 집중할 수 있다.

 

◆ 멀티 스레드 구현이 쉽다.

- 운영체제에 따라 멀티 스레드를 구현하는 방법이 다르지만, 자바는 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티 스레드를 쉽게 구현할 수 있다.

 

◆ 동적 로딩을 지원한다.

- 실행시에 모든 클래스가 로딩되는 것이 아니라 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점을 지닌다.

 

- 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있는 유연한 애플리케이션을 장성할 수 있다.

 

◆ 분산환경을 지원한다.

- 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어 있다.

 

- 또한 http 와 htp 프로토콜을 기본적으로 지원한다.

 

◆ 오픈소스 라이브러리가 풍부하다.

- 자바는 오픈소스(Open Source) 언어이고 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스의 양이 방대하다. 

 

- 고급 기능을 구현하는 코드를 작성하는 대신 검증된 오픈소스 라이브러리를 사용하면 애플리케이션을 다시 컴파일 할 필요가 없다.

 

- 따라서 유지보수를 쉽고 빠르게 진행 할 수 있다.

 

◆ 단점

- 자바는 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.

 

- 자바는 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.

 

- 자바는 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.

 

참고)

https://helloworld-88.tistory.com/3

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP기본 개념 및 객체  (0) 2023.06.27
[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
728x90
NETFLEX 구현 연습하는 코드
<HTML>
<header class="showcase">
  <div class="showcase-top">
    <img src="https://i.ibb.co/r5krrdz/logo.png" alt="" />
    <a href="#" class="btn btn-rounded">Sign In</a>
  </div>
  <div class="showcase-content">
    <h1>See what's next</h1>
    <p>Watch anywhere. Cancel Anytime</p>
    <a href="#" class="btn btn-xl"
       >Watch Free For 30 Days <i class="fas fa-chevron-right btn-icon"></i
      ></a>
  </div>
</header>
<section class="tabs">
  <div class="container">
    <div id="tab-1" class="tab-item tab-border">
      <i class="fas fa-door-open fa-3x"></i>
      <p class="hide-sm">Cancel at any time</p>
    </div>
    <div id="tab-2" class="tab-item">
      <i class="fas fa-tablet-alt fa-3x"></i>
      <p class="hide-sm">Watch anywhere</p>
    </div>
    <div id="tab-3" class="tab-item">
      <i class="fas fa-tags fa-3x"></i>
      <p class="hide-sm">Pick your price</p>
    </div>
  </div>
</section>

<section class="tab-content">
  <div class="container">
    <!-- Tab Content 1 -->
    <div id="tab-1-content" class="tab-content-item show">
      <div class="tab-1-content-inner">
        <div>
          <p class="text-lg">
            If you decide Netflix isn't for you - no problem. No commitment.
            Cancel online anytime.
          </p>
          <a href="#" class="btn btn-lg">Watch Free For 30 Days</a>
        </div>
        <img src="https://i.ibb.co/J2xDJV7/tab-content-1.png" alt="" />
      </div>
    </div>

    <!-- Tab Content 2 -->
    <div id="tab-2-content" class="tab-content-item">
      <div class="tab-2-content-top">
        <p class="text-lg">
          Watch TV shows and movies anytime, anywhere — personalized for
          you.
        </p>
        <a href="#" class="btn btn-lg">Watch Free For 30 Days</a>
      </div>
      <div class="tab-2-content-bottom">
        <div>
          <img src="https://i.ibb.co/DpdN7Gn/tab-content-2-1.png" alt="" />
          <p class="text-md">
            Watch on your TV
          </p>
          <p class="text-dark">
            Smart TVs, PlayStation, Xbox, Chromecast, Apple TV, Blu-ray
            players and more.
          </p>
        </div>
        <div>
          <img src="https://i.ibb.co/R3r1SPX/tab-content-2-2.png" alt="" />
          <p class="text-md">
            Watch instantly or download for later
          </p>
          <p class="text-dark">
            Available on phone and tablet, wherever you go.
          </p>
        </div>
        <div>
          <img src="https://i.ibb.co/gDhnwWn/tab-content-2-3.png" alt="" />
          <p class="text-md">
            Use any computer
          </p>
          <p class="text-dark">
            Watch right on Netflix.com.
          </p>
        </div>
      </div>
    </div>

    <!-- Tab Content 3 -->
    <div id="tab-3-content" class="tab-content-item">
      <div class="text-center">
        <p class="text-lg">
          Choose one plan and watch everything on Netflix.
        </p>
        <a href="#" class="btn btn-lg">Watch Free For 30 Days</a>
      </div>

      <table class="table">
        <thead>
          <tr>
            <th></th>
            <th>Basic</th>
            <th>Standard</th>
            <th>Premium</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Monthly price after free month ends on 6/19/19</td>
            <td>$8.99</td>
            <td>$12.99</td>
            <td>$15.99</td>
          </tr>
          <tr>
            <td>HD Available</td>
            <td><i class="fas fa-times"></i></td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
          <tr>
            <td>Ultra HD Available</td>
            <td><i class="fas fa-times"></i></td>
            <td><i class="fas fa-times"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
          <tr>
            <td>Screens you can watch on at the same time</td>
            <td>1</td>
            <td>2</td>
            <td>4</td>
          </tr>
          <tr>
            <td>Watch on your laptop, TV, phone and tablet</td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
          <tr>
            <td>Unlimited movies and TV shows</td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
          <tr>
            <td>Cancel anytime</td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
          <tr>
            <td>First month free</td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
            <td><i class="fas fa-check"></i></td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>
</section>

<footer class="footer">
  <p>Questions? Call 1-866-579-7172</p>
  <div class="footer-cols">
    <ul>
      <li><a href="#">FAQ</a></li>
      <li><a href="#">Investor Relations</a></li>
      <li><a href="#">Ways To Watch</a></li>
      <li><a href="#">Corporate Information</a></li>
      <li><a href="#">Netflix Originals</a></li>
    </ul>
    <ul>
      <li><a href="#">Help Center</a></li>
      <li><a href="#">Jobs</a></li>
      <li><a href="#">Terms Of Use</a></li>
      <li><a href="#">Contact Us</a></li>
    </ul>
    <ul>
      <li><a href="#">Account</a></li>
      <li><a href="#">Redeem Gift Cards</a></li>
      <li><a href="#">Privacy</a></li>
      <li><a href="#">Speed Test</a></li>
    </ul>
    <ul>
      <li><a href="#">Media Center</a></li>
      <li><a href="#">Buy Gift Cards</a></li>
      <li><a href="#">Cookie Preferences</a></li>
      <li><a href="#">Legal Notices</a></li>
    </ul>
  </div>

</footer>

 

 

HTML만 구현했을 때 결과값

 


 

See what's next

Watch anywhere. Cancel Anytime

Watch Free For 30 Days </i >

Cancel at any time

Watch anywhere

Pick your price

If you decide Netflix isn't for you - no problem. No commitment. Cancel online anytime.

Watch Free For 30 Days

Watch TV shows and movies anytime, anywhere — personalized for you.

Watch Free For 30 Days

Watch on your TV

Smart TVs, PlayStation, Xbox, Chromecast, Apple TV, Blu-ray players and more.

Watch instantly or download for later

Available on phone and tablet, wherever you go.

Use any computer

Watch right on Netflix.com.

Choose one plan and watch everything on Netflix.

Watch Free For 30 Days
  Basic Standard Premium
Monthly price after free month ends on 6/19/19 $8.99 $12.99 $15.99
HD Available      
Ultra HD Available      
Screens you can watch on at the same time 1 2 4
Watch on your laptop, TV, phone and tablet      
Unlimited movies and TV shows      
Cancel anytime      
First month free      

여기에 CSS를 추가하면


<style>
/* Global Styles */
:root {
	--primary-color: #e50914;
	--dark-color: #141414;
	--light-color: #f4f4f4;
}

* {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	font-family: 'Arial', sans-serif;
	-webkit-font-smoothing: antialiased;
	background: #000;
	color: #999;
}

ul {
	list-style: none;
}

h1,
h2,
h3,
h4 {
	color: #fff;
}

a {
	color: #fff;
	text-decoration: none;
}

p {
	margin: 0.5rem 0;
}

img {
	width: 100%;
}

.showcase {
	width: 100%;
	height: 93vh;
	position: relative;
	background: url('https://i.ibb.co/vXqDmnh/background.jpg') no-repeat center center/cover;
}

.showcase::after {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 1;
	background: rgba(0, 0, 0, 0.6);
	box-shadow: inset 120px 100px 250px #000000, inset -120px -100px 250px #000000;
}

.showcase-top {
	position: relative;
	z-index: 2;
	height: 90px;
}

.showcase-top img {
	width: 170px;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	margin-left: 0;
}

.showcase-top a {
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(-50%, -50%);
}

.showcase-content {
	position: relative;
	z-index: 2;
	width: 65%;
	margin: auto;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	text-align: center;
	margin-top: 9rem;
}

.showcase-content h1 {
	font-weight: 700;
	font-size: 5.2rem;
	line-height: 1.1;
	margin: 0 0 2rem;
}

.showcase-content p {
	text-transform: uppercase;
	color: #fff;
	font-weight: 400;
	font-size: 1.9rem;
	line-height: 1.25;
	margin: 0 0 2rem;
}

/* Tabs */
.tabs {
	background: var(--dark-color);
	padding-top: 1rem;
	border-bottom: 3px solid #3d3d3d;
	border-right: none;
}

.tabs .container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 1rem;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.tabs p {
	font-size: 1.2rem;
	padding-top: 0.5rem;
}

.tabs .container > div {
	padding: 1.5rem 0;
}

.tabs .container > div:hover {
	color: #fff;
	cursor: pointer;
}

.tab-border {
	border-bottom: var(--primary-color) 4px solid;
}

/* Tab Content */
.tab-content {
	padding: 3rem 0;
	background: #000;
	color: #fff;
}

/* Hide initial content */
#tab-1-content,
#tab-2-content,
#tab-3-content {
	display: none;
	opacity: 0;
}

.show {
	display: block !important;
	opacity: 1 !important;
	transition: all 1000 ease-in;
}

#tab-1-content .tab-1-content-inner {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 2rem;
	align-items: center;
	justify-content: center;
}

#tab-2-content .tab-2-content-top {
	display: grid;
	grid-template-columns: 2fr 1fr;
	grid-gap: 1rem;
	justify-content: center;
	align-items: center;
}

#tab-2-content .tab-2-content-bottom {
	margin-top: 2rem;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: 2rem;
	text-align: center;
}

.table {
	width: 100%;
	margin-top: 2rem;
	border-collapse: collapse;
	border-spacing: 0;
}

.table thead th {
	text-transform: uppercase;
	padding: 0.8rem;
}

.table tbody {
	display: table-row-group;
	vertical-align: middle;
	border-color: inherit;
}

.table tbody tr td {
	color: #999;
	padding: 0.8rem 1.2rem;
	text-align: center;
}

.table tbody tr td:first-child {
	text-align: left;
}

.table tbody tr:nth-child(odd) {
	background: #222;
}

.footer {
	max-width: 70%;
	margin: 1rem auto;
	overflow: auto;
}

.footer,
.footer a {
	color: #999;
	font-size: 0.9rem;
}

.footer p {
	margin-bottom: 1.5rem;
}

.footer .footer-cols {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-gap: 2rem;
}

.footer li {
	line-height: 1.9;
}

.footer .lang-select {
	margin-top: 2rem;
	color: #999;
	background-color: #000;
	background-image: none;
	border: 1px solid #333;
	padding: 1rem 1.2rem;
	border-radius: 5px;
}

/* Container */
.container {
	max-width: 70%;
	margin: auto;
	overflow: hidden;
	padding: 0 2rem;
}

/* Text Styles */
.text-xl {
	font-size: 2rem;
}

.text-lg {
	font-size: 1.8rem;
	margin-bottom: 1rem;
}

.text-md {
	margin-bottom: 1.5rem;
	font-size: 1.2rem;
}

.text-center {
	text-align: center;
}

.text-dark {
	color: #999;
}

/* Buttons */
.btn {
	display: inline-block;
	background: var(--primary-color);
	color: #fff;
	padding: 0.4rem 1.3rem;
	font-size: 1rem;
	text-align: center;
	border: none;
	cursor: pointer;
	margin-right: 0.5rem;
	transition: opacity 0.2s ease-in;
	outline: none;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.45);
	border-radius: 2px;
}

.btn:hover {
	opacity: 0.9;
}

.btn-rounded {
	border-radius: 5px;
}

.btn-xl {
	font-size: 2rem;
	padding: 1.5rem 2.1rem;
	text-transform: uppercase;
}

.btn-lg {
	font-size: 1rem;
	padding: 0.8rem 1.3rem;
	text-transform: uppercase;
}

.btn-icon {
	margin-left: 1rem;
}

@media (max-width: 960px) {

		.showcase {
		height: 70vh;
	}

	.hide-sm {
		display: none;
	}

	.showcase-top img {
		top: 30%;
		left: 5%;
		transform: translate(0);
	}

	.showcase-content h1 {
		font-size: 3.7rem;
		line-height: 1;
	}

	.showcase-content p {
		font-size: 1.5rem;
	}

	.footer .footer-cols {
		grid-template-columns: repeat(2, 1fr);
	}

	.btn-xl {
		font-size: 1.5rem;
		padding: 1.4rem 2rem;
		text-transform: uppercase;
	}

	.text-xl {
		font-size: 1.5rem;
	}

	.text-lg {
		font-size: 1.3rem;
		margin-bottom: 1rem;
	}

	.text-md {
		margin-bottom: 1rem;
		font-size: 1.2rem;
	}
}

@media (max-width: 700px) {
	.showcase::after {
		background: rgba(0, 0, 0, 0.6);
		box-shadow: inset 80px 80px 150px #000000, inset -80px -80px 150px #000000;
	}

	.showcase-content h1 {
		font-size: 2.5rem;
		line-height: 1;
	}

	.showcase-content p {
		font-size: 1rem;
	}

	#tab-1-content .tab-1-content-inner {
		grid-template-columns: 1fr;
		text-align: center;
	}

	#tab-2-content .tab-2-content-top {
		display: block;
		text-align: center;
	}

	#tab-2-content .tab-2-content-bottom {
		margin-top: 2rem;
		display: grid;
		grid-template-columns: 1fr;
		grid-gap: 2rem;
		text-align: center;
	}

	.btn-xl {
		font-size: 1rem;
		padding: 1.2rem 1.6rem;
		text-transform: uppercase;
	}
}

@media(max-height: 600px) {
  .showcase-content {
	margin-top: 3rem;
}
}
</style>

이러한 형식으로 넷플릭스 클론 사이트가 만들어진다.

728x90
반응형
728x90

- JDBC란?

자바에서 데이터베이스를 사용하기 위한 절차에 대한 규약이며,

Java DataBase Connectivity의 약자로 JDBC는 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리이다.

 

JDBC는 DBMS에 종속되지 않는 관련 API를 제공한다.

JDBC API는 JDK에서 제공하며 JDBC 프로그래밍을 위해서는 JDBC드라이버가 필요하다.

JDBC 드라이버는 각 DBMS 회사에서 제공하는 라이브러리 압축파일이다.

MySQL 데이터베이스관리시스템을 사용하거나 만약 오라클을 사용한다면 오라클용 JDBC 드라이버가 필요하다.

 

- JDBC 클래스

JDBC는 다양한 클래스와 인터페이스로 구성된 패키지 java.sql 와 javax.sql로 구성

 

주요 클래스 및 인터페이스

  • DriveManager = JDBC 드라이버 로드
  •  Connect = DB와 연결하기 위한 인터페이스
  • Statement / PreparedStatement / CallableStatement (SQL을 보내기 위한 통로)
    • Statement = SQl을 보내기 위한 통로. 인자가 없음.  
    • PreparedStatement = Statement와 동일한데 차이점은 인자값으로 SQL을 받기 때문에 특정한 SQL에 대한 통로라고 생각하면 된다. 
    • CallableStatement = PL/SQL을 호출할 때 사용
  • ResultSet = SQL 문의 결과를 저장하는 객체

- 이클립스에서 JDBC 등록하기

java에서 데이터베이스를 사용하기 위해서는 드라이버를 설치해야 한다.

 

JDBC 드라이버(MySQL)

https://dev.mysql.com/downloads/connector/j/

 

1. jar 파일 준비하기

설치가 완료되면, mysql-connector-java-버전-bin.jar 파일이 생성된다.

여러 클래스들을 모아 놓은 파일을 jar 파일이라고 하는데, 이 파일이 있어야 MySQL을 사용할 수 있다.

 

2. 이클립스에서 jar파일 연동

  1. 이클립스에서 새로운 프로젝트를 생성
  2. 프로젝트 폴더를 우클릭 -> Properties -> Java Build Path 항목 클릭
  3. Libraries -> Add Library ... -> User Library  -> User Libraries 
  4. New 클릭하여 아무렇게 이름을 작성. ( 저는 JDBC라는 이름으로 생성. )
  5. 생성된 Library를 클릭하고 Add External JARs 클릭
  6. 처음에 설치한 jar 파일 mysql-connector-java-버전-bin.jar 파일을 찾아서 클릭

여기까지 진행했으면 JDBC를 사용할 준비가 된 상태이다.

 

3. JDBC 기본적인 사용

JDBC에서 인터페이스를 제공하기 때문에, 어떤 DB를 사용하든 개발자가 JDBC를 사용하는 방법은 변하지 않는다.

이것이 인터페이스의 가장 큰 장점이죠.

 

JDBC를 사용하는 방법

  1. import java.sql.*;
  2. 드라이버를 load
  3. mysql 연결을 위한 Connection 객체 생성
  4. Statement 객체를 생성하여 질의 수행
  5. 질의 결과가 있다면, ResultSet 객체를 생성하여 결과 저장
  6. 추가 로직 실행 후, JDBC 연결 과정에서 필요했던 객체들을 close

 

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JSP] JSP (JavaServer Pages) 란 무엇일까?  (0) 2023.06.24
[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
728x90

코딩연습

 

eclipse에서 한글 깨짐 현상 오류 수정

<%@ 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="to01.jsp" method="post">
		아이디 : <input type="text" name="id" value="hong"><br /> 이름 : <input
			type="text" name="name" value="홍길동"><br /> 나이 : <input
			type="text" name="age" value="20"><br /> 취미 : <input
			type="checkbox" name="hobby" value="탁구">탁구 <input
			type="checkbox" name="hobby" value="축구">축구 <input
			type="checkbox" name="hobby" value="농구">농구 <br /> <input
			type="submit" value="전송">

	</form>

 


 

이렇게 웹 페이지에서 한글이 깨지는 현상이 나타남

 

<form action="to01.jsp" method="post">

<form action="to01.jsp" method="post"> 으로 인해서 새로운 .jsp 파일 생성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
		// 한글 깨짐 방지, 반드시 가장 상단에 명시할 것.
		request.setCharacterEncoding("UTF-8");
%>
<%
		String id = request.getParameter("id");
		String name = request.getParameter("name");
		int age = Integer.parseInt(request.getParameter("age")) +5 ;
		
		String[] hobbies = request.getParameterValues("hobby") ;
		
		String hobby = "" ;
		if(hobbies == null){
				hobby = "";		
				
		}else{

			for(int i=0 ; i < hobbies.length; i++){
				hobby += hobbies[i] + "," ;
			}
			hobby = hobby.substring(0,hobby.length() -1);
		}
		
		
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
  			아이디 : <%=id%><br/>
  			아이디 길이 : <%=id.length()%><br/>
  			이름 : <%=name%><br/>
  			나이 : <%=age%><br/>
  			취미 : <%=hobby%><br/>
</body>
</html>

<%

// 한글 깨짐 방지, 반드시 가장 상단에 명시할 것.

request.setCharacterEncoding("UTF-8");

 

%>

상단 부분에 이렇게 넣어주면 된다.

 

result 값.

 


아주 쉽게 해결하는 방법이다.

728x90
반응형
728x90

eclipse 코딩연습 / inline checkbox / inline radio 예시

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ include file="./../common/bootstrap5.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

<style type="text/css">
/* box model 공부할 것 */
.input-group{margin:7px;}

.input-group-text{
	display:block;
	margin-left:auto;
	margin-right:auto;
}
#buttonset{margin-top:15px}

</style>

<link rel="stylesheet" href="//code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">

<link rel="stylesheet" href="/resources/demos/style.css">

<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script>
<script type="text/javascript">
	
	
		$(document).ready(function(){
/* 			$('#inputdate').datepicker(); */
			$('#hiredate').datepicker({dateFormat:"yy/mm/dd"});
		});
		
</script>

</head>
<body>
<div class="container mt-3 col-md-7">

		<h2>회원 가입</h2>
		<p>회원 가입하는 페이지</p>
		
		<form>
			<div class="input-group">
				<span class="input-group-text col-md-2">아이디</span> 
				<input id="id"name="id"type="text"class="form-control" placeholder="">
			</div>
			
				<div class="input-group">
				<span class="input-group-text col-md-2">비밀번호</span> 
				<input id="password"name="password"type="password"class="form-control" placeholder="">
			</div>
			
			<div class="input-group">
				<span class="input-group-text col-md-2">이름</span> 
				<input id="name"name="name"type="text"class="form-control" placeholder="">
			</div>
			
			<div class="input-group">
			<span class="input-group-text col-md-2">성별</span>
			<div class="form-control">
				<input type="radio"  name="inlineRadioOptions"id="inlineRadio1"value="option1">남
				&nbsp;&nbsp;&nbsp;
				<input type="radio"  name="inlineRadioOptions"id="inlineRadio2"value="option2">여
			</div>
			</div>
			
			<div class="input-group">
				<span class="input-group-text col-md-2">취미</span>
			<div class = "form-control"> 
				<input type="checkbox"id="inlineCheckbox1"value="option1">축구</input>
				&nbsp;&nbsp;
				<input type="checkbox"id="inlineCheckbox2"value="option2">야구</input>
				&nbsp;&nbsp;
				<input type="checkbox"id="inlineCheckbox3"value="option3">농구</input>
				&nbsp;&nbsp;
				<input type="checkbox"id="inlineCheckbox4"value="option4">골프</input>
				&nbsp;&nbsp;
				<input type="checkbox"id="inlineCheckbox5"value="option5">탁구</input>
			</div>
			</div>
			<div class="input-group">
				<span class="input-group-text col-md-2">포인트</span> 
				<input id="mpoint"name="mpoint"type="number"class="form-control" placeholder="">
			</div>
		
			<div class="input-group">
				<span class="input-group-text col-md-2">비고</span> 
				<input id="remark"name="remark"type="text"class="form-control" placeholder="">
			</div>
			
			<div class="input-group">
				<span class="input-group-text col-md-2">날짜</span> 
				<input id="hiredate"name="hiredate"type="datetime"class="form-control" placeholder="">
			</div>
			
			<div id="buttonset"class="input-group">
				<button type="submit" class="btn btn-primary btn-lg">등록</button>
				&nbsp;&nbsp;&nbsp;
				<button type="reset" class="btn btn-secondary btn-lg">초기화</button>
			</div>
			
		</form>
	</div>
</body>
</html>

result.

 

typing

 

 

728x90
반응형
728x90

package ch01_variable_operator;

public class PrintMe {
    public static void main(String[] args) {
        String name ;
        int age ;

        double height ; // 큰 범주의 실수
        float weight ; // 큰 범주의 실수

        String blood = "AB" ; // 변수 선언하면서 값을 대입하기
        char munza ;
        boolean bool ; // 진위 값

        name = "홍길동" ;
        age = 27 ;
        height = 175.8 ;
        weight = 55.8f ; // float 타입은 f를 붙여 줘라.
        munza = 'Z' ;
        bool = false ;

        System.out.println("이름 : " + name);
        System.out.println("나이 : " + age);
        System.out.println("키 : " + height);
        System.out.println("혈액형 : " + blood);
        System.out.println("몸무게 : " + weight);
        System.out.println("글자 1개 : " + munza);
        System.out.println("진위 값 : " + bool);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

[JAVA]자바란 무엇일까?  (0) 2023.06.24
<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class PlusMinus02 {
    public static void main(String[] args) {
        int x = 3, y = 5, z ;

        z = x++ + --y ;

        System.out.println("x : "+ x); //11
        System.out.println("y : "+ y); //21
        System.out.println("z : "+ z); //31

        z += --x + y++ ;

        System.out.println("x : "+ x);
        System.out.println("y : "+ y);
        System.out.println("z : "+ z);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Java> JDBC에 대해서 개념 공부  (0) 2023.02.21
<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus01.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
<Git>Operator01.java  (0) 2023.02.04
728x90

package ch01_variable_operator;

public class PlusMinus01 {
    public static void main(String[] args) {
        int a = 10, b = 20, c ;

        c = ++a + b++ ;

        System.out.println("a : "+ a); //11
        System.out.println("b : "+ b); //21
        System.out.println("c : "+ c); //31

        c = a++ + --b ;

        System.out.println("a : "+ a);
        System.out.println("b : "+ b);
        System.out.println("c : "+ c);

        a = 15 ;
        b = 12 ;
        c = --a + --b ;

        System.out.println("a : "+ a);
        System.out.println("b : "+ b);
        System.out.println("c : "+ c);
    }
}

728x90
반응형

'console.log("What ? " + Cord); > Java' 카테고리의 다른 글

<Git>PrintMe.java  (0) 2023.02.05
<Git>PlusMinus02.java  (0) 2023.02.05
<Git>OperatorEx.java  (0) 2023.02.04
<Git>Operator01.java  (0) 2023.02.04
<Git> Increment01.java  (0) 2023.02.04

+ Recent posts

728x90
반응형
728x90
반응형