-
모바일 웹 서비스를 위한 JSP 웹 프로그래밍 연습문제_05장 서블릿학교/JAVA 2023. 12. 13. 20:12
01. GET 방식의 HTTP 요청을 처리하기 위한 서블릿의 멤버 함수 이름은 무엇인가요?
답: doGet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // GET 요청 처리 로직 작성 }
02. 쿼리 스트링에서 이름이 name인 파라미터의 값을 추출하기 위한 HttpServletRequest 클래스의 멤버 함수 이름은 무엇인가요?
답: requset.getParameter();
String parameterValue = request.getParameter("name");
03. 체크 박스 형태의 HTML 페이지로부터 전달되는 입력 값을 추출하기 위해 가장 적절하게 이용할 수 있는 HttpServletRequest 클래스의 멤버 함수 이름은 무엇인가요?
답: request.getParameterValues();
04. 다음은 사용자로부터 좋아하는 색깔을 입력 받기 위한 color.html 이다. 다음 코드를 실행시켰을 때, 사용자가 입력한 값이 'Green'이라면, 'Favorite Color: Green'이 출력되도록 ColorServlet 코드를 작성해 주세요.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Color"> <input type="text" name="select" placeholder="Red or Green or Blue" checked> <input type="submit" value="입력"> </form> </body> </html>
답:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String usel = request.getParameter("select"); String res = "<html><h3>"; res += "Favorite Color: "; res += usel; res += "</h3></html>"; PrintWriter writer = response.getWriter(); writer.print(res); }
import java.io.IOException; 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("/Color") public class ColorServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 사용자가 입력한 값 가져오기 String favoriteColor = request.getParameter("select"); // HTML로 응답 생성 response.setContentType("text/html;charset=UTF-8"); response.getWriter().println("<html><body>"); response.getWriter().println("Favorite Color: " + favoriteColor); response.getWriter().println("</body></html>"); } }
05. 다음 코드 city.html에서 [OK] 버튼을 눌렀을 때 선택된 값이 모두 출력될 수 있도록 CityServlet 코드를 작성해 주세요.
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Signup"> <input type="checkbox" name="city" value="seoul" checked>서울<br> <input type="checkbox" name="city" value="busan" checked>부산<br> <input type="checkbox" name="city" value="incheon" checked>인천<br> <input type="submit" value="입력"> </form> </body> </html>
답:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); // 한글 깨짐 방지 String[] usel = request.getParameterValues("city"); String res = "<html><h3>"; try { for(int i=0; i<usel.length; i++) { res += usel[i] + " "; } } catch(NullPointerException e) { res += "잘못 된 입력값 입니다."; } finally { res += "</h3></html>"; PrintWriter writer = response.getWriter(); writer.print(res); } }
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 선택된 도시 값 가져오기 String[] selectedCities = request.getParameterValues("city"); // HTML로 응답 생성 response.setContentType("text/html;charset=UTF-8"); PrintWriter writer = response.getWriter(); writer.println("<html><body>"); writer.println("<h3>Selected Cities:</h3>"); if (selectedCities != null) { // selectedCities 배열을 순회. city 변수에는 각 반복에서 현재 도시명이 할당 for (String city : selectedCities) { writer.println("<p>" + city + "</p>"); } } else { writer.println("<p>No city selected.</p>"); } writer.println("</body></html>"); }
06. 아이디, 패스워드, 닉네임을 입력받는 signup.html 을 생성하고, 다음과 같이 실행 결과가 나오도록 SignupServlet을 작성해 주세요.
User ID : Kim
Password: 111
Name: Simin
답:
signup.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Signup Form</title> </head> <body> <form action="SignupServlet" method="post"> User ID: <input type="text" name="userId"><br> Password: <input type="password" name="password"><br> Name: <input type="text" name="nickname"><br> <input type="submit" value="Signup"> </form> </body> </html>
SignupServlet
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("/SignupServlet") public class SignupServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 입력값 가져오기 String userId = request.getParameter("userId"); String password = request.getParameter("password"); String nickname = request.getParameter("nickname"); // HTML로 응답 생성 response.setContentType("text/html;charset=UTF-8"); PrintWriter writer = response.getWriter(); writer.println("<html><body>"); writer.println("<h3>Signup Information:</h3>"); writer.println("<p>User ID: " + userId + "</p>"); writer.println("<p>Password: " + password + "</p>"); writer.println("<p>Name: " + nickname + "</p>"); writer.println("</body></html>"); } }
07. 다음 sport.html을 실행하면 어떤 URL이 생성되나요?
(단, sport.html은 Hello 프로젝트에 포함되어 있다고 가정합니다.)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="Sport"> <select name="sport" multiple="multiple"> <option value="baseball">Baseball <option value="football" selected>Football <option value="volleyball" selected>Volleyball </select> <input type="submit" value="입력"> </form> </body> </html>
답:
http://localhost:8080/Hello/Sport
localhost:8080/Hello/SportServlet?sport=football&sport=valleyball
08. 07번 문제의 sport.html을 실행했을 때 다음과 같은 결과가 출력되도록 SportServlet 클래스를 구현해 주세요.
selected sport: football
selected sport: volleyball답:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); // 한글 깨짐 방지 String[] usel = request.getParameterValues("sport"); String res = "<html>"; try { for(int i=0; i<usel.length; i++) { res += "<h3>Selected sport: " + usel[i] + "</h3>"; } } catch(NullPointerException e) { res += "<h3>잘못 된 입력값 입니다.</h3>"; } finally { res += "</html>"; } res += "</html>"; PrintWriter writer = response.getWriter(); writer.print(res); }
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("/Sport") public class SportServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 선택된 스포츠 값 가져오기 String[] selectedSports = request.getParameterValues("sport"); // HTML로 응답 생성 response.setContentType("text/html;charset=UTF-8"); PrintWriter writer = response.getWriter(); writer.println("<html><body>"); writer.println("<h3>Selected Sports:</h3>"); if (selectedSports != null) { for (String sport : selectedSports) { writer.println("<p>selected sport: " + sport + "</p>"); } } else { writer.println("<p>No sport selected.</p>"); } writer.println("</body></html>"); } }
'학교 > JAVA' 카테고리의 다른 글
모바일 웹 서비스 구현을 위한 JSP 웹 프로그래밍 연습문제_07 JSP 내장 객체 (1) 2023.12.13 모바일 웹 서비스 구현을 위한 JSP 웹 프로그래밍 연습문제_06 JSP (0) 2023.12.13 컬렉션 연습문제 (Student, Main) (1) 2023.10.27 컬렉션(ArrayList<String>, Iterator) 연습문제 (ArrayEx02) (0) 2023.10.26 컬렉션(ArrayList<String>) 연습문제 (ArrayEx01) (0) 2023.10.26