-
form과 textArea & 한글 깨짐 해결JAVA/웹 프로그래밍 - 서블릿 2020. 10. 30. 00:08
실행은 index.html에서 실행한다.
html파일은 WebContent 폴더에서 생성한다.
index.html
더보기<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Notice"> 제목 : <input type="text" name="title"><br> <p></p> 내용 : <textArea rows="4" cols="50" name="content"></textArea>><br> <p></p> <input type="submit" value="글입력"> </form> </body> </html>
Servet파일로 생성해야 한다.
Notice.java
더보기package com.iot.web; 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("/Notice") public class Notice extends HttpServlet { private static final long serialVersionUID = 1L; protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String title = request.getParameter("title"); // 리퀘스트의 정보를 받는다. String content = request.getParameter("content"); // 리퀘스트의 정보를 받는다. out.println(title +"<br>"); out.println(content); } }
Notice.java는 서버의 역할을 한다. get방식은 웹 브라우저dml 주소에 내가 쓴 글이 그대로 적혀나온다.
이는 post방식으로 처리할 수 있다.
현재의 방식은 메소드의 get 방식이다.그리고 각 태그의 name은 상당히 중요한 요소이다.
메소드를 post방식으로 하려면 아래와 같이 쓰면 된다.
기존의 <form action="Notice"> 대신에 <form method="post" action="Notice"> 로 적으면 된다.
index.html 내용
그리고 위의 index.html을 실행하고나서 한글을 입력하면 아래와 같이 글자가 깨져서 나온다.
Notice.java 로 이동해서 아래의 한 문장을 추가하기만 하면 된다.
request.setCharacterEncoding("UTF-8");
request의 의미는 클라이언트가 보내온 것으로 이를 "UTF-8"로 설정을 하면 된다.
웹 브라우저 창을 끄고 다시 켜도록 하자.
index.html을 실행하고 한글을 입력하면 깨지지 않고 출력됨을 볼 수 있다.
그리고 간혹, 다른 프로젝트에 있던, 파일을 복사해서 가지고 오면 한글이 깨져있는 것을 볼 수 있다.
아래와 같이 설정을 하도록 하자.
현재 프로젝트를 우클릭해서 Properties 를 선택한다.
Run/Debug Settings 에서 javafile을 선택하고 Edit를 선택한다.
Arguments탭으로 이동해서 Dfile.encoding=MS949을 vm_Arguments 항목에 입력한다.
Apply를 선택하고 OK를 선택한다.
'JAVA > 웹 프로그래밍 - 서블릿' 카테고리의 다른 글
form 과 나머지 input 태그 더 살펴보기 (0) 2020.10.30 form을 활용한 아이디와 비번 입력 받기(select,date,다중선택,checkbox) (0) 2020.10.30 form 형태로 전달하기 (0) 2020.10.30 구구단의 원하는 단을 입력해서 출력하기 (0) 2020.10.29 반복문을 이용하여 문자열 여러 번 출력 (0) 2020.10.29