Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- github
- JVM
- 빈
- 리액트
- 영속성 컨텍스트
- 스프링 컨테이너
- list
- Spring legacy Project
- @Bean
- pom.xml
- 자동주입
- 트랜잭션
- 자바
- 인터페이스
- springboot
- 객체
- @transactional
- 이클립스
- merge
- react
- 상속
- spring
- Spring 개발환경 설정
- 어노테이션
- mysql
- 의존성주입
- 스프링
- 깃허브
- DI
- java
Archives
- Today
- Total
DEVLOG
한글깨짐 현상 대처 본문
우선 GET 방식과 POST 방식에 대해 알아보자.
GET과 POST는 Http 프로토콜이 제공하는 7가지 메소드에 속한다.
두 가지 방식의 가장 큰 차이는 GET방식은 URL에 값을 전달하고, POST방식은 그렇지 않다는 점이다.
그렇기 때문에 보안상 값을 숨겨야 할 경우(대표적으로 로그인이 있다.) POST방식으로 값을 넘긴다.
아래는 값이 전달되고 있는 GET URL이다.
만약 넘길 값이 두 개 이상이라면 ?name=aaa&age=20&city=Seoul 형태로 넘겨진다.
1. GET 방식으로 보낼때 한글깨짐
- 프로젝트 내부 Servers - server.xml의 약 63라인에 URIEncoding="EUC-KR" 추가
2. POST 방식으로 보낼때 한글깨짐
- 모든 jsp와 servlet 파일에서 request.getParameter 호출 전 characterEncoding 지정
(sevlet) response.setContentType("text/html; charset=EUC-KR");
(jsp) <%@page contentType="text/html; charset=EUC-KR"%>
<%request.setCharacterEncoding("EUC-KR");%>
(Ex. C:\Jsp\myapp\src\main\webapp\WEB-INF 아래) web.xml 추가
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_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC-KR</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
post방식의 서블릿 예제와 jsp 예제
// PostServlet.java
package ch09;
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;
@WebServlet("/ch09/postServlet")
public class PostServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=EUC-KR");
PrintWriter out = response.getWriter();
String id = request.getParameter("id");
String pwd = request.getParameter("pwd");
String email = request.getParameter("email");
out.println("<h3>Post Servlet</h3>");
out.println("id: " + id + "<br>");
out.println("pwd: " + pwd + "<br>");
out.println("email: " + email + "<br>");
}
}
<!-- postJsp.jsp -->
<%@page contentType="text/html; charset=EUC-KR"%>
<h3>Post방식 Servlet 호출</h3>
<!-- 서블릿파일은 확장자 안 붙는다. -->
<form method="post" action="postServlet">
id : <input name="id" value="홍길동"><br>
pwd : <input type="password" name="pwd" value="1234"><br>
email : <input type="email" name="email" value="aaa@aaa.com"><br>
<input type="submit" value="가입">
</form>
'Java > JSP' 카테고리의 다른 글
체크박스 복수선택 전달 예제 (0) | 2022.04.17 |
---|---|
DB 연동하여 간단한 회원가입 페이지 만들기 (0) | 2022.04.16 |
scope 속성 중 session (0) | 2022.04.13 |
JSP bean 생성 (0) | 2022.04.12 |
work 폴더 생성 (0) | 2022.04.07 |
Comments