Учебники

18) Пример JSP

В этом руководстве мы собираемся разработать примеры программ с использованием JSP и архитектуры MVC.

Следующие примеры программ будут разработаны —

Используя регистрационную форму через JSP

В регистрационной форме у нас будет форма для заполнения всех данных, которая будет содержать имя, имя пользователя, пароль, адрес, контактный номер и т. Д.

Эта форма поможет нам зарегистрироваться в приложении. Они берут все наши данные и хранят их в базе данных или кэше.

В этом примере мы возьмем «Регистрационную форму гуру», которая имеет следующие поля:

  1. Имя
  2. Фамилия
  3. имя пользователя
  4. пароль
  5. Адрес
  6. Контактный телефон

После заполнения всех этих данных у нас есть кнопка «Отправить», при нажатии на которую все данные будут сохранены.

Register_1.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru Registration Form</title>
  8. </head>
  9. <body>
  10. <h1>Guru Register Form</h1>
  11. <form action="guru_register" method="post">
  12. <table style="with: 50%">
  13. <tr>
  14. <td>First Name</td>
  15. <td><input type="text" name="first_name" /></td>
  16. </tr>
  17. <tr>
  18. <td>Last Name</td>
  19. <td><input type="text" name="last_name" /></td>
  20. </tr>
  21. <tr>
  22. <td>UserName</td>
  23. <td><input type="text" name="username" /></td>
  24. </tr>
  25. <tr>
  26. <td>Password</td>
  27. <td><input type="password" name="password" /></td>
  28. </tr>
  29. <tr>
  30. <td>Address</td>
  31. <td><input type="text" name="address" /></td>
  32. </tr>
  33. <tr>
  34. <td>Contact No</td>
  35. <td><input type="text" name="contact" /></td>
  36. </tr></table>
  37. <input type="submit" value="Submit" /></form>
  38. </body>
  39. </html>

Пояснение к коду:

Строка кода 11: Здесь мы берем имя формы с действием, то есть сервлетом, к которому будет обрабатываться запрос, и именем сервлета является guru_register.java. Запрос будет обработан методом POST.

Строка кода 14-16: здесь мы принимаем тип ввода как текст, а имя — это имя

Строка кода 18-20: здесь мы принимаем тип ввода как текст, а имя — фамилия

Строка кода 22-24: здесь мы принимаем тип ввода как текст, а имя — имя пользователя

Строка кода 26-28: здесь мы принимаем тип ввода в качестве пароля (он будет скрывать пароль при вводе) и имя в качестве пароля

Строка кода 30-32: здесь мы принимаем тип ввода как текст, а имя как адрес

Строка кода 34-36: здесь мы принимаем тип ввода как текст, а имя как контакт

Строка кода 37: здесь мы берем кнопку типа submit и значение также submit. При нажатии этой кнопки действие переходит к соответствующему сервлету guru_register, где все значения параметров будут переданы в запросе.

Guru_register.java

  1. package demotest;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.RequestDispatcher;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. /**
  12. * Servlet implementation class guru_register
  13. */
  14. public class guru_register extends HttpServlet {
  15. private static final long serialVersionUID = 1L;
  16. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  17. // TODO Auto-generated method stub
  18. String first_name = request.getParameter("first_name");
  19. String last_name = request.getParameter("last_name");
  20. String username = request.getParameter("username");
  21. String password = request.getParameter("password");
  22. String address = request.getParameter("address");
  23. String contact = request.getParameter("contact");
  24. if(first_name.isEmpty() || last_name.isEmpty() || username.isEmpty() ||
  25. password.isEmpty() || address.isEmpty() || contact.isEmpty())
  26. {
  27. RequestDispatcher req = request.getRequestDispatcher("register_1.jsp");
  28. req.include(request, response);
  29. }
  30. else
  31. {
  32. RequestDispatcher req = request.getRequestDispatcher("register_2.jsp");
  33. req.forward(request, response);
  34. }
  35. }
  36.  
  37. }

Пояснение к коду:

Строка кода 14: Здесь мы определяем guru_servlet, который расширяет HttpServlet.

Строка кода 18: это метод действия doPost (), который будет вызываться, когда мы упоминаем POST в атрибуте действия в приведенной выше форме JSP.

Строка кода 20-25: Здесь мы выбираем значения из запроса i.efirst_name, last_name, username, password, address и contact, используя request.getParameter.

Строка кода 27-32: Здесь мы берем условие if, где мы проверяем любой из параметров, извлекаемых из запроса, как пустые они или нет. Если какой-либо из параметров является пустым, он войдет в это условие (first_name.isEmpty () || last_name.isEmpty || username.isEmpty || password.isEmpty || address.isEmpty || contact.isEmpty ()), и мы получим получить объект RequestDispatcher, используя объект запроса, который перенаправит запрос в register_1.jsp. Здесь мы также включаем объекты запроса и ответа.

