Acorn academy 01/19

Bae Seong Jun·2024년 1월 19일

Acorn academy

목록 보기
39/70

미니 프로젝트 진행중 문제점

jsp, servlet 파일이 너무 많아서 머리속에서 잘 그려지지 않고 복잡함.
파일 위주로 머리 속에서 정리하지말고 페이지 단위로 정리하는걸로 합의보자.

  • Mapper에서 문제가 자주 생김
  • 자잘한 오타나 오류가 자주 생김

이메일 보내기

네이버 메일
smtp
환경설정 ->POP3/IMAP 설정 ->pop3/smtp 사용 으로 체크

jar 파일 필요 lib에 추가해야함

sendMail.jsp가 메일 보내는 것 직접작성x apache에서 가져옴

네이버포트465
gmail같은 경우는 포트가 바뀔거임

new SendMail(); -> 해당 클래스는 네이버 계정 비번으로 로그인까지 끝내주는 역할을 하는 클래스
해당 클래스의
PasswordAuthentication
에서 아이디, 2단계인증토큰 입력

gmail로 바꾸려면 sendMail.jsp에 호스트, 포트와 변수 뭐하나 추가로 더 바꾸면 됨


filter 사용하여 인코딩

필터는 서블릿으로 생성x
implements javax.servlet 상속받기
오버라이딩 후 doFilter에 필터링 할 것들 적어주고 체인연결

필터를 web.xml에 등록

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>ShopMiniMall10아이디찾기</display-name>
  <welcome-file-list>
    <welcome-file>main</welcome-file>
  </welcome-file-list>
  
  <!-- EncodingFilter 정의하기 -->
  <filter>
  	<filter-name>MyEncodingFilter</filter-name>
  	<filter-class>coms.filter.MyEncodingFilter</filter-class>
  </filter>
  <!-- EncodingFilter 맵핑하기(어떤 pattern의 요청이 왔을 때 동작하게 할 것인지 -->
  <filter-mapping>
  	<filter-name>MyEncodingFilter</filter-name>
  	<url-pattern>/*</url-pattern><!-- context하위의 모든 요청에 대해 수행-->
  </filter-mapping>
</web-app>

Filter

package com.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;

// implements 필요
public class MyEncodingFilter implements Filter{

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
			throws IOException, ServletException {
		
		System.out.println("doFilter");
		request.setCharacterEncoding("UTF-8");
		chain.doFilter(request, response); //체인연결
		
		
	}
	
}

sendMail import 구문

자세한 기능 구현은 프로젝트 코드 참고

import javax.mail.MessagingException;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
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.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
profile
코딩 프로?

0개의 댓글