-서버상에서 작동하는 자바기반의 웹 어플리케이션 프로그래밍 기술 Server+Applet(자바 프로그램이 웹 서버에서 자동으로 설치되어 동작하는 프로그램
-방대한 정보를 관리할 데이터베이스가 필요하고, 다양한 정보를 얻을 DB에서 얻거나 저장하기위해 PHP,ASP,서블릿/JSP 등 언어가 등장
-확장자 .java
-java Multi Thread 를 이용해 동작->속도, 메모리면 효율성
-기본적으로 서버는 웹서버와 WAS로 구성 되어 있다.
-클라이언트 요청(request)에 동적으로 작동하고 응답(ressponse)은 HTML을 이용 => http 통신규약
-Web Application Server: 서버안에서 프로그램을 만들어서 구동할 수 있는 환경을 가지고 있다 / 요청한 페이지의 로직, DB와 연동을 처리할 수있는 비즈니스 로직이 구현되어야 하는 웹 어플리케이션 서버 =>서블릿/JSP를 구동시키는것은 WAS인데 구동시키기위해서는 자바 컴파일러가 필요 하기때문에 JDK설치 필수
-Common Gateway Interface : 서버안에서 프로그램으로 옮겨갈 수 있는 통신 규약
-httpservlet 클래스를 상속받아 사용
-서비스 메소드를 만들어 사용
웹서버와의 통신 지원, 멀티쓰레드 지원 및 관리 등
https://velog.io/@han_been/%EC%84%9C%EB%B8%94%EB%A6%BF-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88Servlet-Container-%EB%9E%80 참고하기
1.new-dynamic web project 생성하기
2.new-servlet 생성
3.패키지 이름 지정 - 클래스이름 지정 next
4.url맵핑 지정해도 되고 안해도 됨(클래스생성하고 바꿔줄수있기때문) next
5.Inherited atract method 체크, 요청방식에 따라 체크
form method="get"또는"post" action="서블릿이름"
1.action ="url mapping"서블릿파일
2.name 어떤 값을 가져옴
3.submit전송시점
사용자 요청에 가져오는 방식이 두가지 ! 가져오는 값들에 대한 인코딩이 필요함 -> 콘솔창에 나타남
get방식 (기본값)
-form태그에 method="get"
-주소창을 타고 넘어가기 때문에 서버에로 보내는 데이터를 사용자가 직접 볼 수 있다.
-255자 이하 적은데이터 전송할때
-주소입력란에 직접 서블릿요청을 url입력시 get방식으로 인식
-a태그를 통한 하이퍼링크를 통해 서버가 요청되는 경우에도 get방식으로 요청됨
-url ->쿼리스트링:어떤페이지의 정보를담음
-내 url 주소 : http: // localhost: ____/contextpath/서블릿path(url mapping문자열)?name=value
-sever.xml에서 인코딩해줌
-> 인코딩방식설정
severs폴더 - server.xml - source탭 - 63번째줄쯤 Connector URIEncoding="EUC-KR"
post방식
-form태그에 method="post"
-html header 를 타고 넘어가 보안에 강함
-많은데이터를 전송할때나, 데이터 노출되면 안되는 회원가입과 같은 정보
-일반적인 폼에서는 post방식을 사용함
-수집한 정보를 request.getCharacterEncoding("");으로 인코딩
일종의 통로로 자바코드안에서 printWriter out으로 출력스트림에 out.print("");
out.print("< html>< head>< title>출력하기< /title>< /head>");
out.print("< body>안녕하세요!< /body>< /html>");
---->실행결과를 HTML문서로 응답해주기 때문에 response로부터 얻어온 출력스트림인 out객체의 출력메소드 print에 일일이 HTML태그를 기술해 줘야 됨!
-사용이끝나면 안전하게 닫아주기 out.close();