Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

15) adminusersadd – добавление нового пользователя;

16) adminusersaddstat – статус добавления нового пользователя;

17) adminuserschange – изменение информации о пользователе;

18) adminuserschangestat – статус изменения информации о пользователе;

19) adminusersdel – удаление информации о пользователе;

20) adminorders – управление заказами;

21) adminorderex – изменение статуса выполнения заказа.

Некоторые из страниц нужны только для перехода между состояниями системы, поэтому опишу только самые главные.

3.2.1 index.jsp и login.jsp

Две эти страницы в совокупности образуют подсистему авторизации пользователя.

index.jsp отвечает за графическое отображение:

Рисунок 25 – Страница index.jsp

login.jsp отвечает за обработку данных после нажатия на кнопку «Вход». Код сервлета авторизации пользователя:

<%

Connection conn;

Properties connInfo = new Properties();

Class. forName("com. mysql. jdbc. Driver");

connInfo. put("user", "root");

connInfo. put("password", "");

connInfo. put("useUnicode", "true");

connInfo. put("characterEncoding", "KOI8_R");

conn = DriverManager. getConnection("jdbc:mysql://127.0.0.1/shop", connInfo);

Statement st = conn. createStatement();

String log = request. getParameter("log");

String pass = request. getParameter("pass");

ResultSet rs = st. executeQuery("SELECT root FROM users WHERE login ='" + log + "' AND pass ='" + pass + "'");

НЕ нашли? Не то? Что вы ищете?

if (rs. next()) {

int root = rs. getInt(1);

PreparedStatement ps = conn. prepareStatement("UPDATE users SET online = '1' WHERE login ='" + log + "' AND pass ='" + pass + "'");

ps. executeUpdate();

if (root == 1) {

conn. close();

out.print("<h1>Добро пожаловать, администратор " + log + "</h1>");

out. print("<meta http-equiv='Refresh' content='2; url=adminpage. jsp'>");

} else {

conn. close();

out. print("<h1>Добро пожаловать, " + log + "</h1>");

out. print("<meta http-equiv='Refresh' content='2; url=shop. jsp'>");

}

} else {

out. print("<h1>Неверный логин и/или пароль</h1><meta http-equiv='Refresh' content='2; url=index. jsp'>");

}

conn.close();

%>

Сервлет авторизации выполняет проверку введенного логина и пароля и выполняет вход в систему с соответствующими правами доступа или возвращается на страницу входа, если введенные данные неверны. [5]

3.2.2 adminpage.jsp

Это главное окно приложения. Оно состоит из четырех фреймов:

1) верхний – отображает текущего пользователя

2) левый – работа с таблицей «Товары»

3) средний – работа с таблицей «Пользователи»

4) правый – работа с таблицей «Заказы»

Рисунок 26 – Главное окно ИСИМ

Фреймы управления таблицами являются соответственно веб-страницами adminshop.jsp, adminusers.jsp и adminorders.jsp.

3.2.3 adminshop.jsp

Эта страница позволяет работать с таблицей «Товары» в БД. Она связана с подчиненными страницами, которые реализуют функции добавления, изменения и удаление записей из соответствующей таблицы.

Рисунок 27 – Вид страницы adminshop. jsp

Рисунок 28 – Вид страницы adminshopadd.jsp

Рисунок 29 – Вид страницы adminshopchange.jsp

Приведу отрывок кода страницы adminshop.jsp, который реализует выборку данных из БД и занесение их в таблицу:

<table border="1">

<thead>

<tr>

<th>ID</th>

<th>Наименование</th>

<th>Цена</th>

<th>В наличии (кол-во)</th>

</tr>

</thead>

<%

ResultSet rs = st. executeQuery("SELECT * FROM goods ORDER BY id");

out. print("<tbody>");

while (rs. next()) {

out. print("<tr><td>" + rs. getString(1) + "</td>");

out. print("<td>" + rs. getString(2) + "</td>");

out. print("<td>" + rs. getString(3) + "</td>");

out. print("<td>" + rs. getString(4) + "</td>");

%>

<td><a href="adminshopdel. jsp? iddel=<%=rs. getString(1)%>">Удаление</a></td>

<td><a href="adminshopchange. jsp? idc=<%=rs. getString(1)%>">Изменение</a></td>

<%

}

out. print("</tr></tbody>");

st. close();

conn. close();

%>

</table>

3.2.4 adminusers.jsp

Эта страница позволяет работать с таблицей «Пользователи» в БД. Она связана с подчиненными страницами, которые реализуют функции добавления, изменения и удаление записей из соответствующей таблицы.

Рисунок 30 – Вид страницы adminusers.jsp

Рисунок 31 – Вид страницы adminusersadd. jsp

Рисунок 32 – Вид страницы adminuserschange.jsp

Приведу сервлет загрузки информации о пользователе для её изменения:

<%

String log = request. getParameter("idc");

Properties connInfo = new Properties();

Class. forName("com. mysql. jdbc. Driver");

connInfo. put("user", "root");

connInfo. put("password", "");

connInfo. put("useUnicode", "true");

connInfo. put("characterEncoding", "KOI8_R");

Connection conn = DriverManager. getConnection("jdbc:mysql://127.0.0.1/shop", connInfo);

Statement st = conn. createStatement();

ResultSet rs = st. executeQuery("SELECT * FROM users WHERE login ='" + log + "'");

rs. next();

rs. getString(1);

%>

<form name="Форма ввода информации" action="adminuserchangestat. jsp">

Изменение информации пользователя <input type="text" name="idc" value="<%=log%>" readonly="readonly"/>

<br><br>

Логин:<br><input type="text" name="newlogin" value="<%out. print(rs. getString(1));%>"/><br>

