on przeznaczony do gromadzenia plików tekstowych, plików graficznych i innych. Server przetrzymuje ładowany plik w pamięci do rozmiaru 4096 jako plik

Podobne dokumenty
Wykonanie połączenia Page1-Page2: Kliknij lewym klawiszem myszy na Page1.jsp. Kliknij lewym klawiszem myszy na kontrolkę Hiperlink i przeciągnij

Lab3. Zad Wybierz opcję File/New Project. Wybierz kategorię projektu Web, a rodzaj projektu Visual Web Application 2. Kliknij na Next 3.

Lab4. ciąg dalszy lab3. 9. Konfiguracja wirualnego formularza (Configure Virtual Forms)

Lab5. 1. Ciąg dalszy laboratorium 4.

Wykład 4_2 warstwa prezentacji oraz warstwa integracji bez mapowania obiektów

Laboratorium9_10. Warstwa. zasobów Warstwa integrująca. Baza danych Warstwa. integrująca. integrująca. Warstwa. Wzorzec: Wzorzec: Wzorzec: integracji

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Lab6. Dwie tabele powiązane relacją jeden do wiele do jednej tabeli (porównaj laboratorium 3, laboratorium 5) Baza danych Sample: tabela Customer w

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Przykłady tworzenia aplikacji komponentowych w technologii JavaServer Faces 2.1 na podstawie

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Aplikacje WWW - laboratorium

Zasady rejestracji i instrukcja zarządzania kontem użytkownika portalu

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Zaawansowane aplikacje internetowe laboratorium

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Budowa prostej aplikacji wielowarstwowej. Laboratorium 1 Programowanie komponentowe Zofia Kruczkiewicz

Architektura komunikacji

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

APEX zaawansowany raport

Wybierz kategorię Java Web i typ projektu Web Application. Kliknij przycisk Next >.

Podstawowe informacje o technologii JavaEE5 Programowanie komponentowe 2

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Java EE: JSF + EJB + JPA

Zaawansowane aplikacje internetowe laboratorium

Zastosowanie komponentów EJB typu Session

Programowanie Obiektowe GUI

Programowanie wielowarstwowe i komponentowe

E:\DYDAKTYKA\ZAI\ZWWW\Laboratoria\L07\Java Persistence.doc 2011-lis-24, 17:0 Zaawansowane aplikacje internetowe Laboratorium Java Persistence.

Java EE: JSF + EJB + JPA + CDI + BV

Ćwiczenia 9 - Swing - część 1

Camspot 4.4 Camspot 4.5

Projektowanie oprogramowania. Warstwa integracji z bazą danych oparta na technologii ORM Platforma Java EE Autor: Zofia Kruczkiewicz

Ćwiczenia 2 IBM DB2 Data Studio

Programowanie komponentowe

Autor Zofia Kruczkiewicz Wzorce oprogramowania - laboratorium5_6

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Politechnika Gdańska Katedra Optoelektroniki i Systemów Elektronicznych

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

Projektowanie i wdrażanie systemów informatycznych. Dodanie aplikacji klienta uruchamianej przez przeglądarkę kontynuacja projektu:

1. W systemie Windows przejdź do Panel sterowania> Sieć i Internet> Centrum sieci i udostępniania.

Programowanie obiektowe zastosowanie języka Java SE

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 2).

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Projektowanie aplikacji internetowych laboratorium

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Zaawansowane aplikacje internetowe - laboratorium

Informatyka I : Tworzenie projektu

Aplikacje WWW - laboratorium

Aplikacje internetowe i rozproszone - laboratorium

6. Powtórz kroki z punktu 5. dla strony sorry.jsp, zmieniając jedynie treść wyświetlanego tekstu ( Niestety zamiast Witaj )

Programowanie w Javie

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Instrukcja laboratoryjna cz.2

Budowa aplikacji wielowarstwowych. Zastosowanie szablonów

Aplikacje internetowe i rozproszone - laboratorium

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Web Services (SOAP) Ćwiczenie 1

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

INFORMATOR TECHNICZNY WONDERWARE. Ograniczenie wyświetlania listy zmiennych w przeglądarce zmiennych ActiveFactory

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Zaawansowane aplikacje WWW - laboratorium

trainxx tramxx

Krok po kroku... (czyli jak stworzyć i wydrukować krzyżówkę)