Строка кода 33-37: этот случай будет выполняться, когда какой-либо из параметров не пуст. Нам нужно будет извлечь объект requestDispatcher, используя объект запроса, который будет перенаправлять запрос в register_2.jsp. Здесь мы пересылаем объекты запроса и ответа.

Register_2.jsp

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

Пояснение к коду:

Строка кода 10: здесь мы говорим, желанный пользователь. Этот JSP будет вызван, когда все параметры заполнены.

Когда вы выполните приведенный выше код, вы получите следующий вывод:

Пример JSP

Пример JSP

Вывод:

Когда мы нажимаем на register_1.jsp, мы получим форму, которая будет содержать такие данные, как имя, фамилия, имя пользователя, пароль, адрес, контакт. Все детали были заполнены. Когда мы нажимаем кнопку «Отправить», мы получаем сообщение «Добро пожаловать, пользователь»

Форма входа и выхода

Как и форма регистрации, у нас будет форма для входа и выхода.

В этом примере мы приняли форму входа в систему, где у нас есть два поля «имя пользователя» и «пароль» с кнопкой отправки.

Когда мы нажимаем кнопку отправки, мы получаем приветственное сообщение с кнопкой выхода из системы.

Когда мы нажимаем кнопку выхода, мы возвращаемся к форме входа.

Register_3.jsp

  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
  2. pageEncoding="ISO-8859-1"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  7. <title>Guru Login Form</title>
  8. </head>
  9. <body>
  10. <form action="guru_login" method="post">
  11. <table style="with: 50%">
  12.  
  13. <tr>
  14. <td>UserName</td>
  15. <td><input type="text" name="username" /></td>
  16. </tr>
  17. <tr>
  18. <td>Password</td>
  19. <td><input type="password" name="password" /></td>
  20. </tr>
  21. </table>
  22. <input type="submit" value="Login" /></form>
  23. </body>
  24. </html>

Пояснение к коду:

Строка кода 10: Здесь мы берем имя формы, у которой есть действие, то есть сервлет, которому он передал, guru_login.java. Метод, с помощью которого он пройдет свой POST.

Строка кода 13-16: здесь мы берем поле ввода «username», которое имеет тип text.

Строка кода 17-20: здесь мы берем поле ввода «пароль», которое имеет тип пароля.

Строка кода 22: Здесь мы берем кнопку «отправить» со значением «Логин», по которой мы щелкаем, затем она переходит к сервлету guru_login, где оба поля берутся с использованием объекта запроса.

Guru_login.java (сервлет)

  1. package demotest;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.RequestDispatcher;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. /**
  12. * Servlet implementation class guru_login
  13. */
  14. public class guru_login extends HttpServlet {
  15.  
  16. public guru_login() {
  17. super();
  18. // TODO Auto-generated constructor stub
  19. }
  20.  
  21. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  22. // TODO Auto-generated method stub
  23. String username = request.getParameter("username");
  24. String password = request.getParameter("password");
  25. if(username.isEmpty() || password.isEmpty() )
  26. {
  27. RequestDispatcher req = request.getRequestDispatcher("register_3.jsp");
  28. req.include(request, response);
  29. }
  30. else
  31. {
  32. RequestDispatcher req = request.getRequestDispatcher("register_4.jsp");
  33. req.forward(request, response);
  34. }
  35. }
  36.  
  37. }

Пояснение к коду:

Строка кода 5-9: здесь мы импортируем необходимый импорт в коде.

Строка кода 14: Здесь мы берем сервлет guru_login, который расширяет HttpServlet.

Строка кода 21: Здесь мы используем метод doPost (), как в той форме, в которой мы используем метод POST.

Строка кода 23-24: здесь мы принимаем параметры, используя объект запроса, т.е. имя пользователя и пароль.

Строка кода 25-29: Таким образом, мы принимаем условие «если», когда мы проверяем имя пользователя и пароль независимо от того, пусты они или нет. В этом случае, если оно пустое, мы получаем объект requestdispatcher, который пересылается в register_3.jsp с объектами запроса и ответа.

Строка кода 30-34: это будет выполнено, если оба не пустые, тогда это передает запрос к register_4.jsp с объектами запроса и ответа.

Register_4.jsp

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

Пояснение к коду:

Строка кода 12: Здесь мы получаем параметр «username» из объекта запроса в строковом объекте username.

Строка кода 13: Здесь у нас есть приветственное сообщение с именем пользователя.

Строка кода 14: Здесь мы ссылаемся на выход из формы, которая перенаправляет на register_3.jsp.

Когда вы выполните приведенный выше код, вы получите следующий вывод:

Вывод:

Здесь, когда мы нажимаем на register_3.jsp, мы получаем два поля «имя пользователя» и «пароль» с кнопкой входа в систему.

Пример JSP

После нажатия на кнопку «Войти» вы получаете сообщение с кнопкой «Выйти».

Пример JSP

Когда вы нажимаете кнопку выхода, вы возвращаетесь на страницу входа

Пример JSP