JSP 프로그램 예: 등록 및 로그인 양식

jsp 예제 프로그램

이 튜토리얼에서는 JSP로 샘플 프로그램을 개발하고, 이 튜토리얼에서 MVC 아키텍처를 구현하는 과정을 안내해 드리겠습니다.

다음과 같은 프로그램 사례가 개발될 예정입니다.

  • 입학 등록 양식
  • 로그인 및 로그아웃 양식
  • JSP 양식

JSP를 통한 등록 양식 사용

등록 양식에는 이름, 사용자 이름, 비밀번호, 주소, 연락처 번호 등 모든 세부 정보를 입력하는 양식이 있습니다.

이 양식은 우리가 신청서에 등록하는 데 도움이 될 것입니다. 그들은 우리의 모든 세부 정보를 수집하여 다음 위치에 저장합니다. 데이터베이스 또는 캐시.

이 예에서 우리는 다음 필드가 있는 "Guru 등록 양식"을 사용할 것입니다:

  1. 이름
  2. ID / Username
  3. 비밀번호
  4. 주소
  5. 전화 연락처

이러한 모든 세부 정보를 입력한 후 제출 버튼을 클릭하면 모든 세부 정보가 저장됩니다.

예 1: Register_1.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Registration Form</title>
</head>
<body>
<h1>Guru Register Form</h1>
<form action="guru_register" method="post">
			<table style="with: 50%">
				<tr>
					<td>First Name</td>
					<td><input type="text" name="first_name" /></td>
				</tr>
				<tr>
					<td>Last Name</td>
					<td><input type="text" name="last_name" /></td>
				</tr>
				<tr>
					<td>UserName</td>
					<td><input type="text" name="username" /></td>
				</tr>
					<tr>
					<td>Password</td>
					<td><input type="password" name="password" /></td>
				</tr>
				<tr>
					<td>Address</td>
					<td><input type="text" name="address" /></td>
				</tr>
				<tr>
					<td>Contact No</td>
					<td><input type="text" name="contact" /></td>
				</tr></table>
			<input type="submit" value="Submit" /></form>
</body>
</html>

코드 설명:

코드 라인 11: 여기서는 요청이 처리될 서블릿과 같은 작업이 있는 양식 이름을 사용하고 서블릿 이름은 guru_register.java입니다. 요청은 POST 메소드를 통해 처리됩니다.

코드 라인 14-16: 여기서는 입력 유형을 텍스트로 취하고 이름은 이름입니다.

코드 라인 18-20: 여기서는 입력 유형을 텍스트로 취하고 이름은 성입니다.

코드 라인 22-24: 여기서는 입력 유형을 텍스트로 취하고 이름은 사용자 이름입니다.

코드 라인 26-28: 여기서는 입력 유형을 비밀번호(입력 시 비밀번호가 숨겨짐)로, 이름을 비밀번호로 사용합니다.

코드 라인 30-32: 여기서는 입력 유형을 텍스트로, 이름을 주소로 사용합니다.

코드 라인 34-36: 여기서는 입력 유형을 텍스트로, 이름을 연락처로 사용합니다.

코드 라인 37: 여기서는 제출 유형의 버튼을 선택하고 값도 제출합니다. 이 버튼을 클릭하면 모든 매개변수 값이 요청에 전달되는 해당 guru_register 서블릿으로 작업이 이동합니다.

예 2: Guru_register.java

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_register
 */
public class guru_register extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String first_name = request.getParameter("first_name");
		String last_name = request.getParameter("last_name");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String address = request.getParameter("address");
		String contact = request.getParameter("contact");
		
		if(first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() || 
				password.isEmpty() || address.isEmpty() || contact.isEmpty())
		{
			RequestDispatcher req = request.getRequestDispatcher("register_1.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_2.jsp");
			req.forward(request, response);
		}
	}

}

코드 설명:

코드 라인 14: 여기서는 HttpServlet을 확장하는 guru_servlet을 정의합니다.

코드 라인 18: 이 액션 doPost() 위 JSP 형식의 action 속성에서 POST를 언급할 때 호출되는 메서드입니다.

코드 라인 20-25: 여기서는 request.getParameter를 사용하여 요청 i.efirst_name, last_name, 사용자 이름, 비밀번호, 주소 및 연락처에서 값을 가져옵니다.

코드 라인 27-32: 여기서는 요청에서 가져온 매개변수가 비어 있는지 여부를 확인하는 if 조건을 사용합니다. 매개변수 중 하나라도 비어 있으면 이 조건(first_name.isEmpty() || last_name.isEmpty || 사용자 이름.isEmpty || 비밀번호.isEmpty || address.isEmpty || contact.isEmpty())을 입력하고 요청을 Register_1.jsp로 전달할 요청 객체를 사용하여 RequestDispatcher 객체를 가져옵니다. 여기에는 요청 및 응답 개체도 포함됩니다.

