24.12.2014 Views

Download - Svetlin Nakov

Download - Svetlin Nakov

Download - Svetlin Nakov

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Стандартно Java аплетите могат да осъществяват достъп до HTML страницата,<br />

от която са заредени. Тази възможност може да бъде използвана за<br />

да се вземе от HTML формата името на файла, който потребителят ще<br />

изпраща, за да бъде прочетено и подписано съдържанието на този файл.<br />

Резултатът от подписването може да бъде върнат в някое поле от същата<br />

HTML форма. Да разгледаме техническите средства за връзка между java<br />

аплет и уеб браузър.<br />

Класът netscape.javascript.JSObject<br />

Технически взаимодействие между аплет и уеб браузър може да се<br />

реализира чрез стандартния клас netscape.javascript.JSObject, който е<br />

достъпен от всички браузъри, поддържащи аплети. Този клас предоставя<br />

функционалност за достъп до обектния модел (всички методи и свойства) на<br />

текущия прозорец на уеб браузъра, от който е бил зареден аплета, а това<br />

означава, че от аплет можем да имаме достъп до HTML документа зареден в<br />

този прозорец, до HTML формите в него, до полетата в тези форми и въобще<br />

до всичко, до което можем да имаме достъп с JavaScript [J2JS, 2004].<br />

Класът JSObject поддържа статичен метод getWindow(), с който се извлича<br />

от уеб браузъра прозорецът, в който се намира аплетът. След това може да<br />

се осъществява достъп до обектния модел на този прозорец и документа,<br />

показан в него, чрез методите getMember(), setMember() и eval().<br />

Ето част от сорс кода на аплет, който извлича стойността на полето с име<br />

FileName от първата HTML форма на уеб страницата от която е зареден:<br />

/** Initialize the applet */<br />

public void init() {<br />

JSObject browserWindow = JSObject.getWindow(this);<br />

JSObject mainForm = (JSObject) browserWindow.eval("document.forms[0]");<br />

JSObject fileNameField = (JSObject) mainForm.getMember("FileName");<br />

String fileName = (String) fileNameField.getMember("value");<br />

}<br />

// Continue the applet initialization here ...<br />

Някои браузъри позволяват на аплетите да изпълняват JavaScript и да<br />

осъществяват достъп до HTML документа, от който са заредени, само ако<br />

това е изрично указано чрез параметри на тага, с който те се вграждат в<br />

документа. Такива са параметрите “mayscript” и “scriptable” и те трябва да<br />

имат стойност “true”.<br />

Проблеми при достъп до аплет от JavaScript<br />

По принцип има и още една възможност за осъществяване на комуникацията<br />

между аплета и браузъра – вместо аплетът да записва в поле от формата<br />

резултата от изчислението на цифровата сигнатура на изпращания файл, от<br />

JavaScript функция би могъл да се извиква някакъв метод на аплета, който<br />

да връща цифровия подпис и след това също с JavaScript да се записва този<br />

подпис в някое поле от формата.<br />

68

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!