Servers -> Tomcat v10.1 Server 더블클릭 -> Moudules -> 클릭하여 주소 확인 -> Edit 를 통해 Path 변경 가능
<%
String ctxPath = request.getContextPath();
// ctxPath => /Dynamic web project name // 기본값
// ctxPath => /변경이름 // 변경한 경우
// ctxPath => // 아무것도 없이 설정하거나 / 로 설정
%>
이유
-> 컨텍스트 패스명이 동일하다면 괜찮지만 그렇지 않을 경우 원하는 주소값을 얻지 못할 수 있다.
-> 컨텍스트 패스명과 action 뒤 맨앞에 적힌 글씨가 동일하다면 같게 나오지만 그것이 아닐 경우
-> URI 주소 : 컨텍스트 패스명 / action 뒤에 작성된 주소 로 나타날 수 있다.
<form action="<%=ctxPath>/해당파일.do" method="전송방법">
method="get"
으로 되어진다public class 파일명 extends HttpServlet{
// 기본값 설정
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) {
// protected 와 같던지 접근제한자가 더 큰 것을 사용
// HttpServletRequest request 객체는 전송되어져온 데이터를 처리
// HttpServletResponse response 객체는
// 전송되어져온 데이터를 조작해서 결과물을 나타낼 때 사용
/* 파라미터에 작성된 것들 import 하기!! */
} // end of protected void doGet---------------
}
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) {
// === 한개의 값 읽어오기 === //
String 이름 = request.getParameter("name명");
// 웹의 기본타입은 String 이다.
// === 여러개 선택하여 값 읽어오기 === //
String 이름[] = request.getParameterValues("name명");
}
@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 // 반드시 대문자로 출력된다.
@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>
<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