*JAVA/JSP 35번 글의 시점부터는 노트북이 고장나는 바람에.. 다른 분의 글과 이전에 올렸던 글들을 참고하여, 다른 데스크탑의 윈도우 환경에 환경설정을 다시 진행한 후 작성하였습니다. 환경설정 관련 글들은 아래를 참고해 주세요.
- JDK11 설치 및 환경 변수(JAVA_HOME) 설정 - CLASSPATH는 추가하지 않음
자바(JAVA) 11 설치 및 환경설정 | 자바 11 환경 변수
자바로 코딩 공부를 하려면 개발 할 수 있는 환경을 만들어 주어야 한다. 그 순서를 먼저 작성하자면JAVA SE JDK 설치 -> JAVA 환경 변수 설정 -> IDE 설치 이렇게 볼 수 있겠다. 이 포스팅은 자바로 개
velog.io
- 톰캣 설치, 이클립스 설치 - 이 글을 쓰는 시점에서는 Tomcat 8버전이 없어, Tomcat 9버전 설치
JSP) JDK, 이클립스(eclipse), 톰캣 설치 및 환경 설정
1. JDK 설치 → Path 설정 2.eclipse JAVA EE버전 다운로드 3.웹컨테이너 톰캣 설치 →톰캣 환경설정 1. JDK 설치 - JAVA) 1. JDK 참고하여 설치하고 설정한다. -https://storyblogger.tistory.com/15?category=984696 2. 구글에
storyblogger.tistory.com
- 이클립스 JDK 버전 설정 - JDK11로 설정
[이클립스] JDK 버전 바꾸는 법
스프링을 사용하는 에러가 난다? 그러면 JRE 버전을 확인해보자! 프로젝트의 JRE System Library의 오른쪽을 살펴보면 [JavaSE-17]이라고 되어있다. 스프링이나 하이버네이트를 사용할 때, 자바 8이나 자
myvelop.tistory.com
- JDK 설치 및 환경 변수(JAVA_HOME) 설정, 톰캣 설치, 이클립스 설치 및 JDK 버전 설정 이후~ ⇒ 톰캣 버전과 jsp 파일 경로는 글 내용과 다르게 아래 이미지와 같음
JAVA/JSP 1. 개발 환경 구축 - 이클립스 기본 설정
*JDK 설치 및 환경 변수(JAVA_HOME) 설정, 톰캣 설치, 이클립스 설치를 완료한 상태OpenJDK 11: 자바 프로그램을 컴파일하고 실행해주는 기본 도구*이클립스 JDK-17이 설치되어있어서, https://coding-house.tisto
keep-programming-study.tistory.com
JAVA/JSP 1. 개발 환경 구축 - JSP 예제 테스트
1. 프로젝트 생성1) [File] → [New] → [Dynamic Web Project] 선택 2) 프로젝트 설정 화면 → Project name: HelloJSP, Target runtime: Apache Tomcat v9.0, Dynamic web module version: 4.0으로 설정 후 Next 클릭 3) 자바 소스 파일
keep-programming-study.tistory.com
JAVA/JSP 1. 개발 환경 구축 - 마지막 추가 설정
1. 외부 웹 브라우저로 실행하기-크롬이클립스는 웹 애플리케이션 실행 시, 자체 브라우저를 통해 실행 결과 출력웹 애플리케이션 배포 시 사용자는 크롬/파이어폭스 같은 전용 웹 브라우저로
keep-programming-study.tistory.com
- 오라클(Oracle Database 11gR2 Express Edition) 설치 및 설정
JAVA/JSP 14. 데이터베이스 - 특징, 오라클 설치(Oracle Database 11gR2 Express Edition), 사용자 계정 생성 및
1. 데이터베이스의 특징우리가 매일 PC나 스마트폰을 통해 접하는 거의 모든 웹 애플리케이션에서 사용함매일 업데이트되는 뉴스나 날씨 등의 정보는 데이터베이스가 없다면 클라이언트에 전달
keep-programming-study.tistory.com
JAVA/JSP 15. 데이터베이스 - 테이블 및 시퀀스 생성, JDBC 설정 및 데이터베이스 연결
*회원제 게시판 만들기-회원 인증 필요4. 테이블 및 시퀀스 생성1) 테이블 생성(1) member 테이블 - 아이디, 패스워드, 이름, 가입 날짜테이블 정의컬럼명데이터 타입 null 허용 키 기본값 설명idvarchar2
keep-programming-study.tistory.com
JAVA/JSP 16. 데이터베이스 - 커넥션 풀로 성능 개선, 간단한 쿼리 작성 및 실행
6. 커넥션 풀로 성능 개선웹은 클라이언트의 요청에 서버가 응답하는 구조→ Connection 객체 생성 때마다 네트워크 통신이 이뤄지며, 시간이 걸리는 작업들이 수반됨 == 시스템 성능에 큰 영향을
keep-programming-study.tistory.com
- 시퀀스 설정
JAVA/JSP 15. 데이터베이스 - 테이블 및 시퀀스 생성, JDBC 설정 및 데이터베이스 연결
*회원제 게시판 만들기-회원 인증 필요4. 테이블 및 시퀀스 생성1) 테이블 생성(1) member 테이블 - 아이디, 패스워드, 이름, 가입 날짜테이블 정의컬럼명데이터 타입 null 허용 키 기본값 설명idvarchar2
keep-programming-study.tistory.com
서블릿 작성 개요
서블릿 작성은 클라이언트의 요청을 전달할 '요청명'을 결정하는 일부터 시작
JSP에서는 클라이언트의 요청을 JSP가 직접 받아 처리하는 반면,
서블릿은 요청명을 기준으로 이를 처리할 서블릿 선택
-> 매핑(Mapping): web.xml에 기술하는 방법 or @WebServlet 어노테이션을 써서 코드에 직접 명시하는 방법
1. web.xml에 기술하여 매핑하는 방법
- 형식
<servlet> <!-- 서블릿 등록 -->
<servlet-name>서블릿명</servlet-name>
<servlet-class>패키지를 포함한 서블릿 클래스명</servlet-class>
</servlet>
<servlet-mapping> <!-- 서블릿과 요청명(요청 URL) 매핑 -->
<servlet-name>서블릿명</servlet-name>
<url-pattern>클라이언트 요청 URL</url-pattern>
</servlet-mapping>
예제
// src/main/webapp/HelloServlet.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HelloServlet.jsp</title>
</head>
<body>
<h2>web.xml에서 매핑 후 JSP에서 출력하기</h2>
<p>
<!-- 1. request 영역에 저장한 message 속성 출력(서블릿에서 저장함)-->
<strong><%= request.getAttribute("message") %></strong>
<br />
<!-- 2. 바로가기 URL: 서블릿 요청명으로 지정 -->
<a href="./HelloServlet.do">바로가기</a>
</p>
</body>
</html>
- web.xml에 매핑 정보 추가
// src/main/webapp/WEB-INF/web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>HelloJSP</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.jsp</welcome-file>
<welcome-file>default.htm</welcome-file>
</welcome-file-list>
<servlet> <!-- 서블릿 등록 -->
<servlet-name>HelloServlet</servlet-name> <!-- 1. 서블릿 매핑을 위한 서블릿명 -->
<servlet-class>servlet.HelloServlet</servlet-class> <!-- 2. 요청을 처리할 서블릿을 패키지를 포함하여 명시 -->
</servlet>
<servlet-mapping> <!-- 서블릿과 요청명 매핑 -->
<servlet-name>HelloServlet</servlet-name> <!-- 3. 1과 동일한 서블릿명 -->
<url-pattern>/HelloServlet.do</url-pattern> <!-- 4. 컨텍스트 루트를 제외한 요청명 작성 -->
</servlet-mapping>
</web-app>
- 실제 요청을 처리할 서블릿 클래스 작성
// Java Resources/src/servlet/HelloServlet.java
package servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 1, HelloServlet 클래스를 servlet 패키지에 생성한 후 HttpServlet 클래스 상속
public class HelloServlet extends HttpServlet {
// 2. doGet() 메서드를 오버라이딩
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException, ServletException{
// 3. request 영역에 message라는 속성으로 데이터 저장
req.setAttribute("message", "Hello Servlet");
// 4. HelloServlet.jsp로 포워드(req는 doGet() 메서드의 매개변수로 전달받은 request 내장 객체)
req.getRequestDispatcher("/HelloServlet.jsp").forward(req, resp);
}
}
HelloServlet.jsp 실행
- [바로가기] 클릭 시
2. @WebServlet 어노테이션으로 매핑하는 방법
예제
- 요청명을 통한 바로가기 링크가 있는 JSP를 먼저 작성
// src/main/webapp/AnnoMapping.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AnnoMapping.jsp</title>
</head>
<body>
<h2>어노테이션으로 매핑하기</h2>
<p>
<!-- 1. EL을 이용해 request 영역에 저장된 데이터 출력 -->
<strong>${ message }</strong>
<br />
<!-- 2. 컨텍스트 루트 경로(/HelloJSP)를 반환하고, 요청명을 합쳐 바로가기 링크 완성 -->
<a href="<%= request.getContextPath() %>/AnnoMapping.do">바로가기</a>
</p>
</body>
</html>
- 서블릿 클래스 작성
// Java Resources/src/servlet/AnnoMapping.java
package fileupload;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 1. 어노테이션으로 이 서블릿이 요청명 "AnnoMapping.do"를 처리할 것임을 선언
@WebServlet("/AnnoMapping.do")
// 2. 서블릿이므로 HttpServlet을 상속
public class AnnoMapping extends HttpServlet {
// 3. doGet() 메서드 오버라이딩
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
// 4. request 영역에 데이터 저장
req.setAttribute("message", "HelloServlet");
// 5. AnnoMapping.jsp로 포워드
req.getRequestDispatcher("/AnnoMapping.jsp").forward(req, resp);
}
}
AnnoMapping.jsp 실행
- [바로가기] 클릭 시
*web.xml 방식과 비교
- 비교적으로 편리함
- 요청명(url-pattern)이 변경되면 해당 서블릿 클래스를 수정하고 다시 컴파일
-> 요청명만으로 서블릿 클래스명을 바로 알 수 있도록 둘 사이에 명확한 이름 규칙을 정하는 것이 중요 - 서블릿 개수가 많아지면, 특정 요청명을 처리하는 클래스를 찾기 어려워짐(클래스를 일일이 열어 확인)
-> 요청을 검색할 방법이 없으므로, 요청명과 클래스명을 매핑해주는 일정한 패턴이 없다면 유지보수하기 더 어려울 수 있음
'자바(JAVA) > JSP 웹 프로그래밍 공부 (성낙현의 JSP 자바 웹 프로그래밍 참고)' 카테고리의 다른 글
JAVA/JSP 40. 서블릿(Servlet) 작성 - MVC 패턴을 적용한 회원인증 구현 (1) | 2025.05.01 |
---|---|
JAVA/JSP 39. 서블릿(Servlet) 작성 - JSP 없이 서블릿에서 바로 응답 출력하기, 한 번의 매핑으로 여러 가지 요청 처리하기, 서블릿 수명주기 메서드 (0) | 2025.04.30 |
JAVA/JSP 37. 서블릿(Servlet) - 서블릿 개요, 서블릿 컨테이너, 서블릿의 동작 방식, 서블릿 작성 규칙 (0) | 2025.04.28 |
JAVA/JSP 36. 파일 업로드 및 다운로드 - 파일 목록 보기, 파일 다운로드 (1) | 2025.04.25 |
JAVA/JSP 35. 파일 업로드 및 다운로드 - 라이브러리 추가하기, 파일 업로드 (0) | 2025.04.24 |