본문 바로가기

JSP, Servlet/JSP, Servlet 기초

[JSP/Servlet] 입력정보 유효성 확인하기

앞서서 입력정보를 입력해서 servlet을 통해 데이터를 전송하는 것을 하였다.

그러면 입력한 정보가 우리가 원하는 유형의 정보인지 확인해보자

 

<JSP 파일>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="param.js"></script>
</head>
<body>
	<form method="post" action="ParamServlet" name="theform">
		아이디 :
		<input type="text" value="name" name="id">
		<br> 나 &nbsp; 이 :
		<input type="text" value="age" name="age">
		<br>
		<input type="submit" value="submit" onclick="return check();">
	</form>

</body>
</html>

 

/**
 * 
 */

function check(){
	if (document.theform.id.value == ""){
		alert("아이디를 입력해 주세요.");
		document.theform.id.focus();
		return false;
	} else if (document.theform.age.value == ""){
		alert("나이를 입력해 주세요.");
		document.theform.age.focus();
		return false;
	}else if(isNaN(document.theform.age.value)){ // NaN(Not a Number)
		alert("숫자를 입력해 주세요.");
		document.theform.age.focus();
		return false;
	} else {
		return true;
	}
}

자바스크립트 부분에서

데이터유효성 검사를 해준다.

 

package unit04;

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;

/**
 * Servlet implementation class ParamServlet
 */
@WebServlet("/ParamServlet")
public class ParamServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public ParamServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String id = request.getParameter("id");
		int age = Integer.parseInt(request.getParameter("age"));
		System.out.println("요청한 입력 데이터 : id = " + id);
		System.out.println("요청한 입력 데이터 : age = " + age);
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<html><head><meta charset=\"utf-8\" /></head><body>");
		out.println("당신이 입력한 정보입니다.");
		out.println("<br>아이디 : " + id);
		out.println("<br>나이 : " + age);
		out.print("<br><a href='javascirpt.history.go(-1)'>다시</a>");
		out.println("</body></html>");
		out.close();
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		System.out.println("POST 방식으로 처리");
		request.setCharacterEncoding("UTF-8");
		String id = request.getParameter("id");
		int age = Integer.parseInt(request.getParameter("age"));
		System.out.println("요청한 입력 데이터 : id = " + id);
		System.out.println("요청한 입력 데이터 : age = " + age);
		response.setCharacterEncoding("UTF-8");
		// response.setContentType("text/html;charset=UTF=8");
		PrintWriter out = response.getWriter();
		out.println("<html><head><meta charset=\"utf-8\" /></head><body>");
		out.println("당신이 입력한 정보입니다.");
		out.println("<br>아이디 : " + id);
		out.println("<br>나이 : " + age);
		out.print("<br><a href='javascirpt.history.go(-1)'>다시</a>");
		out.println("</body></html>");
		out.close();
	}

}

 

여기서 post방식으로 전달했을 때 문자가 이상하게 나오는 것을 방지하기 위해

request.setCharacterEncoding("UTF-8"); // 입력데이터 한글 전송

response.setCharacterEncoding("UTF-8"); // 출력데이터 한글 전송

를 필수로 추가해야한다.

 

(최종 확인은 POST방식으로 전송해서 진행하였다.)

 

728x90
반응형