Содержание

Введение

1. Структура и задачи предприятия

1.1 Разработка систем с использованием WEB-технологий

2. Краткое теоретическиое обоснование применяемых для решения поставленной задачи технологий

2.1 WEB-технологии. Spring framework

2.1.1 Архитектура Spring

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

2.1.2 IoC — инверсия контроля

2.2 Struts

2.3 Hibernate

3. Практическая реализация поставленной задачи

Заключение

Список использованной литературы

Введение

Производственная практика является составной частью учебного процесса подготовки квалифицированных специалистов. Во время практики происходит закрепление и конкретизация результатов теоретического обучения, приобретение студентами умения и навыков практической работы по присваиваемой квалификации и избранной специальности.

Основной целью производственной практики является систематизация и закрепление знаний, полученных в период обучения.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

К задачам практики можно отнести расширение теоретических знаний, развитие умений и навыков в ходе выполнения конкретной работы.

Место прохождения производственной практики — подразделение разработки программных продуктов использующих веб-технологии. Компания ИООО «ЭПАМ Системз».

Были поставлены следующие задачи:

·        изучить структуру предприятия и подразделения,

·        изучить технику безопасности и охраны труда,

·        ознакомиться с WEB-технологиями,

·        закрепить полученные знания на практике, построив WEB-приложение с помощью программного продукта Oracle Database и технологий Spring, Struts.

·        подобрать и систематизировать материалы для написания данного отчёта.

Отчёт о производственной практике состоит из трёх разделов.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

Первый раздел посвящён описанию структуры и задач предприятия.

Во втором разделе приведены краткие теоретические сведения, необходимые для понимания и последующего решения поставленной задачи.

Третий раздел представляет собой подробное описание хода практической реализации поставленной производственной задачи.
1. Структура и задачи предприятия

Компания-резидент Парка высоких технологий «ЭПАМ Системз» (EPAM Systems) является на сегодняшний день крупнейшим поставщиком услуг в области разработки проектного (заказного) программного обеспечения и решений в Центральной и Восточной Европе. Созданная в 1993 году, Компания имеет представительства в 11 странах мира, более 7300 высококвалифицированных специалистов в штате, и продолжает активно расти. Реализовав тысячи сложных и масштабных решений для своих заказчиков по всему миру, EPAM Systems неизменно остаётся признанным лидером в таких областях как: разработка, тестирование <#»723683.files/image001.gif»>

Рис. 1 — Архитектура Spring

·        IoC — главный модуль

·        AOP — Spring может подключиться к программе в любой точке и выполнить там нужный код

·        Service Abstraction — абстрагируем благодаря тому, что мы вызываем интерфейсы Spring-а и вызываем его методы для работы. За счет этого он абстрагирует от всего остального (Web remoting, EJB, JMS, Scheduling итп).

·        DAO — для работы с БД

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

·        ORM — JPA, hibername

·        WEB — классы, которые помогают упростить разработку Web (авторизация, доступ к бинам Spring-а из web)

·        MVC — создает web   2.1.2 IoC — инверсия контроля

Как это обычно делают люди. Менеджер: он зависит от какого-то сервиса или продукта. Сейчас менеджер просто создает этот сервис или продукт самостоятельно, то есть, менеджер делает new service и вызывает его методы. Представим, что у нас есть какая-либо фабрика и мы говорим фабрике, что нужно создавать продукты и она их производит. Но в этом случае мы зависим от фабрики. Так делают многие и это правильно.

Но как можно сделать лучше? Нужно сделать, чтобы менеджер получал, что-то извне, а не создавал. По сути это и называется инъекция зависимости (инверсия контроля). Теперь получается, что не менеджер уже контролирует объекты, а кто-то их контролирует, а менеджеру предоставляет. Мы, как бы, меняем направление движения.


2.2 Struts

