Вихідний код. Об’єктно-орієнтоване програмування
ResultSet rss = mysql. QuerySelect («SELECT * FROM themes ORDER BY id_theme»); //Зпрос по выбору тем. Connect = DriverManager. getConnection (url + dbName + «?useUnicode=true&characterEncoding=UTF-8», userName, password); Protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {. Protected void doGet (HttpServletRequest request… Читати ще >
Вихідний код. Об’єктно-орієнтоване програмування (реферат, курсова, диплом, контрольна)
Клас для роботи з БД.
Mysql.
package Model;
import java.sql.*;
import java.util.Properties;
/**.
- *
- * @author dante
- */
public class Mysql {.
private Connection connect = null;
//private Statement statement = null;
private ResultSet resultSet = null;
Properties properties = new Properties ();
private String url = «jdbc:mysql://localhost:3306/» ;//адрес для связи с БД.
private String dbName = «stud» ;
private String driver = «com.mysql.jdbc.Driver» ;
private String userName = «root» ;
private String password = «123» ;
public void SetURL (String URL) {.
this.url = URL;
}.
public void SetDBName (String DBName) {.
this.dbName = DBName;
}.
public void SetDriver (String Driver) {.
this.driver = Driver;
}.
public void SetUser (String user) {.
this.userName = user;
}.
public void SetPass (String Pass) {.
this.password = Pass;
}.
//Метод выполнения запроса на виборку.
public ResultSet QuerySelect (String query) throws SQLException {.
Statement s = connect. createStatement ();
s.executeQuery («SET NAMES utf8»);
s.executeQuery (query);
ResultSet rs = s. getResultSet ();
return rs;
}.
//Метод выполнения запроса на добавление.
public boolean QueryInsert (String query) throws SQLException {.
Statement s = connect. createStatement ();
properties.setProperty («useUnicode», «true»);
properties.setProperty («characterEncoding», «UTF-8»);
s.executeQuery («SET NAMES utf8»);
if (s.executeUpdate (query) ≠ 0) {.
return true;
} else {.
return false;
}.
}.
//Метод выполения запроса с проверкой на символы.
public boolean PreparedQueryInsert (String query, String theory, String theme) throws SQLException {.
properties.setProperty («useUnicode», «true»);
properties.setProperty («characterEncoding», «UTF-8»);
PreparedStatement s = connect. prepareStatement (query);
s.setString (1, theory);
s.setString (2, theme);
// s. executeQuery («SET NAMES utf8»);
if (s.executeUpdate () ≠ 0) {.
return true;
} else {.
return false;
}.
}.
//Вставка по идентификационному номеру.
public String PreparedQueryInsertID (String query, String theory, String theme) throws SQLException {.
properties.setProperty («useUnicode», «true»);
String key = «» ;
properties.setProperty («characterEncoding», «UTF-8»);
Statement s = connect. createStatement ();
PreparedStatement psmt = null;
psmt = connect. prepareStatement (query, psmt. RETURN_GENERATED_KEYS);
psmt.setString (1, theory);
psmt.setString (2, theme);
psmt.executeUpdate ();
ResultSet keys = psmt. getGeneratedKeys ();
keys.next ();
key = keys. getString (1);
// s. executeQuery («SET NAMES utf8»);
return key;
}.
//Соедиение с БД.
public void initConnection () {.
//FIRST register and download driver.
try {.
DriverManager.registerDriver (new org.gjt.mm.mysql.Driver ());
} catch (SQLException e) {.
e.printStackTrace ();
}.
try {.
Class.forName (driver);
} catch (ClassNotFoundException e) {.
e.printStackTrace ();
}.
//SECOND Connect to database.
try {.
Properties prop = new Properties ();
prop.setProperty («useUnicode», «false»);
prop.setProperty («characterEncoding», «UTF8»);
connect = DriverManager. getConnection (url + dbName + «?useUnicode=true&characterEncoding=UTF-8», userName, password);
} catch (SQLException e) {.
e.printStackTrace ();
}.
}.
//Хештрование строки.
public static String MD5(String md5) {.
try {.
java.security.MessageDigest md = java.security.MessageDigest.getInstance («MD5»);
byte[] array = md. digest (md5.getBytes ());
StringBuffer sb = new StringBuffer ();
for (int i = 0; i < array. length; ++i) {.
sb.append (Integer.toHexString ((array[i] & 0xFF) | 0×100).substring (1, 3));
}.
return sb. toString ();
} catch (java.security.NoSuchAlgorithmException e) {.
}.
return null;
//Закрытие с соединения с БД.
public void close () {.
try {.
if (resultSet ≠ null) {.
resultSet.close ();
}.
if (connect ≠ null) {.
connect.close ();
}.
} catch (Exception e) {.
}.
}.
}.
Класс для роботи з користувачами.
Users.
public class Users {.
private static String student = «2» ;
private static String teacher = «1» ;
private static String nouser = «0» ;
private static String secretPass = «teacher» ;
public static String getStudent () {.
return student;
}.
public static String getTeacher () {.
return teacher;
}.
public static String getNoUser () {.
return nouser;
}.
//Проверка на студента.
public static boolean isStudent (int status) {.
if (status == Integer. parseInt (student)) {.
return true;
} else {.
return false;
}.
}.
//Проверка на преподавателя.
public static boolean isTeacher (int status) {.
if (status == Integer. parseInt (teacher)) {.
return true;
} else {.
return false;
}.
}.
//Проверка на регистрацию преподавателя.
public static boolean RegisterIsTeacher (String secret) {.
if (secret.equals (secretPass)) {.
return true;
} else {.
return false;
}.
}.
}.
Сервлет додавання питань:
AddQuestions.
import Model. Mysql;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.util.Properties;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**.
- *
- * @author dante
- */
public class AddQuestions extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
//указываем кодировку для данных полученых от клиента.
request.setCharacterEncoding («UTF-8»);
PrintWriter out = response. getWriter ();
try {.
String one = request. getParameter («one»);
String two = request. getParameter («two»);
String three = request. getParameter («three»);
String four = request. getParameter («four»);
String check = request. getParameter («check»);
String question = request. getParameter («que»);
String theme = request. getParameter («theme»);
Mysql mysql = new Mysql ();
mysql.initConnection ();
String id_question = mysql. PreparedQueryInsertID («INSERT INTO questions (id_questions, question, id_theme) VALUES (NULL, ?, ?)», question, theme);// выполение запроса добавления вопроса.
//Вставка ответов тестирования.
if (check.equals («1»)) {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '1')», one, id_question);
} else {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '0')», one, id_question);
}.
if (check.equals («2»)) {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '1')», two, id_question);
} else {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '0')», two, id_question);
}.
if (check.equals («3»)) {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '1')», three, id_question);
} else {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '0')», three, id_question);
}.
if (check.equals («4»)) {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '1')», four, id_question);
} else {.
mysql.PreparedQueryInsert («INSERT INTO answers (`answer`,`id_question` ,`right`) VALUES (?, ?, '0')», four, id_question);
}.
mysql.close ();
} catch (Exception e) {.
e.printStackTrace ();
}.
}.
Сервлет додавання питань.
AddResults.
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**.
- *
- * @author dante
- */
public class AddResults extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
//указываем кодировку для данных полученых от клиента.
request.setCharacterEncoding («UTF-8»);
PrintWriter out = response. getWriter ();
String theme = request. getParameter («theme»);
String id = request. getParameter («id»);
String date = request. getParameter («date»);
String timer =request.getParameter («timer»);
String pri = request. getParameter («pri»);
Mysql mysql = new Mysql ();
try {.
mysql.initConnection ();
if (mysql.QueryInsert («INSERT INTO results (`id_user` ,`id_theme` ,`grade` ,`elapsed_time` ,» .
+ «`time_end_of_test`)VALUES ('» +id+" ','" +theme+" ','" +pri+" ','" +timer+" ','" +date+" ')")) {.
//Вставка результатов тестирования с возвратом значения.
out.print («1»);
} else {.
out.print («0»);
}.
mysql.close ();
} catch (Exception e) {.
e.printStackTrace ();
}.
}.
Сервлет додавання тем:
AddThemes.
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**.
- *
- * @author dante
- */
public class AddThemes extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
//указываем кодировку для данных полученых от клиента.
request.setCharacterEncoding («UTF-8»);
PrintWriter out = response. getWriter ();
try {.
String theme = request. getParameter («theme»);
Mysql mysql = new Mysql ();
mysql.initConnection ();
if (mysql.QueryInsert («INSERT INTO themes (theme) VALUES ('» + theme + «')»)) {.
out.print («1»);//Запрос вставки темы.
} else {.
out.print («0»);
}.
mysql.close ();
} catch (Exception e) {.
e.printStackTrace ();
}.
}.
Сервлет додавання порцій теорії:
AddTheorys.
import Model. Mysql;
import com.mysql.jdbc.PreparedStatement;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**.
- *
- * @author dante
- */
public class AddTheorys extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
//указываем кодировку для данных полученых от клиента.
request.setCharacterEncoding («UTF-8»);
PreparedStatement updateSales = null;
PrintWriter out = response. getWriter ();
try {.
String theory = request. getParameter («data»);
String id_theme = request. getParameter («id_theme»);
String status = request. getParameter («status»);
String id = request. getParameter («id»);
Mysql mysql = new Mysql ();
mysql.initConnection ();
if (status.equals («1»)) {.
if (mysql.PreparedQueryInsert («INSERT INTO theorys (theory, id_theme) VALUES (?,?)», theory, id_theme)) {//Вставка порций теории.
out.print («1»);
} else {.
out.print («0»);
}.
} else if (status.equals («0»)).
{.
if (mysql.PreparedQueryInsert («UPDATE theorys SET theory =? WHERE id_theory= ?», theory, id)) {.
out.print («1»);
} else {.
out.print («0»);
}.
}.
mysql.close ();
} catch (Exception e) {.
e.printStackTrace ();
}.
}.
Сервлет для виконання авторизації:
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import Model. Mysql;
import Model. Users;
/**.
- * Servlet implementation class Login
- */
@WebServlet («/login»).
public class Login extends HttpServlet {.
private static final long serialVersionUID = 1L;
protected void doGet (HttpServletRequest request,.
HttpServletResponse response) throws ServletException, IOException {.
// TODO Auto-generated method stub.
Mysql mysql = new Mysql ();
response.setContentType («text/html;charset=UTF-8»);
HttpSession session = request. getSession ();
session.setAttribute («status», Users. getNoUser ());
PrintWriter out = response. getWriter ();
try {.
mysql.initConnection ();
response.setContentType («text/html;charset=UTF-8»);
request.setCharacterEncoding («UTF-8»);
String login = request. getParameter («login»);
String pass = request. getParameter («pass»);
ResultSet rs = mysql. QuerySelect («SELECT * FROM user WHERE login='» .
+ login. trim () + «'» + «AND password='» + pass. trim () + «' LIMIT 1»);//поиск пользователя в БД.
while (rs.next ()) {.
response.setContentType («text/html;charset=UTF-8»);
String name = rs. getString («name»);
String last_name = rs. getString («last_name»);
Integer status = rs. getInt («status»);
if (Users.isTeacher (status)) {//Если преподаватель.
session.setAttribute («name», name);
session.setAttribute («last_name», last_name);
session.setAttribute («id», rs. getString («id»));
session.setAttribute («status» ,.
Mysql.MD5(Users.getTeacher ()));
out.print (Users.getTeacher ());
} else if (Users.isStudent (status)) {//Если студент.
session.setAttribute («name», name);
session.setAttribute («last_name», last_name);
session.setAttribute («id», rs. getString («id»));
session.setAttribute («status» ,.
Mysql.MD5(Users.getStudent ()));
// response. sendRedirect («student/student.jsp»);
out.print (Users.getStudent ());
} else {.
out.print (Users.getNoUser ());
}.
}.
mysql.close ();
System.out.println («Disconnected from database»);
} catch (SQLException e) {.
response.sendRedirect (request.getContextPath ());
}.
}.
Сервлет виходу з системи:
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;
import javax.servlet.http.HttpSession;
import Model. Users;
/**.
- * Servlet implementation class Logout
- */
@WebServlet («/logout»).
public class Logout extends HttpServlet {.
private static final long serialVersionUID = 1L;
protected void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {.
// TODO Auto-generated method stub.
response.setContentType («text/html;charset=UTF-8»);
HttpSession session = request. getSession (true);
PrintWriter out = response. getWriter ();
session.setAttribute («status», Users. getNoUser ());//Обнуление сессии пользователя.
response.sendRedirect («index.jsp»);
}.
/**.
- * @see HttpServlet#doPost (HttpServletRequest request, HttpServletResponse
- * response)
- */
protected void doPost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {.
// TODO Auto-generated method stub.
}.
}.
Сервлет виводу питань тестування:
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**.
- *
- * @author dante
- */
public class Questions extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
PrintWriter out = response. getWriter ();
Mysql mysql = new Mysql ();
String id_theme = request. getParameter («questions»);
String page = «questions.jsp» ;
request.setAttribute («id_theme», id_theme);
RequestDispatcher dispatcher = request. getRequestDispatcher (page);//Передача параметров на страницу.
if (dispatcher ≠ null) {.
dispatcher.forward (request, response);
}.
}.
Сервлет реєстрації:
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;
import Model. Mysql;
import Model. Users;
import java.sql.ResultSet;
@WebServlet («/register»).
public class Register extends HttpServlet {.
private static final long serialVersionUID = 1L;
protected void doGet (HttpServletRequest request,.
HttpServletResponse response) throws ServletException, IOException {.
// TODO Auto-generated method stub.
}.
protected void doPost (HttpServletRequest request,.
HttpServletResponse response) throws ServletException, IOException {.
// TODO Auto-generated method stub.
response.setContentType («text/html;charset=UTF-8»);
//указываем кодировку для данных полученых от клиента.
request.setCharacterEncoding («UTF-8»);
Mysql mysql = new Mysql ();
PrintWriter out = response. getWriter ();
try {.
String login = request. getParameter («login»);
String pass = request. getParameter («pass»);
String name = request. getParameter («name»);
String last_name = request. getParameter («last_name»);
String secret = request. getParameter («secret»);
mysql.initConnection ();
ResultSet rs = mysql. QuerySelect («SELECT login FROM user WHERE login='» + login. trim () + «'»);
if (!rs.next ()) {.
if (Users.RegisterIsTeacher (secret)) {//Втавка даннях если преподаватель.
if (mysql.QueryInsert («INSERT INTO user (login, password, name, last_name, status) VALUES ('» .
+ login. trim ().
+ «','» .
+ pass. trim ().
+ «','» .
+ name. trim ().
+ «','» .
+ last_name.trim ().
+ «','» .
+ Users. getTeacher ().
+ «')»)) {.
out.print («1»);
} else {.
out.print («0»);
}.
} else {//Если стедент.
if (mysql.QueryInsert («INSERT INTO user (login, password, name, last_name, status) VALUES ('» .
+ login. trim ().
+ «','» .
+ pass. trim ().
+ «','» .
+ name. trim ().
+ «','» .
+ last_name.trim ().
+ «', '» .
+ Users. getStudent ().
+ «')»)) {.
out.print («2»);
} else {.
out.print («0»);
}.
}.
} else {.
out.print («3»);
}.
mysql.close ();
} catch (Exception e) {.
out.print («gfh»);
e.printStackTrace ();
}.
}.
}.
Сервлет виводу результатів:
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Results extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
Mysql mysql = new Mysql ();
response.setContentType («text/html;charset=UTF-8»);
PrintWriter out = response. getWriter ();
String id = request. getParameter («student»);
//Setting JSP page.
String page = «results.jsp» ;
try {.
mysql.initConnection ();
ResultSet rss = mysql. QuerySelect («SELECT themes. theme, results. grade, results. elapsed_time, results. time_end_of_test FROM «.
+ «results INNER JOIN `user` ON user. id=results.id_user «.
+ «INNER JOIN themes ON themes. id_theme=results.id_theme «.
+ «WHERE user. id='» +id+" '");//Поиск нужных результатов по студенту.
request.setAttribute («data», rss);
} catch (SQLException e) {.
e.printStackTrace ();
}.
RequestDispatcher dispatcher = request. getRequestDispatcher (page);
if (dispatcher ≠ null) {.
dispatcher.forward (request, response);
}.
}.
Сервлет виводу списку студентів:
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpSession;
public class Student_List extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
Mysql mysql = new Mysql ();
response.setContentType («text/html;charset=UTF-8»);
PrintWriter out = response. getWriter ();
//Setting JSP page.
String page = «student_list.jsp» ;
try {.
mysql.initConnection ();
ResultSet rss = mysql. QuerySelect («SELECT * FROM user WHERE status='2' ORDER BY last_name»); //Поиск студентов в базе.
request.setAttribute («data», rss);
} catch (SQLException e) {.
e.printStackTrace ();
}.
RequestDispatcher dispatcher = request. getRequestDispatcher (page);
if (dispatcher ≠ null) {.
dispatcher.forward (request, response);
}.
}.
Сервлет виводу списку тем:
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Themes_list extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
Mysql mysql = new Mysql ();
response.setContentType («text/html;charset=UTF-8»);
PrintWriter out = response. getWriter ();
String page = «themes_list.jsp» ;
try {.
mysql.initConnection ();
ResultSet rss = mysql. QuerySelect («SELECT * FROM themes ORDER BY id_theme»); //Зпрос по выбору тем.
request.setAttribute («data», rss);
} catch (SQLException e) {.
e.printStackTrace ();
}.
RequestDispatcher dispatcher = request. getRequestDispatcher (page);//Передаем на страницу.
if (dispatcher ≠ null) {.
dispatcher.forward (request, response);
}.
}.
Сервлет виводу списка порцій теорії:
import Model. Mysql;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Theory extends HttpServlet {.
protected void processRequest (HttpServletRequest request, HttpServletResponse response).
throws ServletException, IOException {.
response.setContentType («text/html;charset=UTF-8»);
Mysql mysql = new Mysql ();
response.setContentType («text/html;charset=UTF-8»);
String id_theme = request. getParameter («theory»);
PrintWriter out = response. getWriter ();
//Setting JSP page.
String page = «theory.jsp» ;
try {.
mysql.initConnection ();
ResultSet rss = mysql. QuerySelect («SELECT * FROM theorys WHERE id_theme='» + id_theme + «' ORDER BY id_theory»);//Пошук порций теории в БД.
request.setAttribute («data», rss);
request.setAttribute («id_theme», id_theme);
} catch (SQLException e) {.
e.printStackTrace ();
}.
RequestDispatcher dispatcher = request. getRequestDispatcher (page);
if (dispatcher ≠ null) {.
dispatcher.forward (request, response);
}.
}.