코드 라인 33-37: 이 경우는 매개변수 중 하나라도 비어 있지 않으면 실행됩니다. 요청을 Register_2.jsp로 전달할 요청 개체를 사용하여 requestDispatcher 개체를 가져와야 합니다. 여기서는 요청 및 응답 개체를 전달합니다.

예 3: Register_2.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Success Page</title>
</head>
<body>
           <a><b>Welcome User!!!!</b></a>
</body>
</html>

코드 설명:

코드 라인 10: 여기서 우리는 사용자를 환영한다고 말하고 있습니다. 이 JSP는 모든 매개변수가 채워지면 호출됩니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

JSP를 통해 등록 양식 사용

JSP를 통해 등록 양식 사용

출력:

register_1.jsp를 클릭하면 이름, 성, 사용자 이름, 비밀번호, 주소, 연락처와 같은 세부 정보가 있는 양식이 표시됩니다. 모든 세부 정보가 채워졌습니다. 제출 버튼을 클릭하면 "Welcome User"라는 메시지가 표시됩니다.

로그인 및 로그아웃 양식

등록 양식과 마찬가지로 로그인 및 로그아웃 양식이 있습니다.

이 예에서는 제출 버튼이 있는 "사용자 이름"과 "비밀번호"라는 두 개의 필드가 있는 로그인 양식을 사용했습니다.

제출 버튼을 클릭하면 로그아웃 버튼이 포함된 환영 메시지가 표시됩니다.

로그아웃 버튼을 클릭하면 로그인 양식으로 돌아갑니다.

예 1: Register_3.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Login Form</title>
</head>
<body>
<form action="guru_login" method="post">
		<table style="with: 50%">

			<tr>
				<td>UserName</td>
				<td><input type="text" name="username" /></td>
			</tr>
				<tr>
				<td>Password</td>
				<td><input type="password" name="password" /></td>
			</tr>
		</table>
		<input type="submit" value="Login" /></form>
</body>
</html>

코드 설명:

코드 라인 10: 여기서는 액션이 ​​있는 양식 이름을 사용합니다. 즉, 전달된 서블릿은 guru_login.java입니다. POST를 통과하는 방법입니다.

코드 라인 13-16: 여기서는 텍스트 유형의 입력 필드 "username"을 사용합니다.

코드 라인 17-20: 여기서는 비밀번호 유형인 "password" 입력 필드를 사용합니다.

코드 라인 22: 여기서는 "Login" 값이 있는 "제출" 버튼을 클릭하고 이를 클릭하면 요청 객체를 사용하여 두 필드를 모두 가져오는 서블릿 guru_login으로 이동합니다.

Guru_login.java(서블릿)

package demotest;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class guru_login
 */
public class guru_login extends HttpServlet {

    public guru_login() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		if(username.isEmpty() || password.isEmpty() )
		{
			RequestDispatcher req = request.getRequestDispatcher("register_3.jsp");
			req.include(request, response);
		}
		else
		{
			RequestDispatcher req = request.getRequestDispatcher("register_4.jsp");
			req.forward(request, response);
		}
	}

}

코드 설명:

코드 라인 5-9: 여기서는 코드에 필요한 가져오기를 가져옵니다.

코드 라인 14: 여기서는 HttpServlet을 확장하는 guru_login 서블릿을 사용합니다.

코드 라인 21: 여기서 우리는 사용하고 있습니다 doPost() 우리가 사용하고 있는 형태와 같은 방식으로 POST 방식을 사용합니다.

코드 라인 23-24: 여기서는 요청 개체, 즉 사용자 이름과 비밀번호를 사용하여 매개변수를 사용합니다.

코드 라인 25-29: 이러한 방식으로 사용자 이름과 비밀번호가 비어 있는지 여부를 확인하는 "if" 조건을 사용합니다. 이 경우 비어 있으면 요청 및 응답 개체와 함께 Register_3.jsp로 전달되는 requestdispatcher 개체를 얻습니다.

코드 라인 30-34: 둘 다 비어 있지 않으면 실행되며 요청 및 응답 개체와 함께 요청을 Register_4.jsp로 전달합니다.

예 2: Register_4.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Logged In</title>
</head>
<body>
	<table style="with: 50%">
	<tr><td>
	<% String username = request.getParameter("username"); %>
