톰켓 server.xml에 connector에 URIEncoding="UTF-8"을 추가해봐도

request.setCharacterEncoding("UTF-8");을 써놨어도... 한글이 깨진다

수업시간에 잘만 되던게 왜 깨질까? 배운만큼만 아는 나에겐 아무리 짱구를 굴려보아도 답이 안 보인다. 

어쩔 수 없이 구글의 힘을 빌릴 수 밖에...

결론은 form 요소에 accept-charset="UTF-8"요소추가하는 것이다. 결과는 한글로 전송한 부분이 깨지지 않고 잘 나온다.

곰곰히 생각해 보았다. 선생님이랑 똑같이 했는데 왜 난 꺠지는 걸까? 

바로 그건 내가 전송하려던 페이지는 확장자명이 html이라서 그런 것이였다. 

html파일 생성시 바디부분만 남기고 선생님이 다 지우셔서 나도 그 지워지는부분에 무엇이 있었는지 간과한 것이다.

그리고 선생님과 form전송에서는 전부 확장자명이 jsp, 즉 jsp파일은 첫 줄에서 UTF-8형식 인코딩 처리를 해주고 있었던 것.

<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>

이것이 html파일 그리고 위 부분은 항상 생성하자마자 삭제한 부분. 

4번재 줄을 보면 인코딩형식이 UTF-8이 아니다 ^^

그렇다면 html파일에서 저부분을 UTF-8로 바꾸면 form 요소에 accetp-charset을 추가하지 않아도 될까?

결과는 된다.

 

'JSP' 카테고리의 다른 글

세션과 쿠키  (0) 2021.11.01
session이란?  (0) 2021.10.06
여러 개발자들이 동시에 다양한 작업을 할 수 있게 만들어 주는 기능이 바로 '브랜치(Branch)'

여러 명이서 동시에 작업을 할 때에 다른 사람의 작업에 영향을 주거나 받지 않도록, 먼저 메인 브랜치에서 자신의 작업 전용 브랜치를 만듭니다. 그리고 각자 작업을 진행한 후, 작업이 끝난 사람은 메인 브랜치에 자신의 브랜치의 변경 사항을 적용합니다. 이렇게 함으로써 다른 사람의 작업에 영향을 받지 않고 독립적으로 특정 작업을 수행하고 그 결과를 하나로 모아 나가게 됩니다. 이러한 방식으로 작업할 경우 '작업 단위', 즉 브랜치로 그 작업의 기록을 중간 중간에 남기게 되므로 문제가 발생했을 경우 원인이 되는 작업을 찾아내거나 그에 따른 대책을 세우기 쉬워집니다. 

 

<출처>

브랜치란? 【브랜치 (Branch)】 | 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

 

누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

'컴퓨터 지식' 카테고리의 다른 글

JDBC  (0) 2021.10.08
Permgen space  (0) 2021.10.06
parameter && argument  (0) 2021.10.06
eclipse.ini && -vm  (0) 2021.10.06
스키마  (0) 2021.10.06
final 필드 : 초기값이 저장되면 필드 값 수정 불가, 생성자의 매개값을 통해 여러 가지 값을 가질 수 있다.
상수(static final) : 변하지 않는 변수(?), 원주율이나 우주상수 같은 딱 정해진 값(불변의 값), static final 필드는 객체마다 저장되지 않고, 클래스에만 포함된다. 객체 없이 메모리에 박혀 준비되어 있는 놈. 초기값 변경(X)
상수 이름은 모두 대문자로 작성하는 것이 관례.  객체마다 저장할 필요가 없는 공용성
리터럴(literal) : 변수의 값이 변하지 않는 데이터, 소스 코드 내에서 직접 입력된 값을 리터럴.  리터럴은 값의 종류에 따라 정수,실수,문자,논리 리터럴로 구분.

아아.. 뭔가 알듯 하면서도 헷갈린다...

이해하기 쉽게 코드로 이해해보자

public class Person{  //Person 클래스의 final 필드 변수 선언 2개, 그냥 필드 변수 선언 한개
  final String nation = "korea";  // 선언과 동시에 초기화
  final String ssn;       
  String name;
 
