-
05) 서블릿 예제학교/JAVA 2023. 12. 16. 23:18
(loginServlet.java)
package com.hy; 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 LoginServlet */ // LoginServlet 클래스는 HTTPServlet을 상속하며 // @WebServlet 어노테이션을 사용해 웹서비스에서의 URL 매핑 지정 @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ // HTTP GET 요청을 처리하는 메서드 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 0. 클라이언트가 전송한 요청 데이터 인코딩 방식을 utf-8로 지정하기 request.setCharacterEncoding("utf-8"); // 클라이언트가 전송할 응답 데이터 인코딩 방식 utf-8로 지정 response.setCharacterEncoding("utf-8"); // 1. 클라이언트에 응답할 페이지 환경 설정 response.setContentType("text/html; charset=utf-8"); //response.getWriter().append("Served at: ").append(request.getContextPath()); response.getWriter().print(" Hello Servelt!"); response.getWriter().print("<br> 헬로우"); // 2. response 출력 객체를 간소화 하기 위해 PrintWriter 객체 생성 PrintWriter out = response.getWriter(); // 3. html 출력문 out.print("<h2>서블릿 구조를 이해하면, JSP도 쉽다</h2>"); out.print("<hr>"); // 사용자 입력 데이터 받고 응답하기 // 1. 데이터 받기 String id = request.getParameter("id"); String ps = request.getParameter("ps"); // 2. 처리 결과 응답 out.print("User ID: " + id); out.print("<br>User PS: " + ps); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ // HTTP POST 요청을 처리하기 위한 doPost 메서드를 구현하며 // 여기서는 doGet 메서드를 호출하도록 되어있음 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
(login.html)
<!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <form action="LoginServlet" method="post"> <table align=center> <tr><td colspan=2 align=center height=40><b>로그인</b><td></tr> <tr> <td align=right>아이디 </td> <td><input type="text" name="id" placeholder="Email address" required></td> </tr> <tr> <td align=right>패스워드 </td> <td><input type="password" name="ps" required></td> </tr> <tr> <td colspan=2 align=center height=50> <input type="submit" value="로그인하기"> </td> </tr> </table> </form> </body> </html>
(labJoinServlet.java)
package com.hy; 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 LabJoinServlet */ @WebServlet("/LabJoinServlet") public class LabJoinServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LabJoinServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 0. 클라이언트가 전송한 요청 데이터 인코딩 방식을 utf-8로 지정하기 request.setCharacterEncoding("utf-8"); // 클라이언트가 전송할 응답 데이터 인코딩 방식 utf-8로 지정 response.setCharacterEncoding("utf-8"); response.setContentType("text/html; charset=utf-8"); //response.getWriter().append("Served at: ").append(request.getContextPath()); PrintWriter out = response.getWriter(); String id = request.getParameter("id"); String ps = request.getParameter("ps"); String ps2 = request.getParameter("ps2"); String gender = request.getParameter("gender"); String[] sport = request.getParameterValues("sport"); String blood = request.getParameter("blood"); String birth = request.getParameter("birth"); String color = request.getParameter("color"); String comment = request.getParameter("comment"); out.print("아이디: " + id); out.print("<br>비밀번호: " + ps); if(ps.equals(ps2)) { out.print("<br>비밀번호가 일치합니다: " + ps2); }else { out.print("<br>비밀번호가 일치하지 않습니다: " + ps2); } out.print("<br>성별: " + gender); out.print("<br>취미: "); for(int i = 0; i < sport.length; i++) { out.print(sport[i]+" "); } out.print("<br>혈액형: " + blood); out.print("<br>생일: " + birth); out.print("<br>좋아하는 색: " + color); out.print("<br>남기고 싶은 말: " + comment); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
--> 회원가입폼에서 입력받은 데이터를 받아와서 처리한 후, 화면에 출력하는 예제
(LabJoin.html)
<!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> <style> body{ text-align:center; } div > h3{ background-color: rgb(180, 180, 180); } </style> </head> <body> <div><h3>Step1: 아이디/비번 입력</h1></div> <form action="LabJoinServlet" method="post"> 아이디 <input type="text" name="id" placeholder="아이디 입력" required><br><br> 비밀번호 <input type="password" name="ps" required><br><br> 비밀번호 확인 <input type="password" name="ps2" required><br><br> <div><h3>Step2: 개인정보</h1></div> 성별 <input type="radio" name="gender" value="woman">여성 <input type="radio" name="gender" value="male">남성<br><br> 혈액형 <select name="blood"> <option value="A">A</option> <option value="B">B</option> <option value="O">C</option> <option value="AB">D</option> </select><br><br> 생일 <input type="date" name="birth"><br><br> <div><h3>Step3: 선호도</h1></div> 취미 <input type="checkbox" name="sport" value="football">축구 <input type="checkbox" name="sport" value="basketball">농구 <input type="checkbox" name="sport" value="baseball">야구 <br><br> 좋아하는 색깔 <input type="color" name="color"><br><br> <div><h3>Step4: 적고싶은말</h1></div> <textarea name="comment" rows="10" cols="50" placeholder="Add your comment"> </textarea><br><br> <input type="submit" value="제출"> <input type="reset" value="초기화"> </form> </body> </html>
(Lab1Servlet.java)
package com.smart; 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 SignupServlet */ @WebServlet("/Lab1Servlet") public class Lab1Servlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. request 객체 데이터 인코딩 방식 지정 request.setCharacterEncoding("utf-8"); // 2. 클라이언트에게 전송할 페이지 양식 지정 response.setCharacterEncoding("utf-8"); // 3. 클라이언트에게 전송한 데이터 인코딩 방식 지정 response.setContentType("text/html; charset=utf-8"); // 4. 클라이언트가 보내온 데이터 받기 String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); String food = request.getParameter("food"); String gender = request.getParameter("gender"); String[] hobbies = request.getParameterValues("hobby"); // 5. 클라이언트에게 데이터 확인을 위한 피드백 // PrintWriter 객체를 생성 -> out 레퍼런스 변수로 지정 PrintWriter out = response.getWriter(); // out 객체를 이용하여 HTML 페이지 생성하기 out.print("<html><body>"); out.print("<p><b>이름: " + name + "</b></p>"); out.print("<p><b>나이: " + age + "</b></p>"); String ageRange = null; if(age >= 10 && age < 20) { ageRange = "10대"; } else if (age >= 20 && age < 30) { ageRange = "20대"; } else if (age >= 30 && age < 40) { ageRange = "30대"; } else if (age >= 40 && age < 50) { ageRange = "40대"; } else if (age >= 50 && age < 60) { ageRange = "50대"; } else if (age >= 60 && age < 70) { ageRange = "60대"; } else if (age >= 70 && age < 80) { ageRange = "70대"; } out.print("<p><b>나이대: " + ageRange + "</b></p>"); out.print("<p><b>좋아하는 음식: " + food + "</b></p>"); out.print("<p><b>성별: " + gender + "</b></p>"); out.print("<p><b>관심분야: "); for(int i = 0; i < hobbies.length; i++) { out.print(hobbies[i] + "<br>"); } out.print("</body></html>"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
ageRange를 case문으로 변경한 코드
String ageRange = null; switch (age / 10 * 10) { case 10: ageRange = "10대"; break; case 20: ageRange = "20대"; break; case 30: ageRange = "30대"; break; case 40: ageRange = "40대"; break; case 50: ageRange = "50대"; break; case 60: ageRange = "60대"; break; case 70: ageRange = "70대"; break; case 80: ageRange = "80대"; break; } out.print("<p><b>나이대: " + ageRange + "</b></p>");
lab1.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Lab1Servlet" method="post"> <table align=center> <tr><td colspan=2 align=center height=40><b>회원가입</b><td></tr> <tr> <td align=right>이름 </td> <td><input type="text" name="name" placeholder="이름 입력"></td> </tr> <tr> <td align=right>나이 </td> <td><input type="number" name="age" placeholder="나이 입력"></td> </tr> <tr> <td align=right>좋아하는 음식 </td> <td> <select name="food"> <option value="김치째개">김치찌개</option> <option value="케이크">케이크</option> <option value="불고기">불고기</option> <option value="비빔밥">비빔밥</option> <option value="none">없음</option> </td> </tr> <tr> <td align=right>성별 </td> <td><input type="radio" name="gender" value="여성" checked>여성 <input type="radio" name="gender" value="남성">남성</td> </tr> <tr> <td align=right>관심분야</td> <td> <input type="checkbox" name="hobby" value="웹프로그램">웹프로그램 <input type="checkbox" name="hobby" value="네트워크관리">네트워크관리 <input type="checkbox" name="hobby" value="보안">보안 <input type="checkbox" name="hobby" value="게임프로그램">게임프로그램 <input type="checkbox" name="hobby" value="데이터분석">데이터분석 </td> </tr> <tr> <td colspan=2 align=center height=50> <input type="submit" value="회원가입"> </td> </tr> </table> </form> </body> </html>
(SignupServlet.java)
package com.smart; 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 SignupServlet */ @WebServlet("/SignupServlet") public class SignupServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 1. request 객체 데이터 인코딩 방식 지정 request.setCharacterEncoding("utf-8"); // 2. 클라이언트에게 전송할 페이지 양식 지정 response.setCharacterEncoding("utf-8"); // 3. 클라이언트에게 전송한 데이터 인코딩 방식 지정 response.setContentType("text/html; charset=utf-8"); // 4. 클라이언트가 보내온 데이터 받기 String id = request.getParameter("id"); String ps1 = request.getParameter("ps1"); String ps2 = request.getParameter("ps2"); String name = request.getParameter("name"); String job = request.getParameter("job"); String gender = request.getParameter("gender"); String[] hobbies = request.getParameterValues("hobby"); // 5. 클라이언트에게 데이터 확인을 위한 피드백 // PrintWriter 객체를 생성 -> out 레퍼런스 변수로 지정 PrintWriter out = response.getWriter(); // out 객체를 이용하여 HTML 페이지 생성하기 out.print("<html><body>"); out.print("<p><b>User ID: " + id + "</b></p>"); out.print("<p><b>User Password: " + ps1 + "</b></p>"); out.print("<p><b>User name: " + name + "</b></p>"); out.print("<p><b>직업: " + job + "</b></p>"); out.print("<p><b>성별: " + gender + "</b></p>"); out.print("<p><b>취미: </b></p>"); for(int i = 0; i < hobbies.length; i++) { out.print(hobbies[i] + "<br>"); } out.print("</body></html>"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
signup.html
<!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>Insert title here</title> </head> <body> <form action="SignupServlet" method="post"> <table align=center> <tr><td colspan=2 align=center height=40><b>회원가입</b><td></tr> <tr> <td align=right>이름 </td> <td><input type="text" name="name" placeholder="이름 입력"></td> </tr> <tr> <td align=right>아이디 </td> <td><input type="text" name="id" placeholder="아이디 입력"></td> </tr> <tr> <td align=right>패스워드 </td> <td><input type="password" name="ps1"></td> </tr> <tr> <td align=right>패스워드 확인 </td> <td><input type="password" name="ps2"></td> </tr> <tr> <td align=right>직업 </td> <td> <select name="job"> <option value="free">프리랜서</option> <option value="student">학생</option> <option value="programmer">개발자</option> <option value="professor">교수</option> <option value="none">없음</option> </td> </tr> <tr> <td align=right>성별 </td> <td><input type="radio" name="gender" value="woman" checked>여성 <input type="radio" name="gender" value="male">남성</td> </tr> <tr> <td align=right>취미</td> <td> <input type="checkbox" name="hobby" value="football">축구 <input type="checkbox" name="hobby" value="basketball">농구 <input type="checkbox" name="hobby" value="baseball">야구 <input type="checkbox" name="hobby" value="piano">피아노 </td> </tr> <tr> <td colspan=2 align=center height=50> <input type="submit" value="회원가입"> </td> </tr> </table> </form> </body> </html>
'학교 > JAVA' 카테고리의 다른 글
자바빈(JavaBean) (1) 2023.12.17 06) JSP 예제 (0) 2023.12.17 07) 내장 객체 예제 (0) 2023.12.15 05) 서블릿 (0) 2023.12.14 06) JSP (0) 2023.12.14