728x90
filter 태그와
filter-mapping 태그를 정의한다
filter 태그 안에있는 filter-name과
filter-mapping 태그안에 filter-name이 같아야 함
init-param 태그는 파라미터를 미리 정의 해 둘 수있다.
거기에 param1과 param2의 value값을 각각 admin 과 1234로 넣어줫다.
뒤에서 id와 passwd로 사용할 예정
<!-- Filter이넡페이스의 구현 클래스
init-param : InitParamFilter 클래스의 init()메소드로 파라미터를 전달
-->
<filter>
<filter-name>Filter02</filter-name>
<filter-class>filter.InitParamFilter</filter-class>
<init-param>
<param-name>param1</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>param2</param-name>
<param-value>1234</param-value>
</init-param>
</filter>
<!-- Filter02로 연결된 필터를 사용할 URL -->
<filter-mapping>
<filter-name>Filter02</filter-name>
<url-pattern>/ch12/filter02_process.jsp</url-pattern>
</filter-mapping>
filter-class안에 정의해둔 filter패키지 안에 InitParamFilter를 생성한다.
Filter 검색해서 톰캣 서버에 있는 filter선택 후 InitParamFilter (위에서 설정해둔 이름)으로 클래스 생성
클래스 작성
package filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class InitParamFilter implements Filter {
private FilterConfig filterConfig = null;
/*
<init-param>
<param-name>param1</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>param2</param-name>
<param-value>1234</param-value>
</init-param>
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("Filter02 초기화...");
this.filterConfig = filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("Filter02 수행...");
//사용자가 입력한 요청파라미터
//filter02_process.jsp?id=admin&passwd=1234
String id = request.getParameter("id");
String passwd = request.getParameter("passwd");
//web.xml에서 넘어온 파라미터
String param1 = this.filterConfig.getInitParameter("param1");//admin
String param2 = this.filterConfig.getInitParameter("param2"); //1234
String message;
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter writer = response.getWriter();
if(id.equals(param1) && passwd.equals(param2)) {
message = "로그인 성공";
}else {
message = "로그인 실패";
}
writer.println(message);
//다음 필터로 제어를 넘김
chain.doFilter(request, response);
}
@Override
public void destroy() {
System.out.println("Filter02 종료...");
}
}
서버를 재가동하게 되면 init메소드에 처음부터 파라메터값이 세팅이 된다.
그 후 doFolter() 메소드에서
request객체에서 id값과 passwd값을 받아서
사용자로 입력받은 값이랑 비교
메소드 정의 해줌
filter02관련
.jsp파일 생성
jsp파일 작성
출력화면
로그인 성공시
로그인 실패시
'JSP > JSP기초' 카테고리의 다른 글
JSP(Ch12) 필터 사용 로그기록 파일,콘솔 동시 출력 (0) | 2023.07.13 |
---|---|
JSP(Ch12) 필터 사용 로그기록 파일에 저장해보기 (0) | 2023.07.13 |
JSP(Ch12) 필터 사용하는 방법 첫 번째 예제 (0) | 2023.07.12 |
JSP try-catch-finally를 이용한 예외처리 (0) | 2023.07.11 |
JSP web.xml 을 이용한 예외 처리방법 (0) | 2023.07.11 |