   public Person(String ssn, String name){  // 생성자를 이용한 final필드, 필드변수 값을 받아 초기화.
        this.ssn=ssn;
        this.name=name;
      }
}
public class PersonExample{     // 실행
  public 
Person f1 = new Person("sssnnn","이름"); // 객체 생성 & 값 입력
f1.nation="jap";     // 에러
f1.ssn="sdfdsa";    // 초기화된 필드 변수 값 변경 시도 -> 에러
f1.name = "이름2";  // 계속 값을 변경할 수 있음
Person f2 = new Person("12124","이름4");  // 생성자 매개값을 통해 final 필드 값 초기화
∴ final 필드 초기화 후에 새로운 값을 넣을 수 없음. 새로운 객체 생성으로 여러번 초기화 가능

'JAVA' 카테고리의 다른 글

[소소한 설정] 자바 버전 변경에 따른 이클립스, 톰캣 설정  (0) 2021.10.06
cmd에서 javac가 먹통일 때  (0) 2021.10.06
==연산자와 equals 메서드  (0) 2021.10.02
네트워크 기초  (0) 2021.09.28
제네릭  (0) 2021.09.27
== 연산자는 주소 값을 비교
equals 메서드는 값을 비교

 

'JAVA' 카테고리의 다른 글

cmd에서 javac가 먹통일 때  (0) 2021.10.06
상수와 리터럴  (0) 2021.10.02
네트워크 기초  (0) 2021.09.28
제네릭  (0) 2021.09.27
인터페이스  (0) 2021.09.27
- 태그.< />
- 대소문자 구별하지 않는다.(보통 소문자 작업)
- 인터프린터 언어 : 컴파일 하지 않고 바로 실행 // 컴파일 언어(자바)
- 오타-오류x-적용이안됨=오류찾기 힘듬
List<Integer> list = Arrays.asList(10, 20, 30, 40, 50, 60, 70, 40, 30, 20); 
System.out.println(list.add(1));

대충 정적인(고정된) 존재에 동적인 메소드를 사용할 수 없다는 뜻? 수정할 수 없다는 뜻? 정도로 일단.

IP(Internet Protocol) 주소

네트워크상에서 컴퓨터를 식별하는 고유번호. / 컴퓨터 주소

네트워크 어댑터(랜카드0마다 할당

주소 확인 법 - cmd - ipconfig

 

포트(Port)

 같은 컴퓨터 내에서 프로그램을 식별하는 번호.  /  tv채널같은

 한 번에 하나씩 서비스 받을 수 있다. / tv볼때 채널 하나만 본다. / 뉴스와 증권 동시에 볼 수 없다. 각각의 서비스

 ip:port  >요청방식 / 이 아이피에(주소에)가서 xxxx포트를(서비스를) 요청

 0~65535번까지 지정, 사용가능 = 하나의 서버가 최대 65535개 서비스 가능

 0~1023 : 국제인터넷주소관리기구가 특정 에플리케이션용으로 미리 예약한 포트 WKPN

 1024~49151 : 회사에서 등록 사용할 수 있는 포트 RPN

 49152~65535 : 운영체제가 부여하는 동적 포트 또는 개인적인 목적으로 사용할 수 있는 포트 DOPPN

 

TCP네트워킹(Transmission Control Protocol)데이터를 연결해서 전송하는 방식

 연결 지향적 프로토콜 -> 시간소요

 통신선로고정->전송속도느려질 수 잇음

 데이터를 정확하고 안정적으로 전달 (파일전송, 업로드 ...)

 클라이언트 - 서버 : 연결선이 tcp냐 udp냐 

 아크신호 / 다운로드 신호 / 받았다 신호 받을때까지 보낸다.

 

UDP(User Datagram Protocol)네트워킹 

 비연결 지향적 프로토콜 / 선없음 - 던지고 받음 (위성 생중계, 라디오) 기상이변 방해가능/ 중간에 끊기더라도 데이터의 지속 연결, 일방적 데이터 발신

 데이터 손실발생 가능 

  

 

 

 

'JAVA' 카테고리의 다른 글

상수와 리터럴  (0) 2021.10.02
==연산자와 equals 메서드  (0) 2021.10.02
제네릭  (0) 2021.09.27
인터페이스  (0) 2021.09.27
컬렉션 프레임워크  (0) 2021.09.26
ublic class Box<T> {           // 제네릭 타입: Box<무엇을 쓰든 상관 없다.>
private T t; // 제네릭 선언 (제네릭이 적용될 위치) 존재하지 않는 타입이지만 내가 원하는 타입이 들어갈 수 있도록 자리를 지정해줌.
public void set(T t) { this.t = t; }
public T get() { return t; }}
                                       // ★박스라는 컬랙션 하나를 만든거다.★
                                      //우리가 컬렉션에서 사용하고 있는 방식
★제네릭 메소드 호출★
public class Util {
public static <T> Box<T> boxing(T t) {
Box<T> box = new Box<T>();
box.set(t);
return box; // <T>제네릭 타입에 box타입 리턴.
} }
public class UtilMain{
public static void main(String[] args){
Box<String> box1 = Util.boxing("java"); // Box클래스에 box1변수, Util클래스에 boxing 메소드 호출&&값 대입
String str = box1.get();
System.out.println(str); }

'JAVA' 카테고리의 다른 글

==연산자와 equals 메서드  (0) 2021.10.02
네트워크 기초  (0) 2021.09.28
인터페이스  (0) 2021.09.27
컬렉션 프레임워크  (0) 2021.09.26
예외 처리(Exception)  (0) 2021.09.24
  • 대표적 규제? / 추상 메소드의 집합
  • 어떠한 객체가 특정 인터페이스를 사용한다면 그 객체는 반드시 인터페이스의 메소드들을 구현해야한다.
  • 그렇지 않으면 컴파일 불가
  • 객체의 사용 방법을 정의.
  • 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 열할.?
  • 물리적 형태는 클래스와 동일, 차이점은 소스를 작성할 때 선언 방법이 다르다.
  • 클래스 - 필드, 생성자, 메소드를 구성멤버로, 인터페이스 - 상수, 메소드
  • 인터페이스는 객체 사용 설명서, 런타임 시 데이터 저장할 수 있는 필드 선언 불가.
interface 인터페이스명 {
//상수
타입 상수명 = 값;
//추상 메소드 
타입 메소드명(매개변수,¨¨);  // 객체가 가지고 있는 메소드를 설명한 것.
------------------JAVA 8버전 이후-----------------------------
//디폴트 메소드 
default 타입 메소드명(매개변수,¨¨){¨¨} // 구현 객체가 가지고 있는 인스턴스 메소드.
//정적 메소드
static 타입 메소드명(매개변수){¨¨}
}
interface Inter {
    public void z();
}
 
class A implements Inter{   // A클래스가 인터페이스 Inter 구현중. 
    public void z(){}
}

interface Inter의 맴버인 public void z() 메소드를 클래스 A가 반드시 포함하고 있어야 한다는 뜻

'JAVA' 카테고리의 다른 글

==연산자와 equals 메서드  (0) 2021.10.02
네트워크 기초  (0) 2021.09.28
제네릭  (0) 2021.09.27
컬렉션 프레임워크  (0) 2021.09.26
예외 처리(Exception)  (0) 2021.09.24
컬렉션 프레임 워크(Collection Framework) 컨테이너
  • 값을 담는 그릇

컬렉션 프레임워크(Collection Framework)와 배열의 차이
배열 컬렉션 프레임워크
한 번 정해진 배열의 크기를 변경할 수 없다. 가능
array.length() arrayList.size()
array[인덱스번호] arrayList.get(인덱스번호)
Array[] arr = new Array(); ArrayList<T> arr = new ArrayList<T>();

<이미지출처> https://opentutorials.org/course/2517/14159

'JAVA' 카테고리의 다른 글

==연산자와 equals 메서드  (0) 2021.10.02
네트워크 기초  (0) 2021.09.28
제네릭  (0) 2021.09.27
인터페이스  (0) 2021.09.27
예외 처리(Exception)  (0) 2021.09.24

+ Recent posts