한글 깨짐 현상 해결하기
request.setCharacterEncoding("UTF-8");
ㄴ 해당 코드를 추가해서 한글 깨짐을 방지하기
=>
BoardAddServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Board;
import bitcamp.report.vo.Member;
@WebServlet("/board/add")
public class BoardAddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Member loginUser = (Member) request.getSession().getAttribute("loginUser");
if (loginUser == null) {
response.sendRedirect("/auth/form.html");
return;
}
request.setCharacterEncoding("UTF-8");
int category = Integer.parseInt(request.getParameter("category"));
Board board = new Board();
board.setTitle(request.getParameter("title"));
board.setContent(request.getParameter("content"));
board.setWriter(loginUser);
board.setCategory(category);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/board/list?category=%d'>\n", category);
out.println("<title>게시글</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>게시글 등록</h1>");
try {
InitServlet.boardDao.insert(board);
InitServlet.sqlSessionFactory.openSession(false).commit();
out.println("<p>등록 성공입니다!</p>");
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>등록 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
BoardUpdateServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Board;
import bitcamp.report.vo.Member;
@WebServlet("/board/update")
public class BoardUpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Member loginUser = (Member) request.getSession().getAttribute("loginUser");
if (loginUser == null) {
response.sendRedirect("/auth/form.html");
return;
}
request.setCharacterEncoding("UTF-8");
int category = Integer.parseInt(request.getParameter("category"));
Board board = new Board();
board.setNo(Integer.parseInt(request.getParameter("no")));
board.setTitle(request.getParameter("title"));
board.setContent(request.getParameter("content"));
board.setWriter(loginUser);
board.setCategory(category);
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/board/list?category=%d'>", category);
out.println("<title>게시글</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>게시글 변경</h1>");
try {
if (InitServlet.boardDao.update(board) == 0) {
out.println("<p>게시글이 없거나 변경 권한이 없습니다.</p>");
} else {
out.println("<p>변경했습니다!</p>");
}
InitServlet.sqlSessionFactory.openSession(false).commit();
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>게시글 변경 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
ItemAddServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Item;
@WebServlet("/item/add")
public class ItemAddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Item item = new Item();
item.setName(request.getParameter("name"));
item.setPrice(Integer.parseInt(request.getParameter("price")));
item.setType(request.getParameter("type"));
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/item/list'>");
out.println("<title>물품</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>물품 등록</h1>");
try {
InitServlet.itemDao.insert(item);
InitServlet.sqlSessionFactory.openSession(false).commit();
out.println("<p>등록 성공입니다!</p>");
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>등록 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
ItemUpdateServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Item;
@WebServlet("/item/update")
public class ItemUpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Item item = new Item();
item.setNo(Integer.parseInt(request.getParameter("no")));
item.setName(request.getParameter("name"));
item.setPrice(Integer.parseInt(request.getParameter("price")));
item.setType(request.getParameter("type"));
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/item/list'>");
out.println("<title>물품</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>물품 변경</h1>");
try {
if (InitServlet.itemDao.update(item) == 0) {
out.println("<p>물품이 없습니다.</p>");
} else {
InitServlet.sqlSessionFactory.openSession(false).commit();
out.println("<p>변경했습니다!</p>");
}
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>변경 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
MemberAddServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Member;
@WebServlet("/member/add")
public class MemberAddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Member m = new Member();
m.setName(request.getParameter("name"));
m.setPhone(request.getParameter("phone"));
m.setPassword(request.getParameter("password"));
m.setPosition(request.getParameter("position").charAt(0));
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/member/list'>");
out.println("<title>직원</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>직원 등록</h1>");
try {
InitServlet.memberDao.insert(m);
InitServlet.sqlSessionFactory.openSession(false).commit();
out.println("<p>등록 성공입니다!</p>");
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>등록 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
MemberUpdateServlet.java
package bitcamp.report.handler;
import java.io.IOException;
import java.io.PrintWriter;
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 bitcamp.report.vo.Member;
@WebServlet("/member/update")
public class MemberUpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
Member member = new Member();
member.setNo(Integer.parseInt(request.getParameter("no")));
member.setName(request.getParameter("name"));
member.setPhone(request.getParameter("phone"));
member.setPassword(request.getParameter("password"));
member.setPosition(request.getParameter("position").charAt(0));
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<meta charset='UTF-8'>");
out.printf("<meta http-equiv='refresh' content='1;url=/member/list'>");
out.println("<title>직원</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>직원 변경</h1>");
try {
if (InitServlet.memberDao.update(member) == 0) {
out.println("<p>회원이 없습니다.</p>");
} else {
InitServlet.sqlSessionFactory.openSession(false).commit();
out.println("<p>변경했습니다!</p>");
}
} catch (Exception e) {
InitServlet.sqlSessionFactory.openSession(false).rollback();
out.println("<p>변경 실패입니다!</p>");
e.printStackTrace();
}
out.println("</body>");
out.println("</html>");
}
}
Filter 를 이용하는 방법
ㄴ bitcamp.report.filter 패키지 생성
ㄴ CharacterEncodingFilter 라는 이름의 클래스 생성
CharacterEncoding.java
ㄴ javax.servlet.Filter 를 구현하도록 함
=>
CharacterEncodingFilter.java
=>
CharacterEncodingFilter.java
ㄴ 서블릿 필터를 모든 URL 패턴에 매핑시키도록 함
=> 웹 애플리케이션 내에서 모든 요청에 이 서블릿 필터가 적용됨
CharacterEncodingFilter.java
ㄴ CharacterEncodingFilter.doFilter() 가 언제 호출되는지 확인하기위한 출력코드 작성
=>
ㄴ favicon 만 호출되어도 CharacterEncoding.doFilter() 가 호출됨을 확인할 수 있음
'네이버클라우드 > JAVA 웹 프로그래밍' 카테고리의 다른 글
JAVA 58일차 (2023-08-11) 자바 프로그래밍_DB모델링 연습_물리모델_개인프로젝트 - 마트 관리 시스템 (0) | 2023.08.11 |
---|---|
JAVA 57일차 (2023-08-10) 자바 프로그래밍_DB모델링 연습_논리모델_개인프로젝트 - 마트 관리 시스템 (0) | 2023.08.10 |
JAVA 55일차 (2023-08-08) 자바 프로그래밍__Servlet API 사용법_2 (0) | 2023.08.09 |
JAVA 55일차 (2023-08-08) 자바 프로그래밍_56. 웹 애플리케이션 자바 표준 기술 JavaEE 도입_개인프로젝트 - 마트 관리 시스템 (0) | 2023.08.09 |
JAVA 54일차 (2023-08-07) 자바 프로그래밍_Servlet API 사용법_1 (0) | 2023.08.07 |