Servlet Filter
-> 필터란 클라이언트와 서버 사이에서 request response 객체를 필터가 먼저 받아서 사전작업/사후작업 등
공통적으로 필요한 부분을 처리
package org.kh.common;
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;
/**
* Servlet Filter implementation class TestFilter
*/
@WebFilter("/TestFilter")
public class TestFilter implements Filter {
/**
* Default constructor.
*/
public TestFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
//request를 가로채서 로직을 처리하는 코드
System.out.println("Servlet 도착 전 필터 출력");
String id = request.getParameter("memberId");
System.out.println(id + "님이 로그인 시도");
chain.doFilter(request, response);
System.out.println("Servlet 작업 수행 후 필터 출력");
//response를 가로채서 로직을 처리하는 코드
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
package org.kh.member.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.kh.member.model.service.MemberService;
import org.kh.member.model.vo.Member;
/**
* Servlet implementation class LoginServlet
*/
@WebServlet(name = "Login", urlPatterns = { "/login" })
public class LoginServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public LoginServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("로그인 Servlet 시작");
//1. 인코딩
request.setCharacterEncoding("utf-8");
//2. 변수저장
String memberId = request.getParameter("memberId"); //name=id
String memberPw = request.getParameter("memberPw");
System.out.println(memberId);
System.out.println(memberPw);
//3. 비지니스로직처리
MemberService service = new MemberService();
Member m = service.login(memberId, memberPw);
//4. view처리
if(m!=null) {
HttpSession session = request.getSession();
session.setAttribute("member", m);
//scope : session, request
request.setAttribute("msg","로그인성공");
//jsp에게 전달해주는것!! 담아쓸수있음
}else {
request.setAttribute("msg","로그인실패");
}
request.setAttribute("loc", "/index.jsp");
// localhost 로 이동시킬거임 /만 써도됨!!
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/common/msg.jsp");
rd.forward(request,response);
System.out.println("로그인 Servlet 끝!");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package org.kh.common;
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;
/**
* Servlet Filter implementation class EncodeFilter
*/
@WebFilter("/EncodeFilter")
public class EncodeFilter implements Filter {
/**
* Default constructor.
*/
public EncodeFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
System.out.println("인코딩 완료");
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
'이공계전문기술연수 > Servlet | JSP' 카테고리의 다른 글
<이공계기술전문연수> 8. Servlet / JSP jspTag(JSTL) (0) | 2019.11.19 |
---|---|
<이공계기술전문연수> 7. Servlet / JSP jspTag(EL) (0) | 2019.11.19 |
<이공계기술전문연수> 5. Servlet / JSP MVC1 실습 (0) | 2019.10.07 |
<이공계기술전문연수> 3. Servlet / JSP MVC1 , MVC2 (0) | 2019.10.01 |
<이공계기술전문연수> 3. Servlet / JSP (0) | 2019.09.29 |