본문 바로가기
👨‍💻 2. 웹개발_Back end/2-4 JSP & Servlet

[JSP & Servlet] 4장 서블릿과 JDBC (3) - 리프래시와 서블릿 초기화 매개변수

by 달님🌙 2021. 10. 14.
반응형

 

 1. 자동으로 목록화면으로 이동하는 3가지 방법 (위 코드 참조)

 

1. 회원 등록 구조 소개

 

2. 세 가지 방법 소개

 

//조회 결과를 바로 확인하는 3가지 방법
			
//방법 3. sendRedirect() : 밑의 결과 값 출력 안하고(1초 기다리지 않고) 바로 /member/list로 이동
response.sendRedirect("list");

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html><head><title>회원등록결과</title>");
//방법2. 헤더파일 안에 meta 추가하는 방법 
out.println("<meta http-equiv='Refresh' content='1; url=list'></head>");
out.println("<body><p>등록성공입니다!</p></body></html>");

//방법 1. 응답 헤더에 리프레쉬 정보를 추가 (1초 후에 url=list로 보내라는 뜻)
//response.addHeader("Refresh", "1;url=list");

* 이 코드를 추가하면 [회원등록] 페이지에서 추가 버튼을 누른 후 1초 후에 [회원목록] 페이지로 이동하게 된다.

 

 

1) Refresh 응답 헤더를 추가하기

 

2) Refresh를 구현하는 또 다른 방법

 

3) 리다이렉트 하는 방법 (결과 출력하지않고 바로 화면 이동)

 

 

 

2. 웹브라우저와 웹서버의 요청-응답 흐름

 

 

3. 서블릿 초기화 매개변수 

 

1. 서블릿 초기화 매개변수

 

 

2. 변경될 수 있는 값을 손쉽게 관리하기

 

- DD 파일 -> Deployment Descriptor 파일

- web.xml에 담아서 서블릿으로 전달할 수 있음

- 서버 정보나 아이디, 비밀번호 등과 같은 공통적인 코드들이 반복되면 지저분하므로 설정 파일로 따로 관리한다.

 

3. 설정 방법

 

4. 애노테이션으로 설정

 

1) @WebInitParam 애노테이션

 

2) 서블릿의 초기화 매개변수 값 꺼내기

 

3) 서블릿 초기화 실습 ( _08_JDBCServlet_Annotation )

MemberUpdateServlet

@WebServlet(
		urlPatterns = {"/member/update"},
		initParams = {
				@WebInitParam(name="driver", value="com.mysql.jdbc.Driver"),
				@WebInitParam(name="url", value="jdbc:mysql://localhost/studydb?serverTimezone=UTC"),
				@WebInitParam(name="username", value="study"),
				@WebInitParam(name="password", value="study")
		}
)

 

 

7. 컨텍스트 초기화 매개변수

 

1. 컨텍스트 초기화 매개변수

 

 

2. 컨텍스트 실습 ( _09_JDBCServlet_ContxtInitParam )

 

MemberAddServlet

		//Before
		String url = "jdbc:mysql://localhost/studydb?serverTimezone=UTC";
		String id = "study";
		String pw = "study";
		
		try {
			DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
		//After
		ServletContext sc = this.getServletContext();
		String driver = sc.getInitParameter("driver");
		String url = sc.getInitParameter("url");
		String id = sc.getInitParameter("username");
		String pw = sc.getInitParameter("password");
		
		try {
			// DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
			Class.forName(driver);

 

<?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_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>_06_JDBCServlet</display-name>
  
  <!-- 컨텍스트 초기화 매개변수 -->
  <context-param>
  	<param-name>driver</param-name>
  	<param-value>com.mysql.jdbc.Driver</param-value>
  </context-param>
  <context-param>
  	<param-name>url</param-name>
  	<param-value>jdbc:mysql://localhost/studydb?serverTimezone=UTC</param-value>
  </context-param>
  <context-param>
  	<param-name>username</param-name>
  	<param-value>study</param-value>
  </context-param>
  <context-param>
  	<param-name>password</param-name>
  	<param-value>study</param-value>
  </context-param>
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

 

 

3. 서블릿 초기화 매개변수 VS 컨텍스트 초기화 매개변수

 

 

 

 

반응형

댓글