Апплет — это небольшое приложение, ориентированное на задачи, которое выполняется в более крупном приложении или программе. В Интернете апплеты часто пишутся на Java и вставляются в веб-страницы для обеспечения определенной функциональности.
Это руководство поможет вам разработать Java-апплет и внедрить этот апплет в веб-приложение, чтобы сделать его видимым на веб-сайте. Я буду использовать следующие технологии:
- NetBeansIDE 7.3
- Java 1.7
- JSP (Java Server Pages)
- Apache Tomcat Server
Вступление
Прежде чем начать с этого информативного урока, я хотел бы рассказать о технологиях, которые будут рассмотрены ниже:
- NetBeansIDE: это интегрированная среда разработки, разработанная корпорацией Oracle на Java. Он может работать на Windows, Linux, Solaris и других платформах, которые поддерживают совместимую виртуальную машину Java (JVM).
- Java: это язык программирования, разработанный Джеймсом Гослингом в 1995 году, который использует синтаксис C и C ++.
- Апплет: Это в основном программа, написанная для запуска на веб-странице. Могут быть созданы такие элементы управления, как кнопка, метка, флажок, текстовое поле и т. Д., А также ввод данных мыши.
- Веб-приложение: клиент, используемый веб-приложением, является веб-браузером. В основном он использует комбинацию сценариев на стороне сервера (JSP, ASP) и сценариев на стороне клиента (HTML, JavaScript)
- JSP (Java Server Pages): JSP используется для разработки динамически генерируемых веб-страниц. Апплет будет встроен в страницу JSP.
- Apache Tomcat Server: это веб-сервер с открытым исходным кодом, который реализует спецификации JSP и Java Servlet.
Разработка и запуск апплета в приложении Java
Выполните следующие простые шаги для создания апплета в приложении Java с помощью NetBeansIDE:
Откройте проект NetBeansIDE из File -> NewProject -> ChooseProject -> Java Application, как показано ниже:
Рисунок 1: Новое Java-приложение
Теперь добавьте имя проекта, местоположение проекта:
Название проекта: AmitJavaApplication
Расположение проекта: C: \ Users \ amit \ Documents \ NetBeansProjects
Основной класс: amitjavaapplication.AmitJavaApplication
Рисунок 2: Имя проекта как AmitJavaApplication
Следующий код генерируется, когда вы нажимаете «Готово», здесь:
Пакет: amitjavaapplication
Основной класс: amitjavaapplication.AmitJavaApplication
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package amitjavaapplication;
/**
*
* @author amit
*/
public class AmitJavaApplication {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
}
}
Структуру каталогов можно увидеть здесь на левой панели под вкладками « Проекты » и « Файлы »:
Рисунок 3: Код AmitJavaApplication.java
Чтобы создать апплет, выполните следующие действия:
Щелкните правой кнопкой мыши AmitJavaApplication-> New-> Other.
Рисунок 4: Шаги для создания нового апплета
Выберите Swing GUI form-> JAppletForm , нажмите Next, как показано ниже:
Рисунок 5: Выберите «JApplet Form» из Swing GUI Forms
После выполнения вышеуказанного шага введите следующее:
Имя класса: AmitApplet
Пакет: tutorial.me
Файл создается в пакете «tutorial.me» в следующем месте:
Расположение файла: C: \ Users \ amit \ Documents \ NetBeansProjects \ AmitJavaApplication \ src \ tutorial \ me
После этого нажмите « Готово» :
Рисунок 6: Установите имя класса и пакет
Теперь экран дизайна « AmitApplet.java » можно увидеть здесь. Он поставляется с опцией « Палитра » для добавления любого Swing-контейнера / элемента управления в апплет:
Рисунок 7: часть дизайна класса апплета
Проектирование апплета показано ниже со следующим контейнером и элементами управления Swing:
Качели Контейнер / Контроль | номер | Имя переменной |
JPanel (Контейнер) | 1 | jPanel1 |
JLabel (Контроль) | 1 | jLabel1 |
JTextField (Control) | 3 | textNum1 textNum2 textResult |
JButton (Контроль) | 1 | btnMultiply |
Рисунок 8: Апплет, предназначенный для умножения 2 чисел
Следующий код можно увидеть в « Редакторе исходного кода », когда « Дизайн » будет завершен, скриншот и код приложения апплета показаны ниже:
Рисунок 9: Скриншот кода
Полный код приведен здесь:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tutorial.me;
/**
*
* @author amit
*/
public class AmitApplet extends javax.swing.JApplet {
/**
* Initializes the applet AmitApplet
*/
@Override
public void init() {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(AmitApplet.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the applet */
try {
java.awt.EventQueue.invokeAndWait(new Runnable() {
public void run() {
initComponents();
}
});
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* This method is called from within the init() method to initialize the
* form. WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
textNum1 = new javax.swing.JTextField();
textNum2 = new javax.swing.JTextField();
btnMultiply = new javax.swing.JButton();
textResult = new javax.swing.JTextField();
jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
jLabel1.setText("Multiply 2 numbers");
textNum1.setText("0");
textNum2.setText("0");
btnMultiply.setText("Multiply");
btnMultiply.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnMultiplyActionPerformed(evt);
}
});
textResult.setText("Result");
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
.addGap(0, 36, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(textNum2, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(textNum1, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(jPanel1Layout.createSequentialGroup()
.addComponent(btnMultiply)
.addGap(18, 18, 18)
.addComponent(textResult, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGap(19, 19, 19))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addGap(28, 28, 28)
.addComponent(textNum1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(textNum2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 34, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnMultiply)
.addComponent(textResult, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(23, 23, 23))
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(100, 100, 100)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(155, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(41, 41, 41)
.addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(95, Short.MAX_VALUE))
);
}// </editor-fold>
private void btnMultiplyActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
int n1 = Integer.parseInt(textNum1.getText());
int n2 = Integer.parseInt(textNum2.getText());
int mul = n1 * n2;
textResult.setText(Integer.toString(mul));
}
// Variables declaration - do not modify
private javax.swing.JButton btnMultiply;
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField textNum1;
private javax.swing.JTextField textNum2;
private javax.swing.JTextField textResult;
// End of variables declaration
}
Теперь запустите апплет, щелкнув правой кнопкой мыши на AmitApplet.java-> Run File, как показано ниже:
Рисунок 10: Запустите апплет «AmitApplet.java»
Апплет можно увидеть здесь после выполнения приведенных выше шагов, теперь введите следующие значения для умножения, т.е.
9 * 7 = 63
Рисунок 11: Просмотр апплета
Приведенные выше шаги необходимо выполнить для запуска апплета в NetBeansIDE.
Разработка и запуск веб-приложения:
Выполните следующие простые шаги для создания веб-приложения с помощью NetBeansIDE:
Перейдите в File-> New Project, как показано ниже:
Рисунок 12: Создание нового проекта WebApplication
После запуска с новым проектом выберите Java Web из категорий . Теперь выберите веб-приложение и нажмите « Далее» :
Рисунок 13: Выбор веб-приложения из категории «Java Web»
После выполнения вышеуказанного шага добавьте ProjectName, Project Location:
Название проекта: AmitWebApplication
Расположение проекта: C: \ Users \ amit \ Documents \ NetBeansProjects
Теперь нажмите Next :
Рисунок 14: Имя проекта как «AmitWebApplication»
Выберите «Сервер» в разделе «Сервер и настройки» и Apache Tomcat, чтобы запустить AmitWebApplication .
Рисунок 15: Выбор сервера в качестве Apache Tomcat
Нажмите Next, чтобы начать проект WebApplication . Он сгенерирует файл « index.jsp » со следующим кодом:
<%--
Document : index
Created on : Nov 6, 2013, 10:46:24 AM
Author : amit
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
</body>
</html>
Рисунок 16: index.jsp
Теперь запустите веб-приложение, щелкнув правой кнопкой мыши AmitWebApplication -> Очистить и построить, как показано ниже:
Рисунок 17: Сборка проекта AmitWebApplication
Теперь после построения проекта, как показано выше, запустите проект с помощью функциональной клавиши «F6» или с помощью следующего, как показано на приведенном ниже снимке экрана:
Рисунок 18: запустить проект
Проект будет успешно запущен на локальном хосте, т.е. по указанному ниже адресу в Google Chrome (вы можете использовать любой другой браузер):
localhost:8080/AmitWebApplication/index.jsp
На следующем снимке экрана показан успешный запуск нашего веб-приложения:
Рисунок 19: index.jsp работает на локальном хосте
Приведенные выше шаги необходимо выполнить для запуска WebApplication в NetBeansIDE.
Встраивание / интеграция апплета в веб-приложение
Выполните следующие простые шаги для интеграции апплета в WebApplication с использованием NetBeansIDE:
RightClick AmitWebApplication-> Свойства
Рисунок 20: Свойства проекта
Откроется диалоговое окно «Свойства проекта ».
Выберите « Упаковка » в « Категории » и нажмите « Добавить проект ».
Рисунок 21. Перейдите в раздел «Упаковка» под категориями и нажмите «Добавить проект»
Будет показан список проектов, разработанных в NetBeansIDE. Просто выберите тот, который вы хотите добавить, здесь мы добавим проект « AmitJavaApplication ».
После добавления « AmitJavaApplication » он сам добавит выбранный файл jar проекта, то есть «AmitJavaApplication.jar», как показано на приведенном ниже снимке экрана. После этого нажмите кнопку « Добавить JAR-файлы проекта »:
Примечание. Файл jar «AmitJavaApplication» будет виден только в том случае, если был создан проект «AmitJavaApplication».
Рисунок 22: Перейдите к проекту AmitJavaApplication
После добавления файла JAR нажмите кнопку ОК и подождите несколько секунд, пока файл JAR не будет добавлен в проект. Процесс иллюстрируется ниже. Затем нажмите « ОК »:
Рисунок 23: файл JAR добавлен в проект
Рисунок 24: Интеграция апплета в WebApplication
Файл «jar» добавляется в проект, который можно увидеть в структуре каталогов проекта « AmitWebApplication ». Папка build / web показывает добавление файла jar:
Рисунок 25: Структура каталогов, показывающая добавление файла JAR в проекте AmitWebApplication
Апплет внедряется здесь с помощью тега applet
<applet code="tutorial.me.AmitApplet" archive="AmitJavaApplication.jar" width="400" height="350">
</applet>
Вот,
Атрибут апплета | Описание | Использование в проекте |
Код | указывает имя файла | tutorial.me.AmitApplet |
Архив | указывает местоположение файла архива (файл jar здесь) | AmitJavaApplication.jar |
высота | Определяет высоту апплета | 350 |
ширина | определяет ширину апплета | 400 |
Рисунок 26: добавлен код для запуска апплета в index.jsp
Код:
<%--
Document : index
Created on : Nov 6, 2013, 10:46:24 AM
Author : amit
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My first WebApplication using NetBeansIDE</title>
</head>
<body>
<h1>Hello World!</h1>
<br />
<p>WebApplication using NetBeansIDE...</p>
<!-- Embedding Applet -->
<applet code="tutorial.me.AmitApplet" archive="AmitJavaApplication.jar"
width="400" height="350">
</applet>
</body>
</html>
Теперь запустите проект веб-приложения, щелкнув правой кнопкой мыши -> AmitWebApplication -> Очистить и построить, как показано ниже:
Рисунок 27: Сборка AmitWebApplication
Проект «Строится успешно», который можно увидеть здесь в окне «Вывод»:
Рисунок 28: Сборка успешна
Теперь после построения проекта, как показано выше, запустите проект с помощью функциональной клавиши F6 или как показано ниже:
Рисунок 29: Запустить проект
Проект будет успешно запущен на локальном хосте, т.е. по указанному ниже адресу в Google Chrome (вы можете использовать любой другой браузер):
localhost:8080/AmitWebApplication/index.jsp
Теперь показанное ниже предупреждение о безопасности будет отображаться как неподписанный апплет:
«Oracle представила новые функции безопасности в своем подключаемом модуле веб-браузера Java, когда 11 декабря 2012 года выпустила Java 7 Update 10».
«Запуск такого неподписанного приложения будет заблокирован в будущем выпуске, потому что это потенциально небезопасно и представляет угрозу безопасности».
Для понимания этих проблем безопасности нам необходимо прояснить понятия, связанные с «моделью безопасности Java», которая охватывает «неподписанный апплет», «подписанный апплет» и «самоподписанный апплет:
Неподписанный апплет. Этот вид апплета не может получить доступ ко всем системным свойствам, локальной файловой системе и т. Д. В нем отсутствует безопасность, поскольку апплет не подписан. Согласно «Java 7 Update 10» (как указано выше), пользователь получает предупреждение непосредственно перед его использованием.
Подписанный апплет. В этом случае апплеты подписываются сертификатом, который браузер проверяет с помощью сервера центра сертификации. При успешной проверке подписи и при одобрении пользователя этот вид апплета получает больше прав. Он может выполнять больше задач по сравнению с самоподписанными (обсуждаемыми ниже) и неподписанными апплетами (обсуждаемыми выше).
Самоподписанный апплет : эти апплеты подписаны разработчиком и могут также рассматриваться как проблема безопасности. Плагин Java по-прежнему выдает предупреждение о запуске самозаверяющих апплетов, потому что только разработчик гарантирует безопасность этих апплетов.
Для получения дополнительной информации о вышеупомянутых концепциях, связанных с моделью безопасности апплета, просто перейдите по следующей ссылке. Разница показана в приведенной ниже ссылке с большим объяснением: http://www.mendoweb.be/blog/java-applets-unsigned-vs-self-signed-vs-signed/
Чтобы запустить текущий проект «AmitWebApplication», просто нажмите « Выполнить » после выбора « Я принимаю на себя риск и хочу запустить это приложение ». Этот шаг успешно запустит ваш апплет:
Рисунок 30. Установите флажок «Я принимаю на себя риск и хочу запустить это приложение»
Апплет из « AmitJavaApplication » можно увидеть здесь, таким образом, мы можем показать наш апплет на веб-странице . Размер (высота, ширина) апплета можно изменить в «index.jsp», изменив тег applet
<applet code="tutorial.me.AmitApplet" archive="AmitJavaApplication.jar" width="400" height="350">
</applet>
Рисунок 31: Апплет успешно работает на странице JSP
Вывод
С помощью этого простого руководства вы должны получить представление о запуске программ в NetBeansIDE. Моей целью было нацелить пользователей NetBeansIDE, чтобы помочь им в изучении следующих функций:
• Как начать с IDE NetBeans
• Как запустить апплет в NetBeansIDE
• Понимание модели безопасности апплета
• Как запустить веб-приложение в NetBeansIDE
• Встраивание / интеграция вашего апплета на странице JSP (веб-приложение).
Ресурсы
Вот ресурсы, которые могут помочь читателям:
Вы можете скачать проект Applet и Web Application здесь .
Я надеюсь, что вы узнали из этого урока. Я с нетерпением жду ваших комментариев ниже.