목록전체 글 (88)
SOCO
한글출력문제 : 서버에서 클라이언트로 응답할 때 한글이 깨지는 문제 https://ssooccoo.tistory.com/56 서블릿 출력 형식의 이해 : 문서형태지정&한글출력 1. ctrl + F11 2. server 뷰에서 우클릭 restart 후 웹에서 F5 서블릿은 어떻게 출력되고 클라이언트는 어떻게 이해하는가 문제점 1. 브라우저의 자의적 해석 웹은 html 마크업 언어를 통해 랜더링 되어야 ssooccoo.tistory.com 한글입력문제 : 클라이언트에서 서버로 요청할 때 한글이 깨지는 문제 멀티 바이트 문자 전송문제 UTF-8 : 멀티바이트 영문자는 1바이트면 충분 한글은 2바이트임 클라이언트가 UTF-8로 요청하더라도 서버(톰캣)는 ISO-8859-1이라는 인코딩 방식을 이용함 ISO-88..
입력할 것이 많으면 한 번에 get요청을 하지 못하고 get요청과 post요청을 나눠서 처음에는 입력폼을 받기 위한 get요청을 하고 그 결과를 post함 *get요청 : url에 쿼리스트링이 붙어진 상태로 요청됨 *post요청 : url에 쿼리스트링이 붙지 않음 -> 정보양이 많을 때, 회원가입&로그인 등 보안 1. html 파일 제목 : 내용 * form의 action -> 매핑된 서블릿 파일과 연결됨 (@WebServlet("")) * input, textarea의 name이 키워드가 됨 -> 서블릿에서 getParameter과 연결됨 (name이라는 변수를 설정하는 것이 아니라 input 태그의 name 명을 정해주는 것 ! -> 서블릿은 name으로 태그를 인식함) *html 파일 자체에서는 변..
지난 포스팅 => 출력방법 : 서블릿이라는 플랫폼 api를 이용해서 사용자에게 어떻게 출력할 것인가 ------------- 이번 시간 내용 => 입력방법(get 요청) 사용자가 어떤 값을 입력하는 것을 어떻게 처리할 것인가 사용자의 입력 -> 나에게 요청할 때 입력이 이루어짐 입력과 요청은 맞닿아있다! 그럼 사용자가 요청을 원할 때 전달하는 값을 어떻게 받을 것인가 사용자의 요청은 get요청이 기본적임 --------------- 기본적으로 웹이라고 하는 것은 브라우저를 사용하는 클라이언트가 뭔가를 요청하고 서버가 그에 대한 응답을 하게 됨 ---------------- 1. 쿼리스트링 클라이언트가 요청하는 것은 기본적으로 문서임 문서를 요청할 때 추가적인 인자를 전달할 수 있음. 키 값에 해당되는 값..
1. ctrl + F11 2. server 뷰에서 우클릭 restart 후 웹에서 F5 서블릿은 어떻게 출력되고 클라이언트는 어떻게 이해하는가 문제점 1. 브라우저의 자의적 해석 웹은 html 마크업 언어를 통해 랜더링 되어야하므로 println을 썼다고 하더라도 태그가 없으면 줄바꿈이 되면 안 됨 BUT, 크롬에 컨텐츠 형식을 알려주지 않은 경우에는 없이도 줄바꿈이 되고 태그를 넣으면 을 태그로 인식하지 않고 문자로 인식해서 출력함 컨텐츠 형식을 알려주지 않으면 브라우저가 엣지인 경우에는 html로 해석하지만 브라우저가 크롬인 경우에는 text로 해석하는 게 기본이기 때문임 => 문서를 보낼 때 어떠한 형태의 문서를 보내는지 설정해서 보내야함 : response.setContentType("text/h..
1. web.xml에서 서블릿과 url매핑 web.xml na com.newlecture.web.Nana na /hello 2. annotation을 이용한 url매핑 annotation 클래스나, 메소드에 붙여지는 주석임 주석은 일반적으로 컴파일 과정에서 사라지는데 어노테이션의 경우 컴파일 과정에서 사라지지 않을 수 있음 컴파일 과정에서 이러한 주석정보가 활용이 가능함 메소드나 클래스에 붙여진 어노테이션이라는 정보를 이용해서 실행하는데 영향을 줄수 있음 1) web.xml에서 metadata-complete = "false"로 바꿔야함 web.xml 2)annotation 설정 : @WebServlet("/hello") @WebServlet("/hello") public class Nana extend..
자바 애플리케이션의 경우 Java Project > Class > main 메서드 자바 웹 프로그래밍의 경우 Dynamic Web Projeect > Class > service 메서드 1. Dynamic Web Project : 서블릿 코드를 만들고 실행하기 위한 여러 정보를 담은 환경 서블릿을 실행해주는 것(WAS)에는 톰캣만 있는 것이 아님 target runtime의 new runtime을 클릭하면 다른 WAS를 선택할 수 있음 아무튼, 톰캣9.0을 선택하고 톰캣이 있는 파일을 경로로 선택해줌 홈디렉토리는 프로젝트 > src > main > webapp 홈디렉토리에 서블릿이 아니라 html을 만들었다면, 이제는 ctrl + F11버튼을 클릭하면됨 이 경우 이클립스 내에서 열림 (사용자가 어떤 브라..
6. 클라이언트에게 출력하는 방법을 알기 전에 자바 프로그램과 서블릿 프로그램의 차이점 서블릿 : 자바를 이용해서 웹 프로그램을 만들기 => 자바 웹 프로그래밍 웹이 담당하는 것은 UI임 UI라고 하는 것은 콘솔UI, 윈도우UI 등이 있을 수 있음 웹 프로그래밍이 됨으로써, 입력과 출력을 담당하는 부분이 웹으로 바뀌는 것임 웹은 서버에서 클라이언트로(원격에 있는 곳으로) 출력 결과를 보여줌 또는 클라이언트로 부터 입력을 받을 수 있음 서블릿은 웹을 활용한다는 점에서 기존 자바와 입력과 출력에 대한 내용이 다르므로 이 부분을 이해해야함 처음에 작성한 코드 다시 보기! import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public ..
[잠깐 복습] 서블릿을 만든다는 의미는 서버 애플리케이션을 만든다는 것 서버 애플리케이션은 기능별로 코드가 나눠져있고, 필요에 따라 코드가 선택적으로 실행될 수 있게 만들어져있음 (웹이라는 환경을 통해서 프로그램을 실행해야하기 때문) 예를 들어 사용자가 공지사항 리스트를 달라고 요청을 하면, 리스트라는 서블릿(서버 애플리케이션)만 실행하는 것임 사용자가 요청하기 전까지 서버애플리케이션(서블릿)은 로드되지 않음 수많은 조각(기능)들이 있고, 모든 기능이 다 사용되지 않음 어쩌다가 요청이 들어오면 그것만 사용됨 효율성을 높이기 위해 웹이라는 환경에서 사용되는 서버프로그램이다보니 필요에 따라 로드될 수 있도록 조각나있는 것임 조각 나 있는 서버 애플리케이션 => 서블릿! 모든 서버 애플리케이션을 다 한 번에 ..
지난 주까지 잘 되던 startup.bat이 바로 꺼지는 문제 발생.. 구글링하다가 며칠 전에 jdk파일 경로를 바꿨던 게 기억났다! 톰캣 startup.bat파일이 바로꺼지면 시스템고급설정에서 환경변수에 jdk가 있는지 확인해야한다 [고급시스템설정] -> [고급] ->[환경변수] -> 새로 만들기 or 변경 변수이름 : JAVA_HOME 변수 값 : jdk의 파일 경로
what is debugging(디버깅) 코드에 오류를 발견하여 수정하는 과정 오류의 '원인'을 알고 '해결책'을 찾아야 함 문법적 에러를 찾기 위한 에러 메시지 분석 논리적 에러(뜻 대로 실행이 안되는 코드)를 찾기 위한 테스트도 중요 문법적 에러 종류 1. 인덴테이션 에러 -unexpected indent -unindent does not match any outer indentation level 2. 오탈자 -is not defined 3. 대소문자 구분 -is not defined 4. 괄호 -invalid syntax 논리적 에러 해결 방법 1. 중간중간 프린터 문을 찍어서 확인 2. 함수를 설정한 경우에는 중간중간 임폴트해서 확인하기 import 파일명 파일명.함수명() 3. if__name..