Bepoz
파즈의 공부 일기
Bepoz
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • 공부 기록들 (85)
      • 우테코 (17)
    • Spring (85)
    • Java (43)
    • Infra (17)
    • 책 정리 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Bepoz

파즈의 공부 일기

2020.03.10 JSP (1)
공부 기록들

2020.03.10 JSP (1)

2020. 3. 10. 23:56

context path 는 root를 나타냄

 

jsp -> 웹컨테이너 -> html

 

웹컨테이너인 tomcat이 

java -> class -> obj 순으로 변환해줌

이렇기에 페이지에서 소스보기를 눌러도 jsp 가 보이지 않고 html만 보이게 됨.

저장되어있는 곳을 보면 class 파일이 생성된 것을 확인할 수 있음

 

jsp 는 WebContent 안에

servlet 은 java Resources 의 src 안

 

 

Servlet 맵핑

 

full path   :   localhost:8090/context_path/servlet/package_name.servlet_name

mapping path : localhost:8090/context_path/url_mapping

 

web.xml 또는 java annotation을 이용하여 한다.

 

java annotation  :  @WebServlet("/hs")  이렇게 public class HelloServlet extends HttpServlet { 위에다가 써놓음

 

web.xml 에

<servlet>
   <servlet-name>servletEx</servlet-name>     이곳에는 임의의 이름

   <servlet-class>com.servlet.ServletEx</servlet-class>    이곳에는 servlet 경로
</servlet>

<servlet-mapping>

  <servlet-name ~~~            위의 이름

  <url-pattern>/임의의 url 정함</url-pattern>

</servlet-mapping>  이렇게 한다.  저곳의 url 를 치면 해당 servlet으로 맵핑이 된다.

 

ㅡㅡㅡㅡ

servlet 파일을 생성시에 자동으로 HttpServlet 을 extends 해준다.

요청에 관한 처리는 request 응답을 해주기 위한 작업을 할 때에는 response 객체를 이용해주면 된다.

ㅡㅡㅡㅡ

servlet 생명 주기

@PostConstruct --> init() --> service --> destroy() --> @PreDestroy

init 과 destroy를 따로 할 것이 없다면 doGet 과 dePost 만 해도된다.

PostConstruct 과 PreDestroy 의 경우 함수명을 임의로 설정해도 된다. annotation 만 @PostConstruct , @PreDestroy 로 잘 달아주기만 하면 된다.

 

데이터 서버의 로그인 아이디와 pw 를 어떤 변수에 담는다던가 공통적으로 이루어질 업무들을 init 단계에서 많이 하게 된다.

다시 무언가를 반납해야 할 때에 destroy 함수에 많이 사용하게 된다.

 

이러한 함수를 누가 호출해주냐? 웹컨테이너 (톰캣)이 호출해준다. 

ㅡㅡㅡㅡ

the import javax.servlet cannot be resolved 가 뜰 때에는

프로젝트 오른쪽 클릭 Configure build Path -> Java Build Path -> Libaries -> Add External JARs...

-> 톰캣폴더\lib\ 찾기 -> jsp-api.jar, servlet-api.jar를 넣어주면 된다.

 

request.getParameterNames();  는 request로 오는 name 값 들을 다 가지고 온다.

ㅡㅡㅡㅡ

servlet 은 .java --> .class  이고 java 코드로 이루어져 있다.

 

jsp 는 xxx.jsp --> xxx_jsp.java --> xxx_jsp.class 로 변형이 되고, html 코드 안에 java코드가 들어가있는 형태이다.

 

jsp 의 선언 태그  <%!       ...   %> 이고, JSP 페이지에서 Java의 멤버변수 또는 메서드를 선언한다.

 

주석태그 <!-- ... --> 이것은 html 주석태그이고  <%-- ... --%>  이것은 jsp 주석 코드이다.

jsp 주석 태그는 java 코드가 소스보기를 눌렀을 때에 보이지 않은 것처럼 이것 또한 보이지 않게 된다.

 

스크립트릿 태그 : JSP 페이지에서 Java 코드를 넣기 위한 태그

<% if(num>0) { %>

<p> num>0 </p>

<% } %>  

선언 태그는 멤버변수와 메서드만을 선언하는데 스크립트릿 태그는 java 코드를 마음껏 사용할 수 있다.

 

표현식 태그 : Java 의 변수 및 메서드의 반환값을 출력하는 태그

  num is <%=num%>   

  html코드   java코드

 

소스보기를 눌렀을 때에는 java 코드가 보이지 않는다.

 

지시어 : 서버에서 jsp 페이지를 처리하는 방법에 대한 정의

 1) page : 페이지 기본 설정 -> <%@ page 속성 = " 속성 값" %>

<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>

<%@ page import="java.util.ArrayList"%>

 

 2) include : include file 설정 --> <%@ include file="파일명" %>

<%@ include file="header.jsp" %>

 

 3) taglib : 외부라이브러리 태그 설정 --> <%@ taglib uri="uri" prefix ="네임스페이스명" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

ㅡㅡㅡㅡ

response.sendRedirect("secondpage.jsp");  이쪽으로 돌려준다.

config 객체 

web.xml 에 미리 값을 선언해두고 jsp에서 가져오는 방법이다. 

application 객체는 하나의 jsp 에 적용하던 config 객체의 init Param 과는 다르게 전체에 적용된다.

다음과 같이 사용하고 jsp 내에서는 config 객체때처럼 표현식 태그를 동일하게 이용해 출력해주면 된다.

그리고, 

application.setAttribute("connectedIP","165.62.58.23");
application.setAttribute("connectedUser","hong");         다음과 같이 application 객체에 값을 set 해두고

 

connectedIP=(String)application.getAttribute("connectedIP");
connectedUser=(String)application.getAttribute("connectedUser"); 다음과 같이 다른 jsp 에서 이렇게 받아올 수 있다.

 

<%@ page errorPage="errorPage.jsp"%> 다음과 같이 작성하여서 이 페이지 내에서 에러가 났을 때에 " " 안의 jsp 로 보낼 수 있다.

그리고 그 에러 페이지에는 <%@ page isErrorPage="true"%> 를 작성해 주어야 한다.

 

다음과 같다. 오늘은 여기서 끝.

'공부 기록들' 카테고리의 다른 글

2020.03.19 Spring(1)  (0) 2020.03.19
2020.03.11 JSP(2)  (0) 2020.03.11
2020.02.25-28 백엔드 공부(8)  (0) 2020.02.28
2020.02.19 백엔드 공부 (7)  (0) 2020.02.19
2020.02.14 & 02.17 백엔드 공부(5),(6)  (0) 2020.02.18
    '공부 기록들' 카테고리의 다른 글
    • 2020.03.19 Spring(1)
    • 2020.03.11 JSP(2)
    • 2020.02.25-28 백엔드 공부(8)
    • 2020.02.19 백엔드 공부 (7)
    Bepoz
    Bepoz
    https://github.com/Be-poz/TIL

    티스토리툴바