일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- #프로그래머스 #코딩 #자바 #리스트자르기
- #프로그래머스 #코딩 #자바 #문자열이몇번등장하는지세기
- #프로그래머스 #코딩 #l로만들기
- #git #commit #message #깃커밋 #메시지 #gitmessage #누락 #reset #mixed #마지막커밋정정하기
- #프로그래머스 #코딩 #문자열뒤집기 #자바
- #프로그래머스 #코딩 #자바 #수열과구간쿼리2
- #프로그래머스 #코딩 #자바 #수열과구간쿼리1
- #프로그래머스 #코딩 #자바 #문자열여러번뒤집기
- #프로그래머스 #자바 #코딩 #특정문자열로끝나는가장긴부분문자열찾기
- #프로그래머스 #코딩 #자바 #왼쪽오른쪽
- #프로그래머스 #코딩 #배열만들기3
- #JSP #Servlet #Ajax #에이젝스 #HTML #success #.HTML() #HTML로붙이기
- #프로그래머스 #코딩 #자바 #빈배열에추가삭제하기
- #프로그래머스 #코딩 #배열원소 삭제하기
- #프로그래머스
- #JSP #Servlet #제이에스피 #서블릿 #필터 #Filter @WebFilter #어노테이션필터
- #프로그래머스 #코딩 #배열의길이에따라다른연산하기
- #프로그래머스 #코딩 #자바 #문자열묶기
- #프로그래머스 #자바 #코딩 #배열만들기2
- #프로그래머스 #코딩 #자바 #수열과구간쿼리3
- #프로그래머스 #코딩 #문자열잘라서정렬하기
- #프로그래머스 #코딩 #x사이의개수
- #JSP #Servlet #제이에스피 #서블릿 #필터 #filter #web.xml #필터예제 #filter예제
- #프로그래머스 #자바 #코딩 #무작위로k개의수뽑기
- #프로그래머스 #자바 #코딩 #전국대회선발
- #프로그래머스 #코딩 #배열비교하기
- #프로그래머스 #코딩 #자바 #2의영역
- 코딩 #자바 #조건에맞게수열변환하기2
- #프로그래머스 #코딩 #순서바꾸기
- #프로그래머스 #코딩 #글자지우기 #자바
- Today
- Total
David의 블로그
[JSP/Servlet]전처리 역할을 하는 Filter.필터 두번째 본문
필터 두번째로는 어노테이션 방식을 알아보겠다.
앞서 포스팅 한 예제는 web.xml 적용이었다. https://78alswo.tistory.com/20
[JSP/Servlet]전처리 역할을 하는 Filter.필터 첫번째
[Filter] 핉터는 클라이언트의 요청을 가장 먼저 받아 사전 처리하는 역할을 한다. 쉽게 말해 클라이언트가 요청을 보내면 JSP나 서블릿이 받기 전에 필터를 거친다. 웹 서버가 응답할 때도 마찬가
78alswo.tistory.com
바로 어노테이션 적용방법을 알아보자.
[AnnoFilter.java]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
package filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
@WebFilter(filterName = "AnnoFilter", urlPatterns = "/15FilterListener/AnnoFilter.jsp")
public class AnnoFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
String searchField = request.getParameter("searchField");
String searchWord = request.getParameter("searchWord");
System.out.println("검색 필드 : " + searchField);
System.out.println("검색어 : " + searchWord);
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
|
cs |
14Line : 필터를 구현하기 위해 Filter인터페이스를 구현한다.
13Line : @WebFilter어노테이션을 적용한다. filterName은 필터로 적용할 클래스의 이름이다. urlPatterns은 필터로 매핑할 URL이다. 또 여러개의 urlPatterns를 적용하고 싶을 때는 배열형태{}로 {"요청명", "요청명"} 명시해주면 되겠다.
17, 36Line : 필터의 default메소드로 수정이 필요하면 오버라이딩을 해 작성해주면 되겠다. 그럴필요가 없다면 없어도 무방하다.
23Line : doFilter()로 반드시 오버라이딩을 해야하는 메소드이다.
32Line : chain.doFilter()는 브라우저에서 보낸 요청을 서버로 보내는 역할을 하거나 다음 필터로 보낼 때 필요한 메소드이다. 또 서버에서 브라우저로 응답을 보낼 때도 필요하므로 반드시 없으면 안되는 메소드이다.
26 ~ 27Line: JSP에서 <form>에 정의한 input name값을 가져온다.
[AnnoFilter.jsp]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form>
<select name="searchField">
<option value="title">제목</option>
<option value="content">내용</option>
</select>
<input type="text" name="searchWord" value="애너테이션" />
<input type="submit" value="검색하기">
</form>
</body>
</html>
|
cs |
searchWord에는 하드코딩으로 '애너테이션'값을 지정했다.
searchField로는 select값으로 title이나 content값이 전송될 것이다.
[결과]
처음 실행될 때는 값이 없으므로 null로 들어온다.
후에 검색필드랑 검색어를 다르게 선택하거나 작성해보고 전송하기를 해보면 위 이미지와 같다.
'프로그래밍 > Jsp_Servlet' 카테고리의 다른 글
[JSP/Servlet]전처리 역할을 하는 Filter.필터 첫번째 (0) | 2024.01.28 |
---|---|
[JSP/Servlet] 서블릿과 Ajax로 통신 후에 결과를 HTML로 뿌려주기. (1) | 2024.01.21 |
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(세번째) (0) | 2024.01.20 |
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(두번째) (0) | 2024.01.20 |
[JSP/Servlet]상태를 유지할 수 있는 Session, 세션(첫번째) (0) | 2024.01.20 |