Java Server Page
HTML 코드와 Java 코드를 함께 사용하여 동적인 페이지를 만든다.
웹 어플리케이션 이름
구조를 갖추지 않고 톰캣 서버(톰캣 컨테이너)에서 웹 애플리케이션을 실행하면 오류가 발생한다.
다행히, Eclipse에서 기본적인 디렉터리 구조를 설정해주기 때문에 필요에 따라 추가만 해주면 된다.
지금까지 해왔던 방법
매우 간편하다
Tomcat root 디렉터리의 webapps/ 에, 웹 애플리케이션을 넣은 다음 Tomcat restart
→ Tomcat이 자동으로 웹 애플리케이션 인식 후 실행
Tomcat Root 디렉터리의 conf/ 에서 찾을 수 있다
여기에 컨텍스트를 등록해주면 된다
태그를 사용한다
Eclipse ProjectExplorer의 Servers/ 에서도 확인 가능하다.
http://127.0.0.1:8080/컨텍스트 이름/리소스 경로
웹 애플리케이션은 Eclipse로 따지면 프로젝트다.
프로젝트의 이름이 웹 어플이다.
컨텍스트는 웹 어플의 이름이다. 이게 무슨 소리냐?
컨텍스트는 특정 웹 어플리케이션의 심볼 정도로 해석할 수 있다.
물론, 웹 어플이름과 컨텍스트는 다르게 지정할 수 있으나 똑같이 만드는 것이 일반적이다.
보안상의 이유 또는 웹 어플의 이름이 현저하게 길 때는 다르게 만들 수도 있다고 한다.
<form>
내부의 데이터를 'name'
속성을 통해 식별하는 코드를 통해 기본적인 부분을 알아본다.
/* login.html */
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<form method="post" action="../process/data_process.jsp">
<label for="id">ID</label>
<input type="text" name="id">
<label for="id">PW</label>
<input type="password" name="pw">
<input type="submit" value="login">
</form>
</body>
</html>
<input>
태그의 값들에 각각의 name속성이 붙고(식별자 역할), key:value 형식으로 전송된다.(Requset)
action
속성은 데이터가 도착할 페이지를 명시한다.
/* process.jsp */
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String id = request.getParameter("id");
String pw = request.getParameter("pw");
if(id.equals("user01") && pw.equals("2345")){
response.sendRedirect("success.jsp");
}else{
response.sendRedirect("fail.jsp");
}
%>
</body>
</html>
<% %>
이 영역 안에서 Java 코드가 작동한다.
PHP와 동일한 형태다.
request
객체는 HTML 요청과 관련된 여러 메소드를 제공한다.
requst.getParameter("태그이름")
requst.getParameter("태그이름")
를 통해 가져온 데이터와 원하는 데이터를 비교하는 if
문을 볼 수 있다.response
객체는 HTML 응답과 관련된 여러 메소드를 제공한다.
response.sendRedirect("경로")
는 해당 경로로 요청을 발생시킨다.<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Login... Ok</h1>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Login Failed</h1>
</body>
</html>