Пароль:<br><input type="text" name="newpass" value="<%out. print(rs. getString(2));%>"/><br>

Права администратора:<br><input type="text" name="newroot" value="<%out. print(rs. getString(3));%>"/><br>

<input type="submit" value="Изменить" name="change" />

<%conn. close();%>

Остальные страницы поэтому детально описывать их не буду, приведу только исходные коды.

3.2.5 adminorders. jsp

Рисунок 33 – Вид страницы adminorders.jsp

Исходный код страницы:

<%--

Document : adminorders

Created on : 05.01.2013, 16:16:56

Author : Руслан

--%>

<%@page import="java. util. Properties"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@page import="java. sql.*"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" type="text/css" href="style. css">

<h2>Управление заказами</h2>

</head>

<body>

<br>

<%

Connection conn;

Properties connInfo = new Properties();

Class. forName("com. mysql. jdbc. Driver");

connInfo. put("user", "root");

connInfo. put("password", "");

connInfo. put("useUnicode", "true");

connInfo. put("characterEncoding", "KOI8_R");

conn = DriverManager. getConnection("jdbc:mysql://127.0.0.1/shop", connInfo);

Statement st = conn. createStatement();

%>

<table border="1">

<thead>

<tr>

<th>ID</th>

<th>Дата</th>

<th>Заказчик</th>

<th>Содержимое</th>

<th>Статус выполнения</th>

</tr>

</thead>

<%

ResultSet rs = st. executeQuery("SELECT * FROM orders ORDER BY id");

out. print("<tbody>");

while (rs. next()) {

out. print("<tr><td>" + rs. getString(1) + "</td>");

out. print("<td>" + rs. getString(2) + "</td>");

out. print("<td>" + rs. getString(3) + "</td>");

out. print("<td>" + rs. getString(4) + "</td>");

out. print("<td>" + rs. getString(5) + "</td>");

String or=rs. getString(5);

if(or. equals("N")){

out. print("<td><a href=\"adminorderex. jsp? idex="+rs. getString(1)+"\">Выполнить</a></td>");

}

}

out. print("</tr></tbody>");

st. close();

conn. close();

%>

</table>

</body>

</html>

3.2.6 register. jsp и regstat. jsp

Рисунок 34 – Вид страницы register.jsp

Исходный код страницы regstat.jsp – регистрации нового пользователя (покупателя):

<%--

Document : regstat

Created on : 03.01.2013, 16:10:54

Author : Руслан

--%>

<%@page import="java. util. Properties"%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@page import="java. sql.*"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<link rel="stylesheet" type="text/css" href="style. css">

<title>Статус регистрации</title>

</head>

<body>

<%

Connection conn;

Properties connInfo = new Properties();

Class. forName("com. mysql. jdbc. Driver");

connInfo. put("user", "root");

connInfo. put("password", "");

connInfo. put("useUnicode", "true");

connInfo. put("characterEncoding", "KOI8_R");

conn = DriverManager. getConnection("jdbc:mysql://127.0.0.1/shop", connInfo);

Statement st = conn. createStatement();

String login = request. getParameter("log");

String pass = request. getParameter("pass");

ResultSet rs = st. executeQuery("SELECT root FROM users WHERE login ='" + login + "'");

if (rs. next() == true) {

out. print("<h1>Такой пользователь уже существует!</h1>");

conn. close();

out. print("<meta http-equiv='Refresh' content='5; url=register. jsp'>");

} else {

PreparedStatement ps = conn. prepareStatement("INSERT INTO users VALUES ('" + login + "','" + pass + "','0','0')");

ps. executeUpdate();

ps. close();

conn. close();

out. print("<h1>Регистрация успешно завершена!</h1><meta http-equiv='Refresh' content='5; url=index. jsp'>");

}

%>

</body>

</html>

4 ТЕСТИРОВАНИЕ

4.1 Составление тестовых наборов данных

Тестовые наборы данных разработаны с помощью метода эквивалентного разбиения.

Таблица 1 – Классы эквивалентности тестовых наборов данных

Поле

Условие

Правильные наборы

Неправильные наборы

Поле «Логин» на странице входа

Логин должен совпадать с логином пользователя, зарегистрированного в системе

L | (L,P) ÎU, где L - логин, Р – пароль, U – множество, зарегистрированных в системе пар (L,P) пользователей

L | (L,P) ÏU, где L - логин, Р – пароль, U – множество, зарегистрированных в системе пар (L,P)

Поле «Пароль» на странице входа

Пароль должен соответствовать логину пользователя, зарегистрированного в системе

P | (L,P) ÎU, где L - логин, Р – пароль, U – множество, зарегистрированных в системе пар (L,P) пользователей

P | (L,P) ÏU, где L - логин, Р – пароль, U – множество, зарегистрированных в системе пар (L,P)

Поле «Логин» на странице регистрации, странице добавления нового пользователя, изменения информации о пользователе

Строка не должна содержать недопустимых синтаксисом SQL символов

Строка, состоящая из букв, цифр и символа подчеркивания

Строка, содержащая символы / \ | ‘ и т. д.

Поле «Пароль» на странице регистрации, странице добавления нового пользователя, изменения информации о пользователе

Строка не должна содержать недопустимых синтаксисом SQL символов

Строка, состоящая из букв, цифр и символа подчеркивания

Строка, содержащая символы / \ | ‘ и т. д.

Поле «ID» на страницах добавления нового товара, изменения информации о товаре

Целое число, максимум 11 знаков. Не должно совпадать с уже имеющимся в таблице.

IDÎZ | 0<len≤11, где len – длина числа, ID – само число

Дробные, вещественные, иррациональные числа, текст

Продолжение таблицы 1 – Классы эквивалентности тестовых наборов данных

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5