sobota, 17 grudnia 2016

[Java][Spring MVC] Najprostsza aplikacja webowa

Aby stworzyć najprostszą aplikację webową musimy utworzyć nowy projekt Mavena (wybieramy w oknie ProjectExplorera New/Other lub skrót klawiszowy Ctrl+N). W następnym okienku wybieramy Maven Project:

Klikamy Next i tutaj zaznaczamy Create a simple project (skip archetype selection)

Wybieramy Next i tutaj ustawiamy jak poniżej:

Teraz gdy klikniemy Finish Maven utworzy dla nas całą strukturę katalogów, a właściwie to nasze IDE (Eclipse, STS) za pomocą wtyczki Mavena tworzy hierarchię folderów. Powinna ci się pokazać w Project Explorer taka struktura:

Teraz musimy dodać zależności Springa MVC. W tym celu otwieramy plik pom.xml. Powinien się otworzyć w edytorze plików POM, a wygląda to mniej więcej tak:

Jeśli z jakichś powodów otworzył by się inny edytor należy kliknąć PPM na pliku pom.xml i wybrać Open with, a następnie Maven POM editor. Teraz mamy dwie możliwości edycji. Pierwsza wykorzystująca zakładkę Dependencies

Dodajemy nowe zależności:

Kolejnym krokiem jest ustawienie wersji Javy w pliku pom.xml. W tym celu w zakładce Overview w sekcji Properties wybieramy Create i wpisujemy:

Drugim sposobem na edycję pliku pom.xml, jest wykorzystanie zakładki pom.xml i ręczne wprowadzanie tekstu. Nasz plik pom.xml powinien wyglądać tak:


  4.0.0
  com.packt
  webstore
  0.0.1-SNAPSHOT
  war
  
   
    org.springframework
    spring-webmvc
    4.0.3.RELEASE
   
   
    javax.servlet
    jstl
    1.2
   
   
    javax.servlet
    javax.servlet-api
    3.1.0
    provided
   
  
  
   UTF-8
   1.7
   1.7
  

W katalogu src/main/webapp tworzymy folder WEB-INF/jsp, a następnie plik welcome.jsp o treści:


<%@ page language="java" contentType="text/html; charset=UTF-8"
 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=UTF-8">
<link rel="stylesheet"
 href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
<title>Witaj</title>
</head>
<body>
 
  <div class="jumbotron">
   <div class="container">
    <h1>${greeting}</h1>
    <p>${tagline}</p>
   </div>
  </div>
 
</body>
</html> 

W Project Menager klikamy PPM na Java Resources/src/main/java i z menu kontekstowego wybieramy New/Package i tworzymy paczkę com.packt.webstore.controller.

W paczce com.packt.webstore.controller tworzymy nową klasę (PPM/New/Class) o nazwie HomeController wpisujemy do niego następującą treść:

package com.packt.webstore.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

 @RequestMapping("/")
 public String welcome(Model model) {
  model.addAttribute("greeting", "Witaj w naszym sklepie internetowym!");
  model.addAttribute("tagline", "Wyjątkowym i jedynym sklepie internetowym");
  
  return "welcome";
 }
}

Pozostało nam jeszcze utworzyć i skonfigurować serwlet przekazujący. Teraz stworzymy definicję serwleta. W katalogu src/main/webapp/WEB-INF/ utwórz plik web.xml o treści:


 
  DefaultServlet
  org.springframework.web.servlet.DispatcherServlet
 
 
  DefaultServlet
  /
 

Teraz pora na konfigurację serwleta. Tworzymy w tym samym katalogu plik o nazwie DefaultServlet-servlet.xml o treści:




 
 
 
 
  
  
 


Teraz mamy już wszystko, żeby wyświetlić naszą aplikację w przeglądarce.

Cała struktura oraz pliki wraz z treścią możecie pobrać na GitHubie pod adresem: https://github.com/lukaszres/webstore. O samym GitHubie opowiem wam później.

Podsumowując, aby aplikacja napisana z wykorzystaniem Springa zadziałała musimy utworzyć:

  • pom.xml (Project Object Model w tym pliku nakazujemy Mavenowi pobranie powiązanych ze Springiem plików JAR)
  • welcome.jsp (W tym pliku określamy, jak ma być wyświetlane, plik ten jest oparty na html.
  • controller.java (Kontroler jest klasą kontrolującą co ma być wyświetlane.
  • web.xml i servlet.xml (Definiowanie i konfiguracja serwletu przekazującego. Serwlet przekazujący analizuje adres URL podany w żądaniu i przekazuje kontrolerowi informację jakiej metody ma użyć do obsługi tego adresu URL).

encje

wtorek, 6 grudnia 2016

interscanner - skanuj swój ruch w sieci

Chciałbym zaprezentować tutaj mały programik, który powolutku sobie rozwijam. Co potrafi interscanner:
  • - skaner za pomocą komendy "netstat -e" pobiera informacje o ilości danych wysłanych i pobranych
  • - odczytuje dane z pliku dane.txt, a następnie wyświetla informację od kiedy program zaczął pomiar, ile system wysłał i odebrał danych z internetu
  • - zapisuje te dane do pliku dane.txt w tym samym katalogu, w którym znajduje się plik wykonawczy skanera
  • - jeśli pliku dane.txt jeszcze nie ma, to tworzy nowy plik

Program nie wymaga żadnej instalacji, wymaga jedynie zainstalowanego środowiska JRE.

Pobierz program

Jestem otwarty na wszelkie propozycje odnośnie tego programu, jeśli masz jakieś uwagi, zostaw komentarz na dole.

Jeśli podczas używania programu wystąpił jakiś błąd, to również proszę o kontakt ze mną w komentarzu, lub mailowo.

Screeny programu:

Do zrobienia:

  • formatowanie wyświetlania ilości danych (MB, albo chociaż dodanie spacji) aby łatwiej odczytać duże wartości.
  • zapisywanie danych podczas zamykania programu.
  • zresetowanie skanowania

poniedziałek, 5 grudnia 2016

[JAVA] Operacje na plikach tekstowych.

Zapisywanie do plików tekstowych może odbywać się na różne sposoby. Jedne są wygodniejsze w użyciu inne mniej. Nie będę tu opisywał wszystkich możliwości, a skupię się na klasach FileReader oraz FileWriter. Oczywiście przy użyciu każdej z tych klas wykorzystujemy metodę try catch, która zwraca nam w razie niepowodzenia otwarcia pliku wyjątek FileNotFoundException Poniżej zamieszczam prezentację kodu do zapisu/odczytu plików.
public class Pliki {
 public static void main(String[] args) {
  try {
   FileWriter plik = new FileWriter ("plik.txt", true);//true pozwala dopisać do pliku
   BufferedWriter out = new BufferedWriter(plik);
   out.write("jakiś tekst\r\n");//\r potrzebne jest żeby notatnik widział \n
   out.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  try {
   // Uworzenie obiektu FileReader
   FileReader fileReader = new FileReader("plik.txt"); 
   // Utworzenie obiektu bufferReader
   BufferedReader bufferReader = new BufferedReader(fileReader);
   String linia;
   while((linia = bufferReader.readLine()) != null) {
    System.out.println(linia);
   }
   fileReader.close();
  }
  catch (FileNotFoundException e) {
   e.printStackTrace();
  } 
  catch (IOException e) {
   e.printStackTrace();
  }
 }
}