Servlet 같은 부분은 아무래도 처음 배웠을 때 보단 대충 더 알 것 같지만 복잡한 JSP..
<servlet>
<servlet-name>servletEx</servlet-name>
<servlet-class>com.servlet.ServletEx</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletEx</servlet-name>
<url-pattern>/SE</url-pattern>
</servlet-mapping>
@PostContruct
Servlet을 준비해주는 단계init()
생성 단계service
servlet이 일하는 단계, 구현하는 단계destory()
일을 다 하고 소멸되는 단계@PreDestory
Servlet을 종료시켜주는 단계page: 페이지 기본 설정
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
include: include file 설정 : include 하고 싶은 위치에 해당 지시어 추가 해주면 마치 하나의 페이지 처럼 화면에 보이게 함
taglib: 외부라이브러리 태그 설정
import 하는 경우
getServletConfg().getInitParameter(param-name);
을 하면 param-value 값을 가지고 올 수 있음 <!-- 해당 파일(userWebxml.js)에 해당하는 곳에서만 사용 할 수있는 param -->
<servlet>
<servlet-name>servletEx</servlet-name>
<jsp-file>/useWebxml.jsp</jsp-file>
<init-param>
<param-name>adminId</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>adminPw</param-name>
<param-value>1234</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>servletEx</servlet-name>
<url-pattern>/useWebxml.jsp</url-pattern>
</servlet-mapping>
<context-param>
<param-name>imgDir</param-name>
<param-value>/upload/img</param-value>
</context-param>
<context-param>
<param-name>testServerIp</param-name>
<param-value>127.0.0.1</param-value>
</context-param>
<context-param>
<param-name>realServerIp</param-name>
<param-value>172.0.0.1</param-value>
</context-param>
<%@ page isErrorPage="true" %>
exception.getMessage()
메소드를 이용해서 exception message를 알아본다.http
의 특징으로 한번 클라이언트가 request를 하고 서버가 response를 하고 나면 해당 연결을 해제 시켜 버림 > 왜냐면 하나의 서버에 수 천개의 많은 클라이언트가 붙는 경우 서버의 부하가 예상되기 때문에 효율적으로 운영하기 위해서 리소스를 낭비하지 않기 위해 연결을 해제시킴.cookie가 null인지 판단한다
1-1. true인 경우 재활용
1-2. false인 경우 cookie 생성
filter
라는 것을 둬서 중간 다리 역할을 수행함.@WebFilter(urlPatterns = { "/*" }, initParams = {
@WebInitParam(name = "encoding", value = "utf-8", description = "encoding"),
@WebInitParam(name = "forceEncoding", value = "true", description = "forceEncoding") })
public void init(FilterConfig fConfig) throws ServletException {
encoding = fConfig.getInitParameter("encoding") == null ? "" : fConfig.getInitParameter("encoding");
forceEncoding = fConfig.getInitParameter("forceEncoding") == null ? "false"
: fConfig.getInitParameter("forceEncoding");
}
ojdbc6.jar
파일을 WEB-INF - lib 파일 하위에 붙여 넣어 줘야 했다.Class.forName(driver);
DriverManager.getConnection(url, id, pw);
stat = con.createStatement();
String sql = "SELECT * FROM book;"
res = stmt.executeQuery(sql)
driver를 찾지 못했음 - 위에 작성한 방법으로 해결
url이 올바르지 않다는 에러 메세지 - 오타 확인
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
1) SID를 잘못 입력했나 해서 접속 테스트 화면에서 확인해 봤지만 xe가 맞았다.
2) CMD 창에서 lsnrctl status
을 입력 해보라해서 (이유도 모르고..) 입력을 해봤지만 status가 ready로 정상이었다.
lsnrctl
명령어로 리스너를 확인 할 수 있음.3) https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hyoun1202&logNo=220107048463 해당 블로그 글을 확인해보고 혹시나 싶어서 :xe 부분을 /xe로 변경해보았다. 결과는 성공.
문법 관련 오류 - 에러를 잘 보면 알아서 확인 할 수 있다. 대부분 휴먼 에러..
<Resource
auth="Container"
driverClassname="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@localhost:1521/xe"
username="scott"
password="tiger"
name="jdbc/orace11g"
type="javax.sql.DataSource"
maxActive="4"
maxWait="10000" />
name
값을 가지고 접근한다.추가적으로 확인 할 부분