Servlet & JSP/Servlet & JSP 공부

[자바웹을다루는기술] 서블릿을 이용한 여러가지 실습 예제

개발자하소서 2022. 2. 14. 22:33
728x90
반응형
SMALL

📌 실습예제1 : 서블릿에 로그인 요청 시 유효성 검사하기 

 

1. login.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인창</title>
</head>
<body>

	<form name= "frmLogin" method="post" action="/pro06/loginTest">
	
		아이디 :<input type="text" name="user_id"><br>
		비밀번호 : <input type="password" name="user_pw"><br>
		<input type="submit" value="로그인"> <input type="reset" value="다시입력">
	
	</form>



</body>
</html>

 

2. LoginTest.java

 

package sec04.ex01;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
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("/loginTest")
public class LoginTest extends HttpServlet {
	
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init메서드");
	
	}

	public void destroy() {

		System.out.println("destroy 메서드");

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String id = request.getParameter("user_id");
		String pw = request.getParameter("user_pw");
		
		System.out.println("아이디는 : " + id);
		System.out.println("비밀번호는 : " + pw);
		
		if(id != null && (id.length()!=0) ) {
			
			out.print("<html>");
			out.print("<body>");
			out.print(id + "님 로그인 하셨습니다");
			out.print("</html>");
			out.print("</body>");
			
		}else {
			out.print("<html>");
			out.print("<body>");
			out.print("아이디를 입력하세요");
			out.print("<br>");
			out.print("<a href='http://localhost:8090/pro06/test01/loginTest.html'> 로그인 창으로 이동 </a>");
			out.print("</html>");
			out.print("</body>");
			
			
		}
	
		
		
	}

}

 

 

3. 실행결과

 

- 로그인 성공시 정상적으로 메시지가 출력 된다.

- 만약 ID를 입력하지 않고 요청 시 다시 입력하라는 오류 메시지가 출력된다.

 

 

 


 

📌 실습예제2 : 서블릿으로 로그인 요청 시 관리자 화면 나타내기

 

-> 실습1을 이용하여 로그인시 admin ID로 로그인하면 회원 관리와 회원 삭제 기능 보여주도록 한다.

 

1. LoginTest2.java

 

package sec04.ex01;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
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("/loginTest2")
public class LoginTest2 extends HttpServlet {
	
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init메서드");
	
	}

	public void destroy() {

		System.out.println("destroy 메서드");

	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		String id = request.getParameter("user_id");
		String pw = request.getParameter("user_pw");
		
		System.out.println("아이디는 : " + id);
		System.out.println("비밀번호는 : " + pw);
		
		if(id!=null && (id.length()!=0)) {
		
		if(id.equals("admin")){
			
			out.print("<html>");
			out.print("<body>");
			out.print("<font size='12'> 관리자로 로그인하셨습니다 </font>");
			out.print("<br>");
			out.print("<input type=button value='회원정보 수정하기'/>");
			out.print("<input type=button value='회원정보 삭제하기'/>");
			out.print("</html>");
			out.print("</body>");
		
		}else {
			
			out.print("<html>");
			out.print("<body>");
			out.print(id + "님 로그인 하셨습니다");
			out.print("</html>");
			out.print("</body>");
			
			}
		}else{
			out.print("<html>");
			out.print("<body>");
			out.print("아이디를 입력하세요");
			out.print("<br>");
			out.print("<a href='http://localhost:8090/pro06/test01/loginTest.html'> 로그인 창으로 이동 </a>");
			out.print("</html>");
			out.print("</body>");
			
			}
		}
	
		
	}

 

2. login.html 에서 LoginTest2 를 매핑하도록 수정한다.

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>로그인 창</title>
</head>
<body>

<form name="frmlogin" method="post" action="loginTest2">

아이디 <input type="text" name="user_id"><br>
비밀번호 <input type="password" name="user_pw"><br>
<input type="submit" value="로그인">
<input type="reset" value="다시입력">

</form>

</body>
</html>

 

3. 실행결과

 

- admin계정으로 로그인시 관리자로 로그하셨습니다 라는 메시지가 표시된다.

 

 

 

 


📌 실습예제3 : 서블릿으로 요청 시 구구단 출력하기 

 

1. 구구단의 단수를 입력받는 gugu.html 작성한다

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>단수 입력창</title>
</head>
<body>

 <h1>출력할 구구단의 수를 지정해주세요</h1>
 <form method="get" action="/pro06/guguTest">
 
 출력할 구구단 : <input type="text" name="dan" />
 <input type="submit" value="구구단출력" >
 </form>

</body>
</html>

 

 

2. GuguTest.java 작성하기 

 

package sec04.ex01;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
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("/guguTest")
public class GuguTest extends HttpServlet {
	
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init메서드");
	
	}

	public void destroy() {

		System.out.println("destroy 메서드");

	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		PrintWriter out = response.getWriter();
		int dan = Integer.parseInt(request.getParameter("dan"));
		
			out.print("<table border=1 width=800 align=center>");
			out.print("<tr align=center bgcolor='#FFFF66'>");
			out.print("<td colspan=2>" + dan + "단 출력 </td>");
			out.print("</tr>");
			
			for(int i = 1; i<10; i++) {
				out.print("<tr align=center >");
				out.print("<td width=400>");
				out.print(dan + " * " + i);
				out.print("</td>");
				out.print("<td width=400>");
				out.print( i * dan);
				out.print("</td>");
				out.print("</tr>");
			}
		
			out.print("</table>");
			
			}
		
	
		
	}

 

 

3. 실행결과

 

 

728x90
반응형
LIST