В паттерне MVC поток выполнения приложения всегда проходит через центральный контроллер. Контроллер перенаправляет запросы — в нашем случае, это HTTP запросы — к соответствующему обработчику. Обработчики привязаны к Модели, и каждый разработчик действует как адаптер между запросом и Моделью. Модель представляет, или инкапсулирует, бизнес-логику или состояние приложения. Управление обычно передается обратно через Контроллер соответствующему Представлению (View). Перенаправление осуществляется путем обращения к набору соответствий (mappings) между Моделью и представлением; причем этот набор обычно загружается из базы данных или из конфигурационного файла. Такая схема обеспечивает слабое связывание между Представлением и Моделью, что может сделать разработку и сопровождение приложения значительно проще.

Согласно паттерну Model-View-Controller, Struts имеет 3 основных компонента: сервлет контроллер, который входит в Struts, JSP страницы (это «представление”) и бизнес-логику приложения («модель”). Давайте рассмотрим, как это все взаимодействует.

Struts’овский сервлет-контроллер связывает и перенаправляет HTTP запросы к другим объектам среды, включая JavaServer Pages и наследники класса org. apache. struts. action. Action <#»723683.files/image003.gif»>

Рис. 2 — Список всех новостей

На Рис.3 можно увидеть форму для добавления новой новости. После нажатия на кнопку СОХРАНИТЬ происходит валидация, и если есть ошибки, то они подсвечиваются и не корректная информация не сохраняется.

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

Рис.3 — Форма для добавления новости

На Рис.4 можно увидеть форму для редактирования новости. Форма имеет такой же вид как и на Рис.3, только с уже заполненной информацией.

Рис.4 — Форма для редактирования новости

Далее представим немного основных кусков кода с небольшими комментариями:

Листинг 1. Конфигурация Spring.

<? xml version=»1.0″ encoding=»Utf-8″? >

http://www.springframework.org/schema/beans/spring-beans-2.5 xsd»>

classpath: /resources/config. properties

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

Листинг 2. Класс, который обрабатывает запросы, пришедшие от пользователя.

