반응형
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 컨텍스트 초기화 매개변수
반응형
'👨💻 2. 웹개발_Back end > 2-4 JSP & Servlet' 카테고리의 다른 글
[JSP & Servlet] 5장 MVC 아키텍처 (1) - MVC 이해하기 (0) | 2021.10.14 |
---|---|
[JSP & Servlet] 4장 서블릿과 JDBC (4) - 필터 사용하기 (0) | 2021.10.14 |
[JSP & Servlet] 4장 서블릿과 JDBC (2) - HttpServlet으로 GET 요청 다루기 (0) | 2021.10.14 |
[JSP & Servlet] 4장 서블릿과 JDBC(1) - JDBC와 ODBC 구조 (0) | 2021.10.13 |
[JSP & Servlet] 3장 서블릿 프로그래밍 (0) | 2021.10.12 |
댓글