티스토리 뷰

가상주소가 들어오면 주소 매핑을 하기 위해(실제 주소와 연결) 서블릿을 지정한다.

 

 

web.xml

서블릿과 매핑에 대한 정보를 입력한다.

여기서 지정한 .me 로 끝나야 서버에 접속이 된다!

<servlet>
	<servlet-name>MemberController</servlet-name>
	<servlet-class>com.빨간부분.controller.MemberController</servlet-class>
</servlet> 
 
 
<!-- .me로 끝나는 주소값으로 만들겠다! -->
<servlet-mapping>
	<servlet-name>MemberController</servlet-name>
	<url-pattern>*.me</url-pattern>
</servlet-mapping>

위에 적은 것과 같이 java 패키지와 파일을 만든다.

 

 

MemberController.java

MemberController는 web.xml에서 지정한 서블릿(처리 담당자)

HttpServelet을 상속받아서 서블릿 동작 메서드(doGet(), doPost(), service())를 자동으로 호출하고 재정의한다!

doPro()를 만들어 doGet()이나 doPost()에서 호출되게 한다. (반복 작업도 줄여준다)

public class MemberController extends HttpServlet{

	protected void doPro(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		System.out.println("doGet(), doPost() 호출");
		System.out.println("MemberController doPro()");
		System.out.println("주소 매핑 => 가상주소가 들어오면 실제주소 연결");
	}

	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		System.out.println("get 방식 데이터전송");
		System.out.println("MemberController doGet()");
		doPro(request, response);
	}
	
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException {
		System.out.println("post 방식 데이터전송");
		System.out.println("MemberController doPost()");
		doPro(request, response);
		
	}
	
}

 

이하 작업은 doPro() 바디 안에 서 입력한다.

 

 

주소 뽑아오는 작업

/XXX.me를 뽑아오기 위한 작업이다.

String requestURL = request.getRequestURL().toString();
// http://localhost:8080/Model2/insertForm.me
System.out.println(requestURL);
String requestURI = request.getRequestURI();
System.out.println(requestURI);
// /Model2/insertForm.me
// 프로젝트 경로(contextPath) /Model2
String contextPath=request.getContextPath();
System.out.println(contextPath);
// /Model2
System.out.println(contextPath.length());
// 문자열 뽑기 substring(시작위치) => 시작위치에서 끝까지 뽑아오기
String substringPath=requestURI.substring(contextPath.length());
System.out.println("전체주소에서 가상주소 뽑아옴 : " + substringPath);
// 뽑아온 주소 /insertForm.me

 

주소 매핑

가상 주소 /insertForm.me를 실제 주소 member/insertForm.jsp로 만든다.

 

이동 방법에는 4가지가 있는데

1. 하이퍼링크로 이동
2. location.href
3. responseRedirect()

위 방법들은 페이지에서 페이지로 주소를 변경하며 이동하고, 값을 가지고 이동하지 않는다.

4. forward()

가상주소를 유지하고 실제 페이지에는 화면만 보이게 이동하는 forward()를 사용한다.

 

if(substringPath.equals("/insertForm.me")) { // 일치할 경우, 실제주소로 이동

    //	response.sendRedirect("member/insertForm.jsp");	// 이 방식으로 이동하면 노출된다.
    // 주소변경없이 이동하는 프로그램 RequestDispather
    RequestDispatcher dispatcher=request.getRequestDispatcher("member/insertForm.jsp");
    dispatcher.forward(request, response);

}else if(substringPath.equals("/insertPro.me")) { // 일치할 경우, 실제주소로 이동
    System.out.println("/insertPro.me");
    System.out.println("회원가입 처리");
    // loginForm.me 주소가 변경되어 이동
    response.sendRedirect("loginForm.me");
}

 

기존 파일의 폼액션 insertPro.jsp를 insertPro.me로 바꾸어주고

이런 식으로 처리하면 매핑 완료~!

'배운 것 기록 > jsp' 카테고리의 다른 글

MVC 구조  (0) 2022.08.02
MVC2 등장 배경  (0) 2022.07.25
[jsp] 페이지 만들기  (0) 2022.07.07
[jsp] MemberDTO, MemberDAO  (0) 2022.06.24
[jsp] delete, list 구현  (0) 2022.06.15
댓글
최근에 올라온 글
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함