<a>Welcome   <% out.println(username); %> User!!!! You have logged in.</a></td></tr>
<tr></tr><tr><td></td><td></td><td><a href="register_3.jsp"><b>Logout</b></a></td></tr>
</table>
</body>
</html>

코드 설명:

코드 라인 12: 여기서는 문자열 개체 username의 요청 개체에서 "username" 매개변수를 가져옵니다.

코드 라인 13: 여기에 사용자 이름이 포함된 환영 메시지가 있습니다.

코드 라인 14: 여기서는 Register_3.jsp로 리디렉션되는 양식을 로그아웃하는 링크를 제공합니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

출력:

여기서 Register_3.jsp를 클릭하면 로그인 버튼이 있는 "username"과 "password"라는 두 개의 필드가 표시됩니다.

로그인 및 로그아웃 양식

로그인 버튼을 클릭하면 로그아웃 버튼과 함께 아래 메시지가 표시됩니다.

로그인 및 로그아웃 양식

로그아웃 버튼을 클릭하면 로그인 페이지로 돌아갑니다.

로그인 및 로그아웃 양식

getParameter()를 사용한 JSP 양식 처리

JSP 양식 처리:

양식은 웹 처리의 일반적인 방법입니다. 우리는 웹 서버와 그 정보에 정보를 보내야 합니다.

웹 서버에 정보를 보내고 받는 데 일반적으로 사용되는 두 가지 방법이 있습니다.

GET 방법:

  • 이는 브라우저에서 웹 서버로 정보를 전달하는 기본 방법입니다.
  • URL 페이지에 ?문자를 추가하여 인코딩된 정보를 전송합니다.
  • 또한 크기 제한이 있으며 요청 시 1024자만 보낼 수 있습니다.
  • GET 방식을 통해 비밀번호와 민감한 정보를 보내는 것을 피해야 합니다.

게시 방법:

  • 게시 방법은 서버에 정보를 보내는 가장 안정적인 방법입니다.
  • 정보를 별도의 메시지로 보냅니다.
  • URL에서 ? 뒤에 텍스트 문자열로 전송됩니다.
  • 민감한 정보를 보내는 데 일반적으로 사용됩니다.

JSP는 다음과 같은 방법을 사용하여 폼 데이터 처리를 처리합니다.

  1. getParameter(): 양식 매개변수의 값을 가져오는 데 사용됩니다.
  2. getParameterValues(): 매개변수의 여러 값을 반환하는 데 사용됩니다.
  3. getParameterNames(): 매개변수의 이름을 가져오는 데 사용됩니다.
  4. getInputStream(): 클라이언트가 보낸 바이너리 데이터를 읽는 데 사용됩니다.

예:

이 예에서는 제출 버튼이 있는 "사용자 이름"과 "비밀번호"라는 두 개의 필드가 있는 양식을 사용했습니다.

Action_form.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Form</title>
</head>
<body>
<form action="action_form_process.jsp" method="GET">
UserName: <input type="text" name="username">
<br />
Password: <input type="text" name="password" />
<input type="submit" value="Submit" />
</form>
</body>
</html>

Action_form_process.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<h1>Form Processing</h1>

<p><b>Welcome User:</b>
   <%= request.getParameter("username")%>
</p>

</body>
</html>

코드 설명: Action_form.jsp

코드 라인 10: 여기에서 우리는 양식을 정의했고 이를 통해 다른 사람에게 작업을 처리했습니다. JSP. 작업 매개변수에서 GET 메소드를 통해 처리되어야 하는 JSP를 추가합니다.

여기서는 GET 메소드를 사용하여 사용자 이름과 비밀번호라는 정보를 전달합니다.

코드 라인 11-14: 여기서는 텍스트 필드인 사용자 이름 및 비밀번호와 같은 필드를 사용하고 사용자로부터 입력을 받습니다.

이 입력은 getParameter 메소드를 사용하여 가져올 수 있습니다. 또한 필드 값을 action_form_process.jsp에 전달하는 데 도움이 되는 제출 유형 유형의 제출 버튼이 있습니다.

Action_form_process.jsp

코드 라인 14: 여기서는 요청 객체의 getParameter 메소드를 사용하여 action_form.jsp에서 입력 필드의 값을 가져옵니다.

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

JSP 양식 처리

JSP 양식 처리

출력:

action_form.jsp를 실행하면 사용자 이름과 비밀번호 두 필드와 제출 버튼이 있는 양식이 생성됩니다. 그런 다음 사용자 이름과 비밀번호를 입력한 후 제출을 클릭하면 다음 페이지로 처리되어 다음 페이지로 처리됩니다. 환영 메시지.

이 게시물을 요약하면 다음과 같습니다.