JSP [ Context path name, Action, Method ]

양혜정·2024년 4월 20일
0

javascript_web

목록 보기
57/81

Context path name

  • 컨텍스트 패스명

    Servers -> Tomcat v10.1 Server 더블클릭 -> Moudules -> 클릭하여 주소 확인 -> Edit 를 통해 Path 변경 가능

<%
	String ctxPath = request.getContextPath();
// ctxPath => /Dynamic web project name		// 기본값
// ctxPath => /변경이름						// 변경한 경우
// ctxPath => 					// 아무것도 없이 설정하거나 / 로 설정
%>

Action

  • 컨텍스트 패스명을 사용해서 작성하기!!

    이유

    -> 컨텍스트 패스명이 동일하다면 괜찮지만 그렇지 않을 경우 원하는 주소값을 얻지 못할 수 있다.
    -> 컨텍스트 패스명과 action 뒤 맨앞에 적힌 글씨가 동일하다면 같게 나오지만 그것이 아닐 경우
    -> URI 주소 : 컨텍스트 패스명 / action 뒤에 작성된 주소 로 나타날 수 있다.

<form action="<%=ctxPath>/해당파일.do" method="전송방법">

Method

  • 전송방법을 뜻한다.
  • 생략시 method="get" 으로 되어진다

Get 방법

  • 데이터를 공개하므로 보안성이 떨어진다.
  • 속도가 빠르다.
  • 일반적으로 보안과 관계없는 데이터 조회에 주로 사용

Post 방법

  • 보안성이 좋다.
  • 톰캣 9 까지는 한글이 깨진다.
    getparameter 보다 request.setCharacterEncoding("UTF-8"); 을 먼저 해주어야 한다.

Servlet 사용

  • 웹서비스 기능을 해주는 자바 클래스
public class 파일명 extends HttpServlet{
	// 기본값 설정
    @Override
    protected void doGet(HttpServletRequest request,
    	HttpServletResponse response) {
    // protected 와 같던지 접근제한자가 더 큰 것을 사용
	// HttpServletRequest request 객체는 전송되어져온 데이터를 처리
	// HttpServletResponse response 객체는 
	// 전송되어져온 데이터를 조작해서 결과물을 나타낼 때 사용
    
        /* 파라미터에 작성된 것들 import 하기!! */

    }	// end of protected void doGet---------------
}

doGet 메소드 안에서 값 읽어오기

@Override
    protected void doGet(HttpServletRequest request,
    	HttpServletResponse response) {
        // === 한개의 값 읽어오기 === //
		String 이름  = request.getParameter("name명");
        // 웹의 기본타입은 String 이다.
        
        // === 여러개 선택하여 값 읽어오기 === //
        String 이름[] = request.getParameterValues("name명");
}

doPost 메소드 안에서 값 읽어오기

@Override
    protected void doPost(HttpServletRequest request,
    	HttpServletResponse response) {
        // === 톰캣9 이하의 경우 한글깨지지 않게 해주기 === //
        request.setCharacterEncodint("UTF-8");
        
        // === 한개의 값 읽어오기 === //
		String 이름  = request.getParameter("name명");
        // 웹의 기본타입은 String 이다.
        
        // === 여러개 선택하여 값 읽어오기 === //
        String 이름[] = request.getParameterValues("name명");
}

★ 중요 ★

jsp 태그에 있는 name 속성의 속성명과 DTO field 에 있는 필드명과 DB 테이블에 존재하는 컬럼명을 모두 통일하여야 한다!!

웹브라우저에 출력

@Override
    protected void doGet(HttpServletRequest request,
    	HttpServletResponse response) {
        // 한글 깨지지 않게 해주기
		response.setContentType("text/html; charset=UTF-8");
        
    	// 웹브라우저에 출력 - out 은 웹브라우저에 기술하는 대상체
    	PrintWriter out = response.getWriter();	// throw 해주기
    	out.println("<html>");
    	out.printf("...");
    ...
}

Method 방식 확인

  • 클라이언트(jsp 파일)에서 넘어온 method 방식이 GET 인지 POST 인지 확인
String method = request.getMethod();	// GET 또는 POST
// 반드시 대문자로 출력된다.
  • Execute 로 활용하기
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse
	response) throws IOException{
	execute(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse
	response) throws IOException{
	execute(request, response);
}

protected void execute(HttpServletRequest request, 
	HttpServletResponse response) throws IOException{
	...
    String method = request.getMethod(); // 활용
    ...
}

Servlet

  • web.xml 에서 작성 방식
<servlet>
    <servlet-name>부를 이름</servlet-name>
    <servlet-class>webapp 이후 파일명의 위치(jsp제외)</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>부를 이름</servlet-name>
    <url-pattern>/파일명.do(action위치)</url-pattern>
  </servlet-mapping>
// 부를 이름을 동일하게 지어주어야 한다.
  • 어노테이션 방식
    @ 이용
@WebServlet("파일명.do(jsp제외)")
// Dynamic web project name 제외하고 전송

참고


정리

  • JSPServletBegin -> src~webapp -> chap02
    -> 01_getMethod.jsp, 02_postMethod.jsp, 03_get_post_Method.jsp, 04_get_post_Method.jsp, 05_get_post_Method.jsp, 06_get_post_Method.jsp, 07_get_post_Method.jsp, 01.css

  • JSPServletBegin -> src~java -> chap02
    -> GetMethod_01.java, PostMethod_02.java, Get_Post_Method_03.java, Get_Post_Method_04.java, Get_Post_Method_05.java, Get_Post_Method_06.java, Get_Post_Method_07.java

0개의 댓글

관련 채용 정보