앞서서 입력정보를 입력해서 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> 나 이 :
<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
반응형
'JSP, Servlet > JSP, Servlet 기초' 카테고리의 다른 글
[JSP/Servlet] 라디오버튼 실습 (0) | 2020.08.10 |
---|---|
[JSP/Servlet] textarea와 라디오버튼 (0) | 2020.08.10 |
[JSP/Servlet] get방식과 post방식 (0) | 2020.08.10 |
[JSP/Servlet] 라이프 사이클 (0) | 2020.08.10 |
[JSP/Servlet] 서블릿 프로그램 작성하기 (0) | 2020.08.10 |