Zaawansowane aplikacje internetowe - laboratorium

Galileo v10 pierwszy program

Zaawansowane aplikacje internetowe

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

Swing ćwiczenia 2 opis

Zaawansowane aplikacje internetowe - laboratorium

Instalacja oprogramowania Wonderware Application Server 3.0 na potrzeby Platformy Systemowej Wonderware

JAVA CZ.2 Programowanie obiektowe. poniedziałek, 20 kwietnia 2009

INSTRUKCJE JAK AKTYWOWAĆ SWOJE KONTO PAYLUTION

Komponent Formularz. Rys. 1. Strona programu Joomla - Rys. 2. Instalacja komponentu

Henryk Budzisz. materiały przygotowane w ramach projektu ZPORR nr POKL /08-00

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

Problemy techniczne SQL Server

Bezpieczne uruchamianie apletów wg

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

Oracle Application Express

Problemy techniczne SQL Server

Protokół JDBC współpraca z relacyjnymi bazami danych lab4. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Aplikacje WWW - laboratorium

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Programowanie w środowisku graficznym GUI

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Programowanie komponentowe 5

Transkrypt:

Lab2. Zad.1. Zastosowanie komponentu File Upload. Komponent ten pozwala uŝytkownikowi aplikacji internetowej zlokalizować pliki w systemie i zapisać pliki na serwerze. Jest on przeznaczony do gromadzenia plików tekstowych, plików graficznych i innych. Zawartość ładowanego pliku jest ładowana razem z informacją o pliku: nazwą pliku, rozmiarem pliku oraz typem MIME (text/plan lub image/jpeg). Server przetrzymuje ładowany plik w pamięci do rozmiaru 4096 jako plik tymczasowy. MoŜna ten rozmiar zmienić modyfikując parametr sizethreshold w pliku web.xml za pomocą edytora XML. Przypadki ładowania pliku: Wskazanie miejsca do przechowania pliku (zad.1) Utworzenie właściwości UploadedFile w backing bean i przypisanie jej do wartości zwracanej przez komponent np. przy opuszczaniu strony jako obsługa typu action przycisku. Zapisanie pliku do bazy danych. Domyślnie, komponent File Upload pozwala pobierać pliki do rozmiaru 1 MB. Ta wielkość moŝe ulec zmianie przez ustawieniu filtru w edytorze XML pliku web.xml dokonując zmiany wartości parametru maxsize. 1. Wybierz opcję File/New Project. Wybierz kategorię projektu Web, a rodzaj projektu Web Application 2. Kliknij na Next 3. Podaj nazwę projektu (Project name), wybierz katalog (Project Location) 4. Wybierz domyślny serwer aplikacji GlassFish V2 z listy Server oraz wersję Javy Enterprise (Java 5 EE Version) wybierz domyślne wartości. 5. Kliknij na Next, wybierz Visual Web JavaServer Faces i naciśnij Finish. 6. Okno projektu (Projects) zawiera układ plików typu BluePrints. Plik Page1.jsp jest stroną startową napisaną w języku JSP i znajduje się w podkatalogu Web-Pages. 7. Okno Files zawiera układ fizyczny plików. Plik Page1.jsp oraz Page1.java stanowią całość- plik Page1.java obsługuje główną stronę jsp.

8. Zaprojektuj stronę Page1 korzystając z Palette 8.1. Przeciągnij kontrolkę Label i File Upload. W oknach Properties obu kontrolek nazwy ich są standardowe:label1 i fileupload1. Nazwy te moŝna zmieniać. Na komponencie Label napisz np. Załaduj plik graficzny 8.2. Przeciągnij dwa przyciski Button i napisz na nich: Załaduj plik graficzny (na pierwszym) oraz Załaduj plik graficzny w dedykowanym katalogu (na drugim). 8.3. Przeciągnij kontrolkę Message Group 8.4. Wstaw cztery komponenty typu Label kolejno wpisując tekst na nich: Nazwa pliku, Typ pliku, Rozmiar pliku, URL oraz cztery komponenty typu Static Text. 8.5. Przeciągnij kontrolkę Label i File Upload. W oknach Properties obu kontrolek nazwy ich są standardowe:label6 i fileupload2. Na kontrolce Label napisać Załaduj plik tekstowy, 8.6. Przeciągnij przycisk Button (id=button3) i napisz na nim: Załaduj plik tekstowy. 8.7. Wstaw komponent Image (id=image1) i w okienku Properties w polu url wywołaj edytor ( ) i poszukaj na dysku plik graficzny w np. w formacie JPEG i przypisz go do pola url. 8.8. Wstaw komponent Tekst Area (textarea1) oraz komponent Label (label7). Na komponencie Label napisz tekst Zawartość pliku tekstowego. W okienku Properties komponentu textarea1 właściwość rows ustawić na 10.

