1. Tomcat
Tomcat : 웹 서버 = WAS
📌톰캣이 웹 프로그램를 작동시키는 과정
①브라우저에 우리가 지정한 @WebServlet 주소를 주소창에 치게되면 톰캣이 경로를 찾는다.
②톰캣이 해당@WebServlet주소가 포함된 servlet컨테이너(servlet폴더) 를 찾아서 해당 클래스의 html을 보여준다.
- jsp = servlet
- .jsp파일도 나중에 전부 servlet파일으로 바뀐다.
MVC모델
2. Java Servlet
- WEBアプリを開発するために作られたブログラムの部品
- ServletはWEBサーバー上で動くプログラム
- WEBページをはじめとする画面に関する処理は一切行わず、WEBブラウザからの要求に応えたり、送られてきたデータを処理したりする役割
3. JSP(JavaServer Pages)
JSPは、HTML内にJavaのコードを埋め込み、動的にWEBページを生成する技術のこと。
- ServletはWEBアプリ内部の処理を担当、JSPは主にWEBページを担当
- ServletとJSPが連携することで、特定のユーザー情報を画面に表示したり、ログインしているかいないかで表示する画面の内容を変えたりと動的にWEBページを作ることが可能
4. web.xml
web.xml = 환경 설정 파일
- default주소.
- 검색하면, 보여줄 주소를 설정(파일 이름까지 입력안해도 접속할 수 있다)
✔︎ web.xml은 누가 언제 읽어서 메모리에 올릴까...
- 톰캣의 메모리 안에 프로젝트가 올라갈 메모리 영역을 servlet container라고 한다.
①web.xml파일부터 읽어드린다. 파일안에는 수 많은 세팅이 들어간다. 세팅은 개발자가 만듬.
②servlet컨테이너(servlet폴더)에 만든 .jsp도 servlet파일(.java)로 변환된다.
브라우저에서 웹 페이지를 실행시키는 2가지 방법 차이
- 로컬 파일에서 클릭 -> 웹 브라우저가 html파일을 연다.
- 서버를 통해서 -> 톰캣이 해당 프로젝트을 찾아가서 보여준다. 톰캣은 다수가 하니의 프로젝트에 접속을 할 수 있게한다.(=웹 프로그램)
5. request / response
📌HttpServletRequest request(request객체)
- 사용자가 입력하고 들어오는 모든 정보(웹 브라우저의 정보까지)를 request객체에 담아준다.
HttpServletRequest인터페이스 정의
javax.servlet.http
Interface HttpServletRequest
public interface HttpServletRequest extends ServletRequest
- サービス処理本体(doGet(), doPost()など)が受け取るクライアントからサーバーに送られたリクエスト情報が格納されているオブジェクト。
- HTTPリクエストに詰まっている情報をこのオブジェクトから取得することができる。
📌HttpServletResponse response(response객체)
- Servletがリクエストのあったクライアントに対してHTMLの情報を出力する
- サービス処理本体(doGet(), doPost()など)が受け取るサーバーからクライアントへ応答するときに必要なレスポンス情報が格納されているオブジェクト。
request.getParameter()
5. servlet 파일에서 get 방식과 post 방식의 한글 처리 방식
5-1. Post방식(request.setCharacterEncoding())
질의 문자열이란 클라이언트가 서버로 전달하는 문자열을 의미.
- Post방식은 클라이언트로부터 질의 문자열이 요청정보 몸체에 저장되어 있다.
- doPost함수안에, requesut.setCharacterEncoding()를 사용해서 UTF-8로 인코딩해주면 된다.
- 인코딩 후 getParameter()함수로 추출하여 사용.
5-2. Get방식
- Get방식으로 전달된 질의 문자열들은 URI에 포함되어 전달되기 때문에 URI에 대한 인코딩 처리 작업이 필요.
- 서버의 URI 인코딩 처리 문자코드를 지정하고 싶다면, 서버의 환경설정 파일 중 server.xml 파일에 인코딩 문자코드를 설정해준다.
- Connector 태그 부분에 URIEncoding="UTF-8" 속성을 추가
その他
서버가 반응 안할 떄 ,publish버튼 눌러줌.
- META_INF, WEB_INFO에 들어갈 것은 정해져있고, .jsp파일은 WebContent폴더 바로 안에 만들어야된다.
-> 톰캣이 찾아가는 결로가 정해져있기 때문에 함부로 위의 파일을 건들면 안된다!