본문 바로가기
Back-end/웹(web)

[웹] 서블릿 시작하기 / 세팅 / NULL처리

by javapp 자바앱 2020. 5. 19.
728x90

웹 서버 구조

 

웹 클라이언트  - 요청 - >[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

 

Maven Repository: org.apache.commons » commons-lang3

Apache Commons Lang, a package of Java utility classes for the classes that are in java.lang's hierarchy, or are considered to be so standard as to justify existence in java.lang. VersionRepositoryUsagesDate3.10.x3.10Central750Mar, 20203.9.x3.9Central2,938

mvnrepository.com

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

 

[Tomcat_Error] Server Tomcat v9.0 Server at localhost failed to start 에러 해결방법 2가지!

데브림의 블로그 포스팅 한 것들을 한 눈에 확인하고 싶다면 클릭! 👉 https://github.com/DevLimK1/tistory-map 👈 나의 소소한 기록이 누군가에게는 도움이 되고, 그토록 원하던 답변일 수 있다.  에러(

devlimk1.tistory.com

https://franklee0180.tistory.com/9

 

[Error] 톰캣 서버 충돌

server tomcat v9.0 server at localhost failed to start. 톰캣 서버가 잘 작동이 안될때 이런 문구가 뜰 때가 있다. 이거가지고 매번 애 먹었는데, 여태까지의 경우는 톰캣 삭제 -> 재설치 하면 잘 됐는..

franklee0180.tistory.com

 

 

톰켓 9.0. 은 servlet 4.0

https://fliedcat.tistory.com/65

 

Servlet 버전별 web.xml 스키마 기술

개요 Tomcat 9에서 쓰던 어플리케이션을 Jeus7에서 Deploy하려다 보니 JeusServer.log 파일에 아래와 같은 오류가 발생한다. Cannot find the declaration of element 'web-app' 원인은 JEUS 7 은 servlet 3.0까지..

fliedcat.tistory.com

 

 

web.xml
0.00MB

 

 


https://yanoos.tistory.com/54

 

<form>태그를 이용하여 servlet에 요청하기

#html 측면(servlet에 form 태그 내용 전달하는 방법) 태그 안의 을 누르면 태그의 action attribute가 가리키는 servlet에 태그의 내용이 전달됩니다. 가령, 위 코드와 같은 경우 servlet mapping이 login인 serv..

yanoos.tistory.com

 

' / ' 없이 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"
		}

 

댓글