<!-- /project/signup.jsp -->
<form method="post" action="/project/ch01/signup"> <!-- 클라이언트이기에 프로젝트명부터 적음-->
ID : <input type="text" name = "name"><br>
Password : <input type="password" name = "pw"><br>
<input type="submit" value="가입하기">
</form>
form을 submit버튼을 눌러 제출하면 method 방식으로 input의 name을 key값으로 하여 value가 action으로 맵핑된 페이지(서블릿파일이름 X)로 제출
맵핑할 때는 서블릿파일의 이름은 전혀 필요하지 않다.
form태그에 action속성이 없을 시 자신의 페이지를 다시 로딩함
<!-- web.xml -->
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>servlet.signupServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/ch01/signup</url-pattern>
</servlet-mapping>
// signupServlet.java
@WebServlet("/ch01/signup") // 서버이기에 Webcontent이하 폴더부터 적음
public class getServlet extends HttpServlet {
...
}
servlet파일은 src폴더 아래에 있지만 @WebServlet()으로 맵핑할때는 클라이언트가 있는 Webcontent이하 폴더부터 설정된 경로로 입력해야함. (서버 side이기때문에)
- 상대경로 사용시 : 클라이언트의 위치를 기준으로 경로가 설정됨. @WebServlet()에 적을때는 클라이언트 경로에서 프로젝트명을 제외한 경로를 적어야함.
- 절대경로 사용시(위와같은 경우) : action에 입력한 이름이 @WebServlet()에서 프로젝트명을 제외한 이름과 같아야함
(action은 클라이언트라 프로젝트명이 포함되고 @WebServlet은 서버라서 프로젝트명이 제외되기 때문이다.)
클라이언트(뷰)는 절대경로처럼 프로젝트부터 경로시작
서버는 WebContent이하 폴더부터 경로시작 -> 단, response.sendRedirect()는 프로젝트명부터 시작
'Web > JSP&Servlet' 카테고리의 다른 글
[JSP] 내장 객체 - request (0) | 2020.07.31 |
---|---|
DAO, DTO (0) | 2020.07.29 |
[JSP] 내장 객체 (0) | 2020.07.26 |
JDBC (0) | 2020.04.24 |
Scope (0) | 2020.04.23 |