웹 서버 구조
웹 클라이언트 - 요청 - >[WAS] {Server Application (servlet)} 동적 페이지 생성코드 <-> 실행환경(컨테이너) <->DB ]
웹 클라이언트 <- 응답
[개발자] 소스작성 -> servlet,java -> 컴파일 : .clsss -> 등록 -> 서블릿 컨테이너
웹 클라이언트 <- 응답<->요청 -> 서블릿 컨테이너 <-> DB
이벤트 | 생명주기 메소드 | 실행 |
서블릿 초기화 |
init() | 초기에 한번 |
요청/응답 | service() doGet() doPost |
스레드를 통해 동시에 |
서블릿 종료 | destroy() | 종료할때 한번 |
서블릿 클래스 -> (인스턴스화) -> 서블릿 객체 -> (초기화) -> 서블릿 -> service()
-> get일경우 doGet() , post일 경우 doPost()
정적 페이지 ( 이미지 html css javascript ) : 웹 서버가 처리
동적 페이지 : WAS 에 넘김 (웹 컨테이너)
오픈소스 : APACHE , web application server -> tomcat (개발환경)
자바 - 컴파일 - 컨테이너로 올려짐 - 인스턴스 - 초기화 - 실행상태
인코딩 클래스
public class CharacterEncodingFilter implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html);charset=utf-8");
chain.doFilter(request, response);
}
}
인코딩 클래스 맵핑
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>com.web.servlet.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
추가
boiler plate code / 공백일때 처리 방법
메이븐 repository - 최상위 - jar 파일(압축해제x) - lib에 배치
org.apache.commons.lang3.StringUtils
https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
jar 파일을 lib파일 에 배치하기
<적용>
String age = StringUtils.defaultIfEmpty(req.getParameter("age"), "0");
StringUtils.isBlack(req.getParameter("age")); //empty 이면 true : false
Server Tomcat v9.0 Server at localhost failed to start 에러
https://devlimk1.tistory.com/10
https://franklee0180.tistory.com/9
톰켓 9.0. 은 servlet 4.0
https://fliedcat.tistory.com/65
' / ' 없이 action에 쓰기
<form action="adder.do" method="get">
첫 수 : <input type="text" name="num1"><br/>
두 수 : <input type="text" name="num2"><br/>
<input type="submit" value="더하기"/>
</form>
Servlet.java
@WebServlet(
urlPatterns = {
"/AdderServlet",
"/exam/adder.do"
}
'Back-end > 웹(web)' 카테고리의 다른 글
[웹] 데이터 공유와 쿠키 (0) | 2020.05.24 |
---|---|
[웹] 서블릿 초기화 파라미터 (0) | 2020.05.22 |
[웹] JSP 파일에 서블릿 적용하기 (0) | 2020.05.20 |
VS code 비쥬얼 코드 설정하기 (0) | 2020.03.24 |
웹(web) 을 시작하다 / VS Code 파일 생성 (0) | 2020.03.24 |
댓글