Интернет Програмиране с Java Проект 3



Дата22.01.2018
Размер103.87 Kb.
Размер103.87 Kb.

Интернет Програмиране с Java
Проект 3


Информация и изисквания, отнасящи се до всички проекти 2

Проект 3.1 – Web Photo Album 3

Проект 3.2 – Search Engine 4

Проект 3.3 – Web Mail POP3 Client 6

Проект 3.4 – Web Mail SMTP Client 7

Проект 3.5 – Web Address Book 8


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

Всички проекти (без SearchEngine) трябва да работят само след като потребителят се идентифицира с username & password. Информацията за потребителите и паролите ще се пази в текстов файл WEB INF/users.txt, който ще има следния формат:


usernamepassword
Не е необходимо проектите да се предават като .WAR архиви – достатъчно е да са организирани във валидна структура на файлове/директории, която с просто копиране в TOMCAT_HOME/webapps да заработи.

Можете свободно да използвате и променяте всичко, демонстрирано на лекциите.

Всички приложения трябва да имат error page, който обработва exception-и. При възникване на някаква грешка – например невъзможност на приложението да се свърже със зададения от потребителя POP3 сървър, този Exception да се показва в error page-а.

Проект 3.1 – Web Photo Album

Да се разработи JSP/Servlet базирано Web-приложение, служещо за разглеждане на фото албум. Фото албумът представлява съвкупност от графични изображения, записани във файлове (.gif и .jpg) и разположени в преварително фиксирана директория на твърдия диск. Фото албумът може да е дървовидно организиран, като дървото отразява дървото на директориите с картинките, имащо за корен главната директория на фотоалбума.


В web.xml е указана Главна директория на картинките, която може и да не е поддиректория на TOMCAT_HOME/webapps. В тази главна директория има предварително създадени поддиректории за всеки отделен потребител, като името на поддиректорията съвпада с името на потребителя.
Във всяка потребителска директория има файлове с картинки (.gif & .jpg), а също така и поддиректории, които също съдържат картинки и могат да съдържат от своя страна поддиректории и т.н.
Когато потребителят се идентифицира успешно с username/password, приложението му предоставя екран, на който има изобразени като линк-ове поддиректориите на Главната директория, ако има такива, и всички картинки от тази директория изобразени в умален вид – така наречените thumbnails. При щракване върху умалената картинка програмата показва картинката в реални размери, а при щракване на линк към поддиректория тя се дисплейва по начина, по който се дисплейва Главната директория.
Тъй като Главната директория с картинките може да не е поддиректория на TOMCAT_HOME/webapps/…./, няма да е възможно достъпът до картинките да става чрез прости link-ове. Ще трябва да напишете servlet, който по някакъв request параметър, например realfn да връща като резултат зададения файл.

Заявката към този servlet може да изглежда по начин, подобен на този (ако сървлета се казва getpic):



http://localhost:8080/photoalbum/getpic?realfn=c:\temp\boris\pic.jpg
В отговора си сървлета трябва да сложи content-type на image/jpg или image/gif, за да може web-браузърът да го покаже по подходящ начин.
Забележка: Thumbnail-четата могат да се направят като на реалната картинка в HTML-а се укаже:

, докато реалния размер на картинката може да е 1000x1000.
Забележка: Считайте, че структурата на директориите и картинките в тях са ви предварително зададени.

Проект 3.2 – Search Engine

Да се разработи JSP/Servlet базирано Web-приложение, чрез което може да се търси текст във всички файлове, които се намират в някоя предварително фиксирана директория и или в някоя от нейните поддиректории. Намерените файлове да могат да се изтеглят от Web-браузера на клиента, задал търсенето, чрез кликване върху съответен линк.


В web.xml е указана Главна директория за търсене, която може и да не е поддиректория на TOMCAT_HOME/webapps. Тази главна директория указва от къде ще се извършва търсенето.
Например:

Ако изберем Главна директория за търсене да е C:\, то тогава се очаква по зададената последователност от символи (т.е. текста за търсене), да се претърси директорията C:\ както и всички нейни поддиректории т.е в този случай ще търсим по във всички файлове от C: устройство. Търсенето е рекурсивно, т.е алгоритъмът е следният:


1. Претърсваме всички файлове в текущата директория.

2. Ако текущата директория има поддиректории, то отиваме към стъпка 3, ако не стъпка 4.

3. Избираме поредната поддиректорията за текуща и отиваме на стъпка 1.

4. Излизаме от текущата директория и продължаваме със следващата поддиректория на стъпка 3, ако няма такава излизаме.


Във всяка директория може да има всякакви файлове.Типът и размерът на файловете не е от значение.

Целта на проекта е през Web interface (JSP/Servlets) да се направи възможно търсенето и тегленето на файлове от сървъра, като нямаме директен достъп до съответните файлове.Например тегленето на файл ще се осъществи от сървлет, който в зависимост от тип на файл, ще определя съответния content-type към клиента.


За целта се изисква да се направи интерфейс, който предлага следните възможности:


  1. Текстово поле за въвеждане на търсения текст.

  2. Едно checkbox поле с което да се задава търсенето да се извършва и в самото съдържание на файловете, а ако не е избрано да се търси само по имената на файловете. (като търсенето в съдържанието на файла е основно и задължително, т.е. търсенето в имената е с по-малка тежест при оценяване).

  3. Съответно файловете, които съдържат търсения текст трябва да се визуализират “подходящо”, така че да може лесно да се избират, при което да имаме възможност за download. (Възможно решение е всички генерирани линкове да сочат към Servlet, който да слага подходящ Content-Type и да ни го предоставя за download).

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


Тъй като Главната директория за търсене може да не е поддиректория на TOMCAT_HOME/webapps/…./(което е почти сигурно;), няма да е възможно файловете да се смъкват като прости link-ове. Ще трябва да напишете servlet, който по някакъв request параметър, например downlf да връща като резултат картинката. Заявката към този servlet може да изглежда по следния начин (ако сървлета се казва getpic):
http://localhost:8080/searchengine/getfile?downlf=c:\temp\niki\Projects3.doc
Ето и списък от Content-Type-овете, които трябва да се поддържат във формат тип на файл / Content-Type:


.au

audio/basic




.mpeg

video/mpeg

.avi

video/x-msvideo




.mpg

video/mpeg

.bmp

image/bmp




.mp2

audio/mpeg

.css

text/css




.mp3

audio/mpeg

.doc

application/msword




.pdf

application/pdf

.dll

application/x-msdownload




.png

image/png

.exe

application/x-msdownload




.ps

application/postscript

.gif

image/gif




.ra

audio/x-realaudio

.htm

text/html




.tar

application/x-tar

.html

text/html




.rtf

application/rtf

.jpe

image/jpeg




.tif

image/tiff

.jpeg

image/jpeg




.tiff

image/tif

.jpg

image/jpeg




.txt

text/plain

.js

application/x-javascript




.wav

audio/x-wav

.mid

audio/midi




.xls

application/vnd.ms-excel

.midi

audio/midi




.xml

text/xml

.mov

video/quicktime




.zip

application/x-zip-compressed

за всички останали

application/octet-stream

Проект 3.3 – Web Mail POP3 Client

Да се разработи JSP/Servlet базирано Web-приложение, което да предоставя функционалност, достатъчна за проверка на електронна пощенска кутия през POP3 протокола и елементарно показване на получените писма.


Всеки потребител се идентифицира с потребителско име и парола.
След като бъде успешно идентифициран, потребителят влиза в страница, в която да въвежда POP3 сървър, username и password за този сървър.
След submit на тази форма потребителят вижда страница със всички изтеглени от този сървър писма във вид на таблица.
Таблицата трябва да изглежда по следния начин:


Дата

Subject

Sender

Size

22.05.2002

Zdrasti

boris@abv.bg

1045 bytes

27.05.2002

Hi, wanna chat?

some@yahoo.com

575 bytes

04.06.2002

Pismo ot mama

mama@home.org

123456 bytes

Стойностите в колоната Subject трябва да са линк-ове, като при щракването да един от тези линкове излиза страница, която показва цялото писмо. Показването на писмото се състои в изпечатването на съдържанието на самото писмо, като от HEADER-ите му се изважда информацията за подател, тема, дата и т.н. и тази информация се визуализира по подходящ начин.


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

Проект 3.4 – Web Mail SMTP Client

Да се разработи JSP/Servlet базирано Web-приложение, което да предоставя функционалност, достатъчна за изпращане на електронна поща чрез SMTP протокола.


Всеки потребител се идентифицира с потребителско име и парола.
След като бъде успешно идентифициран, потребителят влиза в страница, в която той въвежда SMTP сървър, е-mail адрес и име, които ще излизат в полето From на всички изпратени писма.
След като попълни всички полета, потребителят submit-ва формата и приложението му предоставя страница с форма, съдържаща необходимите полета за изпращане на поща:

To:


Subject:

Message:


Полето Message трябва да е многоредово поле за въвеждане на текст (


Сподели с приятели:


©zdrasti.info 2017
отнасят до администрацията

    Начална страница