ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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를 선택한다.

     

    댓글

Designed by Tistory.