웹 페이지 URL
웹 페이지 URL은 각 페이지의 주소이다.
http://severip:port/projname/member/a.jsp
http://severip:port/projname/test/Login
웹 서버 페이지
서블릿, JSP 는 웹 서버 페이지이다. 웹 페이지는 URL로 접근하며, 각 페이지는 접근할 수 있는 URL을 가져야한다.
jSP는
webapp 폴더가 '/'가 된다.
webapp/member/a.jsp ⇒ /member/a.jsp
Servlet은
@WebServlet(”/test/Login”)에서 지정한 url로 접근한다.
/test/Login 을 작성하면 해당 서블릿 페이지로 연결된다.
이 주소는 무엇이든 상관없지만 다른 서블릿과 중복되면 안된다.
get 방식 요청
<a href = “/projname/test/Login”></a>
location.href = “projname/test/Login”;
메소드를 입력하지 않으면 get 으로 먼저 연결된다.
- 폼으로 get방식 요청
<form action = “/projname/test/Login” method = “get”>
⇒ 이 경우 Login 서블릿의 doGet()이 호출된다.
post 방식 요청
<form action = “/projname/test/Login” method = “post”>
⇒ Login 서블릿의 doPost()이 호출된다.
메소드가 한개만 필요하다면 ...
method 를 post 방식으로 연결하고
doGet(request, response); 로 작성해준다.
컨트롤러 (Servlet)
컨트롤러는 요청을 받아서 처리한다. 처리를 위해서는 클라이언트가 요구한 기능을 수행하고 결과 뷰페이지를 클라이언트에게 돌려줘야한다. 또한, 컨트롤러는 기능이 구현된 service 객체를 필요로 한다. 결과는 뷰 페이지를 만들어서 응답으로 보낸다.
1. 요청시 폼 파라메터를 함께 전송하면 그 값을 읽어서 변수에 담는다.
request.getParameter("파라메터 이름");
String id = request.getParameter("id");
int num = Integer.parseInt(request.getParameter("num"));
//int 의 경우 강제 int 변환 Integer.parseInt를 사용해준다.
2. 처리 결과를 뷰 페이지에 전달하려면 request 에 담아 전달한다.
request.setAttribute(”뷰 페이지에서 부를 이름”, 전달할 값);
뷰 페이지 (JSP)
뼈대는 HTML이다.
HTML, CSS, JavaScript, Java 모두 사용이 가능하다.
JSP 에서 자바 표현식은 사용하지 않는 추세 (대신 el, jstl 표현식을 대부분 사용한다.)
EL 표현식 ${자바변수 }
EL 표현식은 값이 있으면 출력하고, 없으면 출력하지 않는다.
JSTL
태그 정의 jar 파일을 lib에 넣어서 사용한다. 기본 로직을 태그로 정의한 라이브러리이다.
(JSTL을 사용하면 JSP 에서 자바를 따로 불러와 사용할 필요 없다.)
예시
로그인의 경우
1) 로그인 폼
get 방식 요청으로 처리
2) 폼에 작성한 id, pwd 확인하여 로그인 처리
post 방식 요청으로 처리
글목록
전체 목록을 불러오기 위해서는 하나의 메서드만 필요하다.
하나만 필요한 경우는 하나만 구현하고 다른 메서드는 상대방 메서드를 구현하도록 한다.