Advertisement
Guest User

Untitled

a guest
Jun 9th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.95 KB | None | 0 0
  1. package kontroler;
  2.  
  3.  
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6.  
  7. import javax.servlet.ServletContext;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.annotation.WebServlet;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import javax.servlet.http.HttpSession;
  14.  
  15. import model.MHbaza;
  16. import model.MHuzytkownik;
  17. import model.Narzedzia;
  18. @WebServlet("/MH")
  19. public class MH extends HttpServlet {
  20. private static final long serialVersionUID = 1l;
  21.  
  22. public MH(){
  23. super();
  24. }
  25.  
  26. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  27. doPost(request, response);}
  28.  
  29. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. response.setContentType("text/html; charset=utf-8");
  31.  
  32. PrintWriter out = response.getWriter();
  33. ServletContext context = getServletContext();
  34.  
  35. String sciazkaMH = context.getRealPath("/WEB-INF/");
  36. MHbaza baza = new MHbaza(sciazkaMH);
  37.  
  38. HttpSession sesja = request.getSession();
  39.  
  40. MHuzytkownik uzytkownik = (MHuzytkownik) sesja.getAttribute("uzytkownik");
  41.  
  42. if (uzytkownik==null){
  43. uzytkownik = new MHuzytkownik();
  44. sesja.setAttribute("uzytkownik", uzytkownik);
  45. }
  46.  
  47. String komunikat = "Nieprawidlowy login lub haslo";
  48.  
  49. String akcja = request.getParameter("akcja");
  50. if(akcja==null) akcja="";
  51. System.out.println(akcja);
  52.  
  53. if(akcja.equals("zaloguj"))
  54.     {String login = request.getParameter("login");
  55.     String haslo = request.getParameter("haslo");
  56.  
  57.     if(login==null) login="";
  58.     if(haslo==null) haslo="";
  59. //tu filtracja loginu i hasla z formularza
  60.  
  61. uzytkownik = baza.zalogujUzytkownika(login, haslo);
  62. System.out.println(uzytkownik);
  63. sesja.setAttribute("uzytkownik", uzytkownik);
  64. if (uzytkownik.getId()>0) komunikat = "Zostałeś zalogowany jako <b>"+login+"</b>";
  65.  
  66. /*if((login.equals("user")) &(haslo.equals("user")))
  67. {
  68. uzytkownik.setLogin(login);
  69. uzytkownik.setUprawnienia(1);
  70. sesja.setAttribute("uzytkownik", uzytkownik);
  71. komunikat = "Zostales zalogowany jako <b>"+login+</b>;
  72. }
  73. if((login.equals("admin")) &(haslo.equals("admin")))
  74. {
  75. uzytkownik.setLogin(login);
  76. uzytkownik.setUprawnienia(2);
  77. sesja.setAttribute("uzytkownik", uzytkownik);
  78. komunikat = "Zostales zalogowany jako <b>"Administrator/b>;
  79. } */
  80. }
  81.  
  82. else if (akcja.equals("wyloguj"))
  83. {
  84. //uzytkownik.setLogin("");
  85. //uzytkownik.setUprawnienia(-1);
  86. uzytkownik = new MHuzytkownik();
  87. sesja.setAttribute("uzytkownik", uzytkownik);
  88. komunikat = "zostales prawidlowo wylogowany";
  89. }
  90. else if(akcja.equals("ustawienia"))
  91. {  
  92.     String imie=request.getParameter("imie");
  93.     String nazwisko = request.getParameter("nazwisko");
  94.     String wiek = request.getParameter("wiek");
  95.  
  96. if(imie==null) imie="";
  97. if(nazwisko==null) nazwisko="";
  98. if(wiek==null) wiek="";
  99.  
  100. uzytkownik.setImie(imie);
  101. uzytkownik.setNazwisko(nazwisko);
  102. uzytkownik.setWiek(Narzedzia.parsujInteger(wiek, -1));
  103.  
  104. baza.zapiszUstawienia(uzytkownik.getId(), uzytkownik.getImie(), uzytkownik.getNazwisko(), uzytkownik.getWiek());
  105.  
  106. String login = uzytkownik.getLogin();
  107. int uprawnienia = uzytkownik.getUprawnienia();
  108.  
  109. uzytkownik.setLogin(login);
  110. uzytkownik.setUprawnienia(uprawnienia);
  111.  
  112. sesja.setAttribute("uzytkownik", uzytkownik);
  113.  
  114. komunikat = "ustawiewnia zostaly zapisane";}
  115.  
  116. else if (akcja.equals("administracja"))
  117. { if(uzytkownik.getUprawnienia()==2)
  118. {
  119. String kolor = request.getParameter("kolor");
  120. if (kolor==null) kolor="white";
  121.  
  122. context.setAttribute("kolorTla", kolor);
  123. komunikat = "kolor tla zostal zmieniony";
  124. }
  125. }
  126. else
  127. komunikat = "nieprawidlowe wywolanie";
  128.  
  129. String szablon = Narzedzia.pobierzSzablon("komunikat.html", context);
  130. szablon = szablon.replace("[KOMUNIKAT]", komunikat);
  131.  
  132. String kolorTla = (String) context.getAttribute("kolorTla");
  133. if(kolorTla==null) kolorTla="white";
  134.  
  135. szablon = szablon.replace("[KOLORTLA]", kolorTla);
  136. out.println(szablon);
  137. baza.zamknijPolaczenie();
  138. }
  139. }
  140.  
  141. ----------------------------------------------------------------
  142. package model;
  143.  
  144.  
  145. import java.sql.Connection;
  146. import java.sql.DriverManager;
  147. import java.sql.PreparedStatement;
  148. import java.sql.ResultSet;
  149. import java.sql.SQLException;
  150. import java.sql.Statement;
  151.  
  152. public class MHbaza{
  153.  
  154. private static final String DRIVER = "org.sqlite.JDBC";
  155. public static String DB_URL = "jdbc:sqlite:MHbaza.sqlite";
  156. private Connection conn;
  157. private Statement stat;
  158.  
  159. public MHbaza(String sciezka){
  160. DB_URL = "jdbc:sqlite:" + sciezka + "\\MHbaza.sqlite";
  161.  
  162. try{
  163. Class.forName(MHbaza.DRIVER);
  164. }catch (ClassNotFoundException e){
  165. System.err.println("Brak sterownika JBDC");
  166. e.printStackTrace();}
  167.  
  168. try {
  169. conn= DriverManager.getConnection(DB_URL);
  170. stat = conn.createStatement();}
  171. catch (SQLException e) {
  172. System.err.println("Problem z otwarciem polaczenia");
  173. e.printStackTrace();
  174. }
  175. System.out.println("Otwarto bazę: "+DB_URL);
  176. stworzTablice();
  177. }
  178.  
  179. public boolean czyTabelaIstnieje(String nazwaTabeli)
  180. { String count = "";
  181. try{
  182. ResultSet result =
  183. stat.executeQuery("SELECT name FROM sqlite_master " + "WHERE type='table' AND name='"+nazwaTabeli+"'");
  184. while (result.next()){
  185. count = result.getString("name");
  186. }
  187. }catch (SQLException e) {
  188. e.printStackTrace();
  189. return false;
  190. }
  191. return (count.length()>0);
  192. }
  193.  
  194. public boolean stworzTablice() {
  195. String createUzytkownicy = "CREATE TABLE IF NOT EXISTS uzytkownicy"
  196. + " (id INTEGER PRIMARY KEY AUTOINCREMENT, "
  197. + " login varchar(255), haslo varchar(255), uprawnienia int)";
  198. String createUstawienia = "CREATE TABLE IF NOT EXISTS ustawienia"
  199. + "(id INTEGER PRIMARY KEY AUTOINCREMENT, "
  200. + " id_uzytkownika int, imie varchar(255), nazwisko varchar(255), "
  201. + " wiek int)";
  202.  
  203. try {
  204. if(!czyTabelaIstnieje("uzytkownicy")){
  205. stat.execute(createUzytkownicy);
  206. System.out.println("Tworzenie tabeli uzytkownicy");
  207. wstawUzytkownikow();}
  208.  
  209. try {
  210. if(!czyTabelaIstnieje("ustawienia")){
  211. stat.execute(createUstawienia);
  212. System.out.println("Tworzenie tabeli ustawienia");
  213. zapiszUstawienia(pobierzIdUzytkownika("user"), "", "", -1);
  214. zapiszUstawienia(pobierzIdUzytkownika("admin"), "", "", -1);
  215. }
  216. }catch(SQLException e){
  217. System.err.println("Błąd przy tworzeniu tabel");
  218. e.printStackTrace();
  219. return false;
  220. }
  221. return true;
  222. }
  223.  
  224. public boolean wstawUzytkownikow()
  225. {try {
  226. PreparedStatement statementUzytkownicy1 =
  227. conn.prepareStatement("INSERT INTO uzytkownicy " + "values (NULL, ? ,?, ?);");
  228. statementUzytkownicy1.setString(1, "user");
  229. statementUzytkownicy1.setString(2, "user");
  230. statementUzytkownicy1.setInt(3, 1);
  231. statementUzytkownicy1.execute();
  232.  
  233. PreparedStatement statementUzytkownicy2 =
  234. conn.prepareStatement("INSERT INTO uzytkownicy " + "values (NULL, ? ,?, ?);");
  235. statementUzytkownicy2.setString(1, "admin");
  236. statementUzytkownicy2.setString(2, "admin");
  237. statementUzytkownicy2.setInt(3, 2);
  238. statementUzytkownicy2.execute();
  239. }catch (SQLException e) {
  240. System.err.println("Błąd przy wstawianiu użytkowników");
  241. e.printStackTrace();
  242. return false;}
  243. return true;}
  244.  
  245. public boolean zapiszUstawienia(int id_uzytkownika, String imie, String nazwisko, int wiek) {
  246. try {
  247. PreparedStatement statementUstawienia = conn.prepareStatement("INSERT INTO ustawienia " + "values (NULL, ?, ?, ?,?);");
  248.  
  249. statementUstawienia.setInt(1, id_uzytkownika);
  250. statementUstawienia.setString(2, imie);
  251. statementUstawienia.setString(3, nazwisko);
  252. statementUstawienia.setInt(4, wiek);
  253. statementUstawienia.execute();
  254. }catch (SQLException e) {
  255. System.err.println("Błąd przy zapisywaniu ustawień");
  256. e.printStackTrace();
  257. return false;
  258. }
  259. return true;
  260. }
  261.  
  262. public int pobierzIdUzytkownika(String login){
  263. int id =-1;
  264. try{
  265. ResultSet wynik = stat.executeQuery("SELECT * FROM uzytkownicy " + "where login'"+login+"' LIMIT 1");
  266. while(wynik.next()){
  267. id = wynik.getInt("id");
  268. }
  269. }catch (SQLException e) {
  270. e.printStackTrace();
  271. id = -1;
  272. }
  273. return id;
  274. }
  275.  
  276. public void zamknijPolaczenie(){
  277. try{
  278. conn.close();
  279. }catch(SQLException e) {
  280. System.err.println("Problem z zamknieciem polaczenia");
  281. e.printStackTrace();
  282. }
  283. System.out.println("Zakmnieto polaczenie z baza");
  284. }
  285.  
  286. public MHuzytkownik zalogujUzytkownika(String l, String h){
  287. int id =-1;
  288. int uprawnienia = -1;
  289. String login = "";
  290. String haslo = "";
  291. String imie = "";
  292. String nazwisko = "";
  293. int wiek = -1;
  294.  
  295. MHuzytkownik uzytkownik = new MHuzytkownik();
  296. try{
  297. String zapytanie = "SELECT * FROM uzytkownicy, ustawienia "
  298. + "WHERE uzytkownicy.login = '" + l + "' "
  299. + "and ustawienia.id_uzytkownika = uzytkownicy.id "
  300. + "ORDER BY ustawienia.id DESC LIMIT 1; ";
  301. ResultSet wynik = stat.executeQuery(zapytanie);
  302. while(wynik.next()){
  303. id = wynik.getInt("id_uzytkownika");
  304. login = wynik.getString("login");
  305. haslo = wynik.getString("haslo");
  306. uprawnienia = wynik.getInt("uprawnienia");
  307. imie = wynik.getString("imie");
  308. nazwisko = wynik.getString("nazwisko");
  309. wiek = wynik.getInt("wiek");
  310. }
  311. }catch (SQLException e) {
  312. System.err.println("Błąd bazy przy logowaniu uzytkownika");
  313. e.printStackTrace();
  314. uzytkownik = new MHuzytkownik();
  315. }
  316. if ((login.equals(1)) && (haslo.equals(h))) {
  317. uzytkownik = new MHuzytkownik(id, login, uprawnienia, imie, nazwisko, wiek);}
  318. return uzytkownik;
  319. }
  320. }
  321.  
  322. -------------------------------------------------------
  323. package model;
  324.  
  325.  
  326.  
  327. public class MHuzytkownik {
  328. private int id = -1;
  329. private String login = "";
  330. private int uprawnienia = -1;
  331. //-1 niezalogowany 1 zalogowany 2 admin
  332.  
  333. private String imie = "";
  334. private String nazwisko = "";
  335. private int wiek = -1;
  336.  
  337. public MHuzytkownik(){
  338. }
  339. public MHuzytkownik(int id, String login, int uprawnienia, String imie, String nazwisko, int wiek) {
  340. super();
  341. this.id = id;
  342. this.login = login;
  343. this.uprawnienia = uprawnienia;
  344. this.imie = imie;
  345. this.nazwisko = nazwisko;
  346. this.wiek = wiek;}
  347.  
  348. public int getId() {
  349. return id;}
  350.  
  351. public String getImie(){
  352. return imie;}
  353.  
  354. public void setImie(String imie){
  355. this.imie = filtruj(imie);}
  356.  
  357. public String getNazwisko(){
  358. return nazwisko;}
  359.  
  360. public void setNazwisko(String nazwisko){
  361. this.nazwisko = filtruj(nazwisko);}
  362.  
  363. public int getWiek(){
  364. return wiek;}
  365.  
  366. public void setWiek(int wiek){
  367. this.wiek=wiek;}
  368.  
  369. public String getLogin(){
  370. return login;}
  371.  
  372. public void setLogin(String login){
  373. this.login = login;}
  374.  
  375. public int getUprawnienia(){
  376. return uprawnienia;}
  377.  
  378. public void setUprawnienia(int uprawnienia){
  379. this.uprawnienia = uprawnienia;}
  380.  
  381. public String getWieks() {
  382. if (this.wiek>=0)
  383. return ""+this.wiek;
  384. else return "";}
  385.  
  386. public static String filtruj(String wejscie){
  387. StringBuffer filtrowane = new StringBuffer();
  388. char c;
  389.  
  390. for (int i=0; 0<wejscie.length(); i++)
  391. { c= wejscie.charAt(i);
  392. switch(c)
  393. {
  394. case '<': filtrowane.append("&lt;"); break;
  395. case '>': filtrowane.append("&gt;"); break;
  396. case '"': filtrowane.append("&quot;"); break;
  397. case '&': filtrowane.append("&amp;"); break;
  398. default: filtrowane.append(c);
  399. }
  400. }
  401. return filtrowane.toString();
  402. }
  403.  
  404. public String toString(){
  405. return "MHuzytkownik [id=" + id + ", login=" + login + ", uprawnienia=" + uprawnienia + ", imie=" + imie + ", nazwisko=" + nazwisko + ", wiek=" + wiek + "]";
  406. }
  407. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement