Интернет Програмиране с Java
Проект 3
Информация и изисквания, отнасящи се до всички проекти
Проект 3.3 – Web Mail POP3 Client
Проект 3.4 – Web Mail SMTP Client
Всички проекти (без SearchEngine) трябва да работят само след като потребителят се идентифицира с username & password. Информацията за потребителите и паролите ще се пази в текстов файл WEB‑INF/users.txt, който ще има следния формат:
username<tab>password¿
Не е необходимо проектите да се предават като .WARархиви – достатъчно е да са организирани във валидна структура на файлове/директории, която с просто копиране в TOMCAT_HOME/webapps да заработи.
Можете свободно да използвате и променяте всичко, демонстрирано на лекциите.
Всички приложения трябва да имат error page, който обработва exception-и. При възникване на някаква грешка – например невъзможност на приложението да се свърже със зададения от потребителя POP3 сървър, този Exception да се показва в error page-а.
Да се разработи 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-а се укаже:
<img src=”…” width=”100” height=”100”/>, докато реалния размер на картинката може да е 1000x1000.
Забележка: Считайте, че структурата на директориите и картинките в тях са ви предварително зададени.
Да се разработи 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 към клиента.
За целта се изисква да се направи интерфейс, който предлага следните възможности:
Ако текстът за търсене е повече от една дума, той се разглежда като цяла фраза, т.е. думите не се търсят поотделно, а като точно съвпадащ подниз на файла. Следователно се прави разлика и между малки и главни букви.
Тъй като Главната директория за търсене може да не е поддиректория на 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 |
|
|
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 |
||||
Да се разработи 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-ите му се изважда информацията за подател, тема, дата и т.н. и тази информация се визуализира по подходящ начин.
Също така трябва да се реализира функционалност “изтриване”, която да изтрива посоченото писмо от сървъра след което страницата със списъка на писмата да се актуализира.
Да се разработи JSP/Servlet базирано Web-приложение, което да предоставя функционалност, достатъчна за изпращане на електронна поща чрез SMTP протокола.
Всеки потребител се идентифицира с потребителско име и парола.
След като бъде успешно идентифициран, потребителят влиза в страница, в която той въвежда SMTP сървър, е-mail адрес и име, които ще излизат в полето From на всички изпратени писма.
След като попълни всички полета, потребителят submit-ва формата и приложението му предоставя страница с форма, съдържаща необходимите полета за изпращане на поща:
To:
Subject:
Message:
Полето Message трябва да е многоредово поле за въвеждане на текст (<textarea>).
След submit на формата приложението изпраща писмото и показва страница обявяваща че писмото е изпратено успешно. От тази страница трябва да има линк към страницата за изпращане на писмо и потребителя да може да изпрати друго писмо.
При неуспех трябва да се извежда страница съдържаща подходящо съобщение за грешка.
Да се разработи JSP/Servlet базирано Web-приложение, което представлява електронен бележник с адреси.
В web.xml е указана Главна директория,която може и да не е поддиректория на TOMCAT_HOME/webapps. В тази главна директория има предварително създадени поддиректории за всеки отделен потребител, като името на поддиректорията съвпада с името на потребителя.
Във всяка потребителска директория има файл database.dat.
Когато потребителя се идентифицира успешно с username/password, приложението му предоставя екран, на който линк-ове за достъп до главните функции на приложението:
Един запис от указателя представлява:
Указателят представлява един файл database.dat, като всеки ред на файла представлява един запис.
Показване на съдържанието на указателя:
Трябва да се показва цялото съдържание, или да се направи поудобен начин показване по страници (paging).
От този списък трябва да има възможност да се избират записи, съответно за извършване на операциите изтриване от указателя и редактиране на записа.
Забележка:
Указателят за всеки потребител е различен. Всеки потребител си има директория съвпадаща с username му при login, в която директория има файл database.dat. Позволените операции могат да се извършват само при логнат потребител и само върху неговият файл от неговата директория.
Последна промяна: 10.06.2002