8.9. Wybierz z wyskakującego menu po kliknięciu prawego klawisza myszy opcję Preview in Browser, aby zobaczyć widok wyjściowy tworzonej strony. 9. Uzupełnij kod aplikacji w trybie Java strony Page1 (klasa Page1 dziedziczy od klasy AbstractPageBean) 9.1. Dwa atrybuty klasy: private String realimagefilepath; //ścieŝka do pliku na serwerze private static final String IMAGE_URL = "/resources/image-file"; // ścieŝka logiczna do pliku w aplikacji internetowej 9.2. metoda init() - po wpisaniu kodu (tekst wytłuszczony) nacisnąć klawisze Alt-Shift-F (w celu sformatowania tekstu) oraz Ctrl-Shift-I (w celu importu pakietów) public void init() { super.init(); // Perform application initialization that must complete // *before* managed components are initialized // TODO - add your own initialiation code here // Managed Component Initialization // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here ServletContext theapplicationsservletcontext = (ServletContext) this.getexternalcontext().getcontext(); this.realimagefilepath = theapplicationsservletcontext.getrealpath(image_url);

9.3. metoda prerender() public void prerender() { String uploadedfilename = (String)this.staticText1.getValue(); if ( uploadedfilename!= null ) { image1.seturl(image_url); // wstawienie wprowadzonego pliku do komponentu Image 9.4. metoda obsługująca akcję przycisku Załaduj plik graficzny (naleŝy kliknąć na ten przycisk strona Page1 będzie w trybie pliku Java) public String button1_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. UploadedFile uploadedfile = fileupload1.getuploadedfile(); String uploadedfilename = uploadedfile.getoriginalname(); // Some browsers return complete path name, some don't // Make sure we only have the file name // First, try forward slash int index = uploadedfilename.lastindexof('/'); String justfilename; if ( index >= 0) { justfilename = uploadedfilename.substring( index + 1 ); else { // Try backslash index = uploadedfilename.lastindexof('\\'); if (index >= 0) { justfilename = uploadedfilename.substring( index + 1 ); else { // No forward or back slashes justfilename = uploadedfilename; this.statictext1.setvalue(justfilename); Long uploadedfilesize = new Long(uploadedFile.getSize()); this.statictext3.setvalue(uploadedfilesize); String uploadedfiletype = uploadedfile.getcontenttype(); this.statictext2.setvalue(uploadedfiletype); this.statictext4.setvalue(this.realimagefilepath); if ( uploadedfiletype.equals("image/jpeg") uploadedfiletype.equals("image/pjpeg") uploadedfiletype.equals("image/gif") uploadedfiletype.equals("image/png") uploadedfiletype.equals("image/x-png")) { try { File file = new File(this.realImageFilePath); uploadedfile.write(file); catch (Exception ex) { error("cannot upload file: " + justfilename); //komunikat wyświetlany w Message Group else { //komunikat wyświetlany w Message Group error("you must upload a JPEG, PJPEG, GIF, PNG, or X-PNG file."); new File(this.realImageFilePath).delete(); return null; Metoda wyświetla informację dodatkową o załadowanym pliku oraz zapamiętuje plik w zmiennej pliku this.realimagefilepath. NaleŜy nacisnąć klawisze Alt-Shift-F (w celu sformatowania tekstu) oraz Ctrl-Shift-I (w celu importu pakietów)

9.5. Metoda obsługująca klawisz Załaduj plik graficzny w dedykowanym katalogu (zapis w istniejącym katalogu) -(naleŝy kliknąć na ten przycisk strona Page1 będzie w trybie pliku Java) public String button2_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. UploadedFile uploadedfile = fileupload1.getuploadedfile(); String uploadedfilename = uploadedfile.getoriginalname(); // Some browsers return complete path name, some don't // Make sure we only have the file name // First, try forward slash int index = uploadedfilename.lastindexof('/'); String justfilename; if ( index >= 0) { justfilename = uploadedfilename.substring( index + 1 ); else { // Try backslash index = uploadedfilename.lastindexof('\\'); if (index >= 0) { justfilename = uploadedfilename.substring( index + 1 ); else { // No forward or back slashes justfilename = uploadedfilename; this.statictext1.setvalue(justfilename); Long uploadedfilesize = new Long(uploadedFile.getSize()); this.statictext3.setvalue(uploadedfilesize); String uploadedfiletype = uploadedfile.getcontenttype(); this.statictext2.setvalue(uploadedfiletype); this.statictext4.setvalue(this.realimagefilepath); try { File file = new File("C:/upload/images" + File.separatorChar + justfilename); //w znanym miejscu na serwerze katalog musi istnieć uploadedfile.write(file); catch (Exception ex) { error("cannot upload file: " + statictext1); //komunikat wyświetlany w Message Group return null; 9.6. Metoda obsługująca klawisz Załaduj plik tekstowy -(naleŝy kliknąć na ten przycisk strona Page1 będzie w trybie pliku Java) public String button3_action() { // TODO: Process the action. Return value is a navigation // case name where null will return to the same page. UploadedFile uploadedfile = (UploadedFile) fileupload2.getuploadedfile(); //komunikat wyświetlany w Message Group info("uploaded file originally named ' " + uploadedfile.getoriginalname() + " ' of size ' " + uploadedfile.getsize() + " ' "); textarea1.settext(uploadedfile.getasstring()); return null;

9.7. Uruchom aplikację (Kliknij prawym klawiszem myszy w oknie Project na nazwę projektu, w ukazanym oknie uruchom kolejno Build Project, Deploy Project, Run Project) i uruchom poszczególne funkcje aplikacji.

Table 1: Input Components Component Description Palette Section Text Field An input field for a single line of text. Text Area An input field for multiple lines of text. Password Field An input field that echoes the input characters with a replacement character to mask the input. Calendar An input field with a pop-up calendar that allows the user to select a date. Drop Down List Listbox A drop-down menu, also referred to as a combo box. A list from which the user can select either one item or multiple items, depending on how the component is configured. Checkbox A single-character box that the user can either select (check) or clear. Radio Button A single radio button that the user can select (check). Add Remove List File Upload Two lists (one for available options, one for selected options) with buttons to move the options between the lists, and to order the selected options. A component with a text input field and a Browse button that displays a file chooser for specifying a file to upload. The application uploads the specified file when the user submits the page. Composite Table 2: Display Components Component Description Palette Section Static Text Field for displaying text. Label Text field that can be associated with an input field and for which you can specify a weak, medium, or strong font style. Image Inline image. Message Message Group Alert Page Alert Text field that is linked to a specific component for displaying validation errors and other messages about that component. Text field for displaying runtime error messages, program generated error messages, and, optionally, validation errors and other messages about components that are on the page. Displays an icon and informational text such as a warning, an error, or the successful completion of some event. Similar to an Alert component, but is intended for displaying the icon and information on a separate page. Composite

Table 3: Grouping Components Component Description Palette Section Checkbox Group Displays two or more check boxes in a grid layout. Radio Button Group Table, Table Row Group, and Table Column Displays two or more radio buttons in a grid layout and ensures that only one button can be selected at a time. Displays data from a composite data type such as a database table or an array. Tree and Tree Node Renders an expandable list in a tree structure. Tab Set and Tab Grid Panel Displays different layouts on the same page. Also can be used as a navigational tool. Organizes the components within a layout of rows and columns. Group Panel Groups a set of components in flow layout mode. Panel Property Sheet, Property Sheet Section, and Property Breadcrumbs Page Fragment Box Use to group a set of components in flow layout mode or grid layout mode. Lays out a single column of labeled components quickly, and divides the components into sections. Lays out a series of link components separated by right angle brackets (>). Groups components that you want to consistently display on two or more pages. Composite Table 4: Action Components Component Description Palette Section Button Button that submits the associated form. Hyperlink Text field that submits a URL or submits a form. Image Hyperlink Image that submits a URL or submits a form. Tree Node Tab Subcomponent of a Tree or Tree Node. A leaf tree node can optionally submit a URL or submit a form. Subcomponent of a Tab Set or a Tab. A tab can optionally submit a URL or submit a form. Composite