<이공계기술전문연수> 6. Servlet / JSP Servlet Filter

2019. 10. 8. 09:55· 이공계전문기술연수/Servlet | JSP

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
'이공계전문기술연수/Servlet | JSP' 카테고리의 다른 글
  • <이공계기술전문연수> 8. Servlet / JSP jspTag(JSTL)
  • <이공계기술전문연수> 7. Servlet / JSP jspTag(EL)
  • <이공계기술전문연수> 5. Servlet / JSP MVC1 실습
  • <이공계기술전문연수> 3. Servlet / JSP MVC1 , MVC2
임쟌
임쟌
임쟌
Jian's Blog
임쟌
전체
오늘
어제

공지사항

  • [자기소개]
  • 쟌's Blog (227)
    • Language (32)
      • Python (8)
      • Go (24)
      • Java (0)
    • Framework (10)
      • Django (9)
      • Gin (1)
      • Spring boot (0)
      • Fiber (0)
    • Database (10)
      • PostgreSQL (8)
      • MySQL (0)
      • Redis (2)
    • Server (51)
      • Linux (16)
      • Git (12)
      • Oracle Cloud Infrastructure (13)
      • Mac (4)
      • Docker (4)
      • RabbitMQ (0)
      • ETC (2)
    • Operating System (0)
      • OS (0)
    • Algorithm (22)
      • Go (22)
      • Python (0)
    • Exam Certification (4)
    • Daily Life (27)
      • Review (21)
      • Diary (6)
    • 이공계전문기술연수 (71)
      • Java (17)
      • Database (8)
      • HTML | CSS (13)
      • JavaScript | jQuery (6)
      • Servlet | JSP (16)
      • Spring Framework (11)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
임쟌
<이공계기술전문연수> 6. Servlet / JSP Servlet Filter
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.