public class NewsAction extends MappingDispatchAction {

private static final Logger log = Logger. getLogger (NewsAction. class);

private static final String SUCCESS = «success»;

private INewsDAO newsDAO;

public void setNewsDAO (INewsDAO newsDAO) {

this. newsDAO = newsDAO;

}

public ActionForward list (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {

log. info (NEWS_LIST);newsForm = (NewsForm) form;. setNewsList (newsDAO. getList ());

return mapping. findForward (SUCCESS);

}

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

public ActionForward view (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {newsForm = (NewsForm) form;

int newsId = newsForm. getId ();

log. info (NEWS_VIEW + newsId);. setNewsMessage (newsDAO. fetchById (newsId));

return mapping. findForward (SUCCESS);

}

public ActionForward edit (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {newsForm = (NewsForm) form;

int newsId = newsForm. getId ();

log. info (NEWS_EDIT + newsId);. setNewsMessage (newsDAO. fetchById (newsId));

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

return mapping. findForward (SUCCESS);

}

public ActionForward delete (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {newsForm = (NewsForm) form;[] selected = newsForm. getSelected ();

log. info (NEWS_DELETE + selected); deletedList = new ArrayList ();

for (int index = 0; index < selected. length; index++) {. add (Integer. parseInt (selected [index]));

}. remove (deletedList);

return mapping. findForward (SUCCESS);

}

public ActionForward cancel (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {traceDeque = (TraceDeque) request. getSession (). getAttribute (TRACE_DEQUE);back;

if (traceDeque. peekLast (). equals (ADD_NEWS_DO)) {= NEWS_LIST_DO;

} else {= traceDeque. peek ();

}

log. info (NEWS_CANCEL + back);refererForward = new ActionForward (back, true);

return refererForward;

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

}

public ActionForward save (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {newsForm = (NewsForm) form;news = newsForm. getNewsMessage ();. save (news);

log. info (NEWS_SAVE + news);path = mapping. findForward (SUCCESS). getPath ();modifiedForward = new ActionForward (path + «?» + ID +»=»

+ news. getId (), true);

return modifiedForward;

}

public ActionForward add (ActionMapping mapping, ActionForm form,request, HttpServletResponse response)

throws Exception {

log. info (NEWS_ADD);newsForm = (NewsForm) form;. setNewsMessage (new News ());

return mapping. findForward (SUCCESS);

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

}

}

Листинг 3. Пример пулла соединений:

public class ConnectionPool {

private static final Logger log = Logger. getLogger (ConnectionPool. class);

private static final String POOL_CREATED = «Connection pool created, pool size: «;

private static final String POOL_DESTROYED = «Connection pool destroyed»;

private String driver;

private String url;

private BlockingQueue queue;

private ConnectionPool (String driver, String url, int poolSize) {

this. driver = driver;

this. url = url;

this. poolSize = poolSize;();

}

private void initialize () {

try {. forName (driver). newInstance ();= new ArrayBlockingQueue (poolSize);

for (int i = 0; i < poolSize; i++) {. offer (DriverManager. getConnection (url));

}

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

} catch (SQLException e) {

throw new RuntimeException (e);

} catch (InstantiationException e) {

throw new RuntimeException (e);

} catch (IllegalAccessException e) {

throw new RuntimeException (e);

} catch (ClassNotFoundException e) {

throw new RuntimeException (e);

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Цена отчета

}

log. info (POOL_CREATED + poolSize);

}

public Connection getConnection () {connection = null;

try {= queue. take ();

} catch (InterruptedException e) {

throw new RuntimeException (e);

}

return connection;

}

public void returnConnection (Connection connection) {

boolean closed = true;

try {. setAutoCommit (true);= connection. isClosed ();

} catch (SQLException e) {

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

throw new RuntimeException (e);

}

if (! closed) {. offer (connection);

}

}

public void dispose () {connection;

if (queue == null) {

return;

}

while ( (connection = queue. poll ())! = null) {

try {

if (! connection. getAutoCommit ()) {.commit ();

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

}. close ();

} catch (SQLException e) {

throw new RuntimeException (e);

}

}

log. info (POOL_DESTROYED);

}

}

Листинг 4. Пример маппинга для Hibernate

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Подробнее

<? xml version=»1.0″? >

<! DOCTYPE hibernate-mapping PUBLIC

«- // Hibernate/Hibernate Mapping DTD 3.0 // EN»

«http://hibernate. sourceforge.net/hibernate-mapping-3.0. dtd»>

«sequence»>

NEWS_SEQ

<! [CDATA [DELETE FROM News WHERE id IN (: newsIdList)]] >

Заключение

В результате производственной практики были приобретены новые теоретические и практические знания, навыки и умения. Выполненная работа имела отношение к реальной задаче, результат решения которой необходим конкретным людям.

Итогом практики явилось:

·        закрепление полученных в университете теоретических знаний о реляционных БД, СУБД;

·        получение новых знаний о web-технологиях;

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

·        работа с новым программными продуктами и системами;

·        получение навыков анализа документации;

·        приобретение опыта принятия самостоятельных решений;

·        приобретение опыта работы в команде;

·        приобретение опыта участия в долгосрочных, масштабных проектах.

Список использованной литературы

1       Интернет-сайт Предприятия места практики http://www.epam. by <http://www.epam.by>/. Дата доступа 20.06.2012.

Spring http://www.spring-source.ru/docs_simple. php <http://www.spring-source.ru/docs_simple.php>

Struts <http://www.struts.ru/userGuide/>

Hibernate http://ru. wikipedia.org/wiki/Hibernate_ (%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0)  <http://ru.wikipedia.org/wiki/Hibernate_(%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0)>

Нужна помощь в написании отчета?

Мы - биржа профессиональных авторов (преподавателей и доцентов вузов). Наша система гарантирует сдачу работы к сроку без плагиата. Поможем с характеристой и презентацией. Правки внесем бесплатно.

Заказать отчет

Средняя оценка 0 / 5. Количество оценок: 0

Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

1260

Закажите такую же работу

Не отобразилась форма расчета стоимости? Переходи по ссылке