네트워크상에서 데이터가 줄지어서 흘러 들어가는 것
대역폭이 크면 넓게 들어갈 수 있고
대역폭이 작으면 좁게, 차선에 맞춰서 줄지어서 간다.
ex_) 저장장치에있는걸 화면으로 불러오는것
네트워크상에서 데이터가 줄지어서 흘러나오는 것
ex)화면에있는걸 저장장치에 저장
주기억장치⇒화면에보이게해주는것
import java.io.File;
- .exists()
- 존재하는지 확인하는 메서드
메서드 | 의미 | |
---|---|---|
파일 변수. | getName() | 파일의 이름 |
getAbsolutePath() | 파일의 경로 | |
canWrite() | 파일이 쓰기 가능한가? | |
canRead() | 파일이 읽기 가능한가? | |
length() | 파일의 크기 | |
createNewFile() | 새로운 파일 생성 | |
close() | 입출력 관련 클래스의 리소스를 해제하고 버퍼를 비우는 역할. (예외처리의 역할도 한다.) | |
package ex12;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class Example02 {
public static void main(String[] args) {
String str = "Hello! Java Programming";
File f;
FileOutputStream fos = null; // null을하는 이유는, 클로즈 해주기 위해 생성해주는 작업임.
try {
f = new File("src\\ex12\\example02.txt");
if (!f.exists()) { // 없으면 참이 됨.
f.createNewFile();
}
// 스트림 방식의 출력 파일 생성 그래서 출력도 바이트 스트림을 출력
fos = new FileOutputStream(f);
// str은 문자열이고, 그것을 바이트 형태로 가져오기.
byte[] b = str.getBytes();
fos.write(b);
System.out.println("파일쓰기 성공");
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
try {
if (fos != null) {
fos.close();
}
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}
package ex12;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Example03 {
public static void main(String[] args) {
FileWriter myWr = null;
try {
File f = new File("src\\ex12\\example03.txt");
if(!f.exists()) {
f.createNewFile();
}
myWr = new FileWriter(f);
myWr.write("Hello!!\n");
myWr.write("Java Programing");
System.out.println("파일 쓰기 성공");
}
catch(Exception e) {
System.out.println(e.getMessage());
}
finally {
if(myWr != null) {
try {
myWr.close();
}
catch(IOException e) {}
}
}
}
}
package ex12;
import java.io.File;
import java.io.FileWriter;
import java.util.Scanner;
import java.io.IOException;
public class Filehandling03 {
public static void main(String[] args) {
File file = new File("src\\ex12\\member.txt");
FileWriter fw = null;
try {
if (!file.exists()) {
file.createNewFile();
}
fw = new FileWriter(file);
Scanner s = new Scanner(System.in);
boolean quit = false;
while(!quit) {
System.out.println("아이디 : ");
String userID = s.next();
fw.write("아이디 : "+ userID+"\n");
System.out.println("이름 : ");
String userName = s.next();
fw.write("이름 : "+ userName+"\n");
System.out.println("계속 진행? Y | N");
//왜 다시 스캐너를 생성하지?
s = new Scanner(System.in);
String str = s.nextLine();
if (str.toUpperCase().equals("N")) {
quit = true;
}
}
System.out.println("파일 쓰기 성공");
}
catch(Exception e) {
System.out.println(e.getMessage());
}
finally {
if (fw!=null) {
try{fw.close();
}
catch(IOException e) {}
}
}
}
}
package ex12;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
// FileOutputStream , FileInputStream, FileWriter, FileReader는 파일 읽기쓰기에 관여함.
// Stream은 바이너리타입(외부적 활용. 예를 들면 통신), 이외는 텍스트타입(내부적 활용)에 쓰임.
// ★★★ 위 4가지를 작성 함에 있어 공통점이 있다. ★★★(아래 예시는 FileOutputStream으로 진행.)
// 1. File 파일의객체이름 = new File("파일이름.파일형식"); => '파일타입 객체'를 생성해줌.(파일의 생성과 관련된 조건문에 관여함.)
// 2. FileOutputStream 클래스변수 = null; => try문 시작부에서 클래스변수로 FileOutputStream 선언 (이 객체는 직접적인 쓰기에 관여함.)
// 3. if(!파일객체이름.exists()){ 파일객체이름.createNewFile} => try문 시작부에서 '파일타입 객체'는 if문을 활용해서 파일존재를 검증하고, 새로운파일 생성.
// 4. 클래스변수 = new FileOutputStream; => try문 내부에서 FileOutputStream과 관련해서 초기화시켜줌.(선언 했으면 초기화 해야하기 때문)
// 5. 쓰고싶은 것, 읽고 싶은 것을 작성함. => try문 내부에서 원하는 문구를 작성함.
// 6. catch(Exception e) {System.out.println(e.getMessage()); => catch로 오류잡기. 오류와 관련된 메세지를 출력.
// 7. finally{try{ 클래스변수.close(); } catch(IOException e){} } => close()함수는 반드시 실행해야됨. 만약 오류라면 입출력 관련오류(IOException)를 catch 해줘야한다.
public class Example04 {
public static void main(String[] args) {
FileInputStream fis = null;
try {
File file = new File("example03.txt");
if(!file.exists()) {
file.createNewFile();
}
//file을 입력용으로 생성해라(오픈해라)
fis = new FileInputStream(file);
int i = 0;
while((i=fis.read())!=-1) { //파일의 끝이면 fis.read()=-1 이 출력됨.
System.out.println((char)i);
}
}
catch(Exception e) {
System.out.println(e.getMessage());
}
finally{
try {
fis.close();
}
catch(IOException e) {}
}
}
}
💡 FileWriter는 텍스트타입(내부) 작성, FileOutputStream은 바이너라타입(외부통신) 작성에 쓰이는구나!
get
- 데이터를 서버로 전송하기 위해 URL의 쿼리 문자열(query string)에 데이터를 첨부하여 전송합니다.
- 전송한 데이터가 URL에 노출되므로 보안에 취약할 수 있습니다.
- 데이터의 길이 제한이 있으며, 대부분의 브라우저는 약 2,048자로 제한합니다.
- 브라우저에서 캐싱할 수 있으므로, 같은 요청을 반복할 경우 캐시된 결과를 가져올 수 있습니다.
- 주로 데이터 조회 등의 요청에 사용됩니다.
post
- 데이터를 HTTP 요청의 본문(body)에 담아 서버로 전송합니다.
- URL에 데이터가 노출되지 않으므로 GET보다 보안적으로 우수합니다.
- 데이터의 길이 제한은 없지만, 서버와 클라이언트 간에 약속된 최대 크기가 있을 수 있습니다.
- 브라우저에서 캐싱할 수 없으므로, 같은 요청을 반복할 때마다 새로운 결과를 가져옵니다.
- 주로 데이터 생성, 수정, 삭제 등의 요청에 사용됩니다.
포스트는어디?
웹 - Web - WAS - DB
web은 어플리케이션 보호하려고 분리되어있다.
HTML, CSS, JavaScript 등 클라이언트 요청에 따라 변하지 않음.
PHP, Java, Python 등 클라이언트 요청에 따라 동적으로 생성됨.
- 클라이언트가 웹페이지 요청
- 웹서버가 요청을 분석하여 처리
- 결과를 html문서로 생성
- 요청에 맞게 정제된 html문서를 전달
- 웹브라우저가 html을 보여줌.
스크립트태그 | 형식 | 설명 |
---|---|---|
선언문(declaration) | <%! %> | 전역 범위 선언, 서블릿 클래스 멤버 선언, 초기화 |
스크립트릿(scriptlet) | <% %> | Java코드를 작성할 수 있고, 서버 측 로직을 처리하거나 변수를 선언할 때 사용 |
표현문(expression) | <%= %> | 변수나 결과값 출력. 한 번에 하나의 변수(혹은 메서드)를 출력하며 세미콜론’;’을 쓰지 않는다. |
jspService()
메서드는 JSP 컨테이너에 의해 자동으로 생성되고 호출되는 메서드
jspService()
메서드는HttpServlet
클래스의service()
메서드를 오버라이드하여 JSP 페이지의 동작을 정의
형식 | ||
---|---|---|
page | <%@ page %> | 설명페이지에 대한 정보 설정 |
include | <%@ include %> | 페이지 특정 영역에 다른 문서를 포함 |
taglib | <%@ taglib %> | 사용할 태그 라이브러리 설정 |
속성 | 설명 | 기본 값 |
---|---|---|
language | 현재 JSP페이지가 사용할 프로그램이 언어를 설정 | |
contentType | 현재 JSP페이지가 생성할 문서의 콘텐츠 유형을 설정 | |
pageEncoding | 현재 JSP페이지의 문자 인코딩을 설정 | |
import | 현재 JSP페이지가 사용할 자바 클래스 설정 | |
session | 현재 JSP페이지의 세션 사용 여부를 설정 | |
buffer | 현재 JSP페이지의 출력 버퍼 크기를 설정 | |
autoFlush | 출력 버퍼의 동작 제어를 설정 | |
isThreadSafe | 현재 JSP페이지의 멀티스레드 허용 …. | |
info | … | |
errorPage | ||
isErrorPage | ||
isELIgnored | ||
isScriptingEnabled |
isELIgnored
ex_) var now = new Date("2020-10-15");
window객체의 프로퍼티 | |
---|---|
document | 브라우저 창에 표시된 웹 문서에 접근할 수 있다. |
frameElement | 현재 창이 다른 요소 안에 포함되어 있을 경우 그 요소를 반환. 반대로 포함되어 있지 않으면 null값을 반환. |
innerHeight | 내용 영역의 높이를 나타낸다. |
innerWidth | 내용 영역의 너비를 나타낸다. |
localStorage | |
location | |
name | |
outerHeight | |
outerWidth | |
pageXOffset | |
pageYOffset | |
parent | |
screenX | |
screenY | |
scrollX | |
scrollY | |
sessionStorage | |
종류 | 설명 |
---|---|
alert() | 알림 창을 표시한다. |
blur() | 현재 창에서 포커스를 제거한다. |
close() | 현재 창을 닫는다. |
confirm() | 확인,취소 버튼이 있는 확인 창을 만든다. |
focus() | 현재 창에 포커스를 부여한다. |
moveBy() | 현재 창을 지정한 크기만큼 이동한다. |
moveTo() | 현재 창을 지정한 크기만큼 이동한다. |
open() | 새로운 창을 연다. |
postMessage() | 메시지를 다른 창으로 전달. |
jprint() | 현재 문서를 인쇄. |
prompt() | 프롬프트 창에 입력한 텍스트를 반환. |
resizeBy() | 지정한 크기만큼 현재 창의 크기를 조절한다. |
resizeTo() | 동적으로 브라우저 창의 크기를 조절한다. |
scroll() | 문서에서 특정 위치로 스크롤한다. |
scrollBy() | 지정한 크기만큼 스크롤한다. |
scrollTo() | 지정한 위치까지 스크롤한다. |
sizeToContent() | 내용에 맞게 창의 크기를 맞춘다. |
stop() | 로딩을 중지한다. |
//css
#button1{
width:100px;
height:100px;
background-color: red;
color:white;
border-radius:50%;
border: 10px solid gray;
}
// js
function pupupw(){
window.open("파일이름.jsp","","width=500, height=400");
}
// html
<button id="button1" onclick="javascript:pupupw();">팝업 열기</button>
팝업위치 설정하기
웹브라우저의 버전을 비롯해 플러그인 설치 정보나 온,오프라인 등의 여러 정보가 담겨있다.
정보를 보는 것.
<button class="button1" onclick="location.replace('http://www.easyspub.com')">이지스퍼블리싱 홈페이지</button>
새로운 브라우저 창 또는 탭을 열기 위해 사용
_blank
_self
_parent
_top
이를 열게 된 원래 창(부모 창)을 가르킨다.
객체를 통해 부모 창의 속성에 접근하거나 부모 창으로 데이터를 전달할 수 있다.
팝업 코드
1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>팝업창 열기</title>
<script type="text/javascript">
let popWin = window.open("doitEvent.jsp","popup","width=750, height=600, left=100,top=100");
popWin.opener = self; // popWin 객체를 만든 부모가 자신(self)이라고 알려줌.
</script>
</head>
<body>
<p>문서를 열면 팝업창이 표시됩니다.</p>
</body>
</html>
2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>이벤트 공지</title>
</head>
<style>
body{
display:flex;
justify-content:center;
align-items:center;
flex-direction:column;
width:100vw;
height:100vh;
background-color:yellow;
}
.image{
width:200px;
height:auto;
border-radius:12%;
border: 3px double black;
}
</style>
<script>
function loadURL(){
//alert(url);
window.opener.location=url;
window.close();
}
</script>
<body>
<div id="container">
<img class="image" alt="" src="data:image/jpeg;base64,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">
<p><a href="doitMain.jsp"
onclick="javascript:loadURL(this.href; return false;)">자세히보기</a>
</div>
</body>
</html>
3
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Do it!!</title>
<style>
#container{
width:750px;
margin: 0 auto;
text-align:center;
}
</style>
<script>
</script>
</head>
<body>
<div id="container">
<img src="http://www.easyspub.co.kr/upload/smarteditor/BOOK/2016/20160418190258778248.jpg">
</div>
</body>
</html>