SlideShare a Scribd company logo
1 of 36
Get Trained on:
Workshop Agenda
Day 1
1.Understanding Struts2
2.Architecture of Struts2
3.Features of Struts2
4.Environment Setup
5.Understanding Configuration of Project
Day 1 Continue
6.Practical Lab
7.Introduction to Hibernate
8.Demo of Struts2 Application
Understanding Struts2
•Apache Struts 2 is an elegant, extensible framework for
creating enterprise-ready Java web applications.
•The framework is designed to streamline the full
development cycle, from building, to deploying, to
maintaining applications over time.
•To make web development easier for the developers.
MVC Design Pattern
Architecture of Struts2
What kind of MVC is Struts2
Struts 2 is pull MVC
Request Life Cycle
• User sends a request to the server for requesting for
some resource (i.e pages).
• The FilterDispatcher looks at the request and then
determines the appropriate Action.
• Configured interceptors functionalities applies such as
validation, file upload etc.
• Selected action is executed to perform the
requested operation.
• Again, configured interceptors are applied to do any
post-processing if required.
• Finally the result is prepared by the view and returns
the result to the user.
Features of Struts2
• POJO forms and POJO actions
• Tag Support
• AJAX Support
• Easy Integration
Features continued…
• Template Support
• Plugin Support
• Profiling
• Easy to modify tags
• Promote less configuration
• View Technologies (JSP, Velocity, Freemarker,etc)
Environment Setup
4 Simple Steps:
•Step 1 - Setup Java Development Kit (JDK)
•Step 2 - Setup Apache Tomcat
•Step 3 - Setup Eclipse (IDE)
•Step 4 - Setup Struts2 Libraries
Understand Configuring
Project
4 Simple Steps
•Create an Action Class
•Create a View
•Create a launch page
•Now configure all of them
Create an Action Class
public class Student
{
private String fullName;
public String execute() throws Exception {
return "success";
}
public String getFullName() {
return name;
}
public void setFullName(String name) {
this.name = name;
}
}
Create View
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Welcome to Team Go Getters</title>
</head>
<body>
Hello,
We are glad to have <s:property value=”fullName"/> as our
student.
</body>
</html>
Create a launch page
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Struts2 Workshop</title>
</head>
<body>
<h1>Welcome to Team Go Getters</h1>
<form action=”welcome">
<label for="name">Please enter your name</label><br/>
<input type="text" name=”fullName"/>
<input type="submit" value=”Enroll"/>
</form>
</body>
</html>
Configuration Files
Struts.xml file
•Mapping between URL ,Action classes and Result Types
(View)
•Since Struts 2 requires struts.xml to be present in classes
folder.
• So create struts.xml file under the WebContent/WEB-
INF/classes folder.
Struts.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name=”workshop" extends="struts-default">
<action name=”welcome"
class="com.teamgogetters.struts2.Employee"
method="execute">
<result name="success">/Welcome.jsp</result>
</action>
</package>
</struts>
Multiple struts.xml files
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration
2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="my-struts1.xml"/>
<include file="my-struts2.xml"/>
</struts>
Web.xml
• Entry point for any request to Struts 2
• Mapping FilterDispatcher
• Deployment Descriptor
• Security Parameters
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>Struts 2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Interceptors
• Providing preprocessing logic before the action is
called.
• Providing post-processing logic after the action is
called.
• Catching exceptions so that alternate processing can
be performed.
List of Interceptors
• timer
• params
• checkbox
• createSession
• logger
• fileUpload
• scope
• alias
Snippet
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name=”workshop" extends="struts-default">
<action name=”welcome"
class="com.teamgogetters.struts2.Employee"
method="execute">
<interceptor-ref name="params"/>
<interceptor-ref name="timer" />
<result name="success">/welcome.jsp</result>
</action>
</package>
</struts>
Result and Result Types
• <results> tag plays the role of a view in the Struts2 MVC
framework. The action is responsible for executing the
business logic. The next step after executing the business logic
is to display the view using the <results> tag.
• Struts comes with a number of predefined result types and
whatever we've already seen that was the default result type
dispatcher, which is used to dispatch to JSP pages. Struts
allow you to use other markup languages for the view
technology to present the results and popular choices include
Velocity, Freemaker, XSLT and Tiles.
Snippet
<result name="success" type="dispatcher">
<param name="location">
/HelloWorld.jsp
</param >
</result>
<result name="success" type="freemarker">
<param name="location">
/hello.fm
</param>
</result>
<result name="success" type="freemarker">
<param name="location">
/hello.fm
</param>
</result>
Practical Lab
JDBC is going obsolete?
• Complex if it is used in large projects
• Large programming overhead
• No encapsulation
• Hard to implement MVC concept
• Query is DBMS specific
What’s Next ?
Hibernate: ORM
• Hibernate is a high-performance Object/Relational
persistence and query service
• Hibernate takes care of the mapping from Java classes to
database tables
• Hibernate data query and retrieval facilities
ORM New Generation
1. Let business code access objects rather than DB tables.
2. Hides details of SQL queries from OO logic.
3. Based on JDBC 'under the hood’
4. No need to deal with the database implementation.
ORM New Generation…
5. Entities based on business concepts rather than
database structure.
6. Transaction management and automatic key
generation.
7. Fast development of application.
Visual presentation of
Hibernate
Hold your breathe till
tomorrow
Demo

More Related Content

What's hot

Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Stéphane Bégaudeau
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Phpfunkatron
 
AngularJS introduction
AngularJS introductionAngularJS introduction
AngularJS introductionTania Gonzales
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedStéphane Bégaudeau
 
Odoo Experience 2018 - Develop an App with the Odoo Framework
Odoo Experience 2018 - Develop an App with the Odoo FrameworkOdoo Experience 2018 - Develop an App with the Odoo Framework
Odoo Experience 2018 - Develop an App with the Odoo FrameworkElínAnna Jónasdóttir
 
Angularjs architecture
Angularjs architectureAngularjs architecture
Angularjs architectureMichael He
 
An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications Rohan Chandane
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVCAcquisio
 
SUGCon 2014 Sitecore MVC
SUGCon 2014 Sitecore MVCSUGCon 2014 Sitecore MVC
SUGCon 2014 Sitecore MVCmikeedwards83
 
Advance java session 13
Advance java session 13Advance java session 13
Advance java session 13Smita B Kumar
 
Backbone to React. What it says about awesome UI Code.
Backbone to React. What it says about awesome UI Code.Backbone to React. What it says about awesome UI Code.
Backbone to React. What it says about awesome UI Code.Richard Powell
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!Muhammad Ghazali
 
ASP.NET Routing & MVC
ASP.NET Routing & MVCASP.NET Routing & MVC
ASP.NET Routing & MVCEmad Alashi
 

What's hot (20)

Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014Modern Web Application Development Workflow - EclipseCon Europe 2014
Modern Web Application Development Workflow - EclipseCon Europe 2014
 
Backbone js
Backbone jsBackbone js
Backbone js
 
Intro To Mvc Development In Php
Intro To Mvc Development In PhpIntro To Mvc Development In Php
Intro To Mvc Development In Php
 
Ojdbc
OjdbcOjdbc
Ojdbc
 
5 angularjs features
5 angularjs features5 angularjs features
5 angularjs features
 
AngularJS introduction
AngularJS introductionAngularJS introduction
AngularJS introduction
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
AngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get startedAngularJS 101 - Everything you need to know to get started
AngularJS 101 - Everything you need to know to get started
 
Odoo Experience 2018 - Develop an App with the Odoo Framework
Odoo Experience 2018 - Develop an App with the Odoo FrameworkOdoo Experience 2018 - Develop an App with the Odoo Framework
Odoo Experience 2018 - Develop an App with the Odoo Framework
 
Angularjs architecture
Angularjs architectureAngularjs architecture
Angularjs architecture
 
AngularJS Basic Training
AngularJS Basic TrainingAngularJS Basic Training
AngularJS Basic Training
 
The AngularJS way
The AngularJS wayThe AngularJS way
The AngularJS way
 
An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications An Introduction To Testing In AngularJS Applications
An Introduction To Testing In AngularJS Applications
 
Planbox Backbone MVC
Planbox Backbone MVCPlanbox Backbone MVC
Planbox Backbone MVC
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
SUGCon 2014 Sitecore MVC
SUGCon 2014 Sitecore MVCSUGCon 2014 Sitecore MVC
SUGCon 2014 Sitecore MVC
 
Advance java session 13
Advance java session 13Advance java session 13
Advance java session 13
 
Backbone to React. What it says about awesome UI Code.
Backbone to React. What it says about awesome UI Code.Backbone to React. What it says about awesome UI Code.
Backbone to React. What it says about awesome UI Code.
 
A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!A Good PHP Framework For Beginners Like Me!
A Good PHP Framework For Beginners Like Me!
 
ASP.NET Routing & MVC
ASP.NET Routing & MVCASP.NET Routing & MVC
ASP.NET Routing & MVC
 

Viewers also liked

Final project
Final projectFinal project
Final projectmaiberlyn
 
Ideal Network - Cause Partners PowerPoint
Ideal Network - Cause Partners PowerPointIdeal Network - Cause Partners PowerPoint
Ideal Network - Cause Partners PowerPointIdealNetwork
 
6610 connorsmodule3final
6610 connorsmodule3final6610 connorsmodule3final
6610 connorsmodule3finalMelanie333
 
Optimize Today's Ideal With Facebook
Optimize Today's Ideal With FacebookOptimize Today's Ideal With Facebook
Optimize Today's Ideal With FacebookIdealNetwork
 
pp4 axylegna gaga
pp4 axylegna gagapp4 axylegna gaga
pp4 axylegna gagaaxylegna
 
Final project
Final projectFinal project
Final projectmaiberlyn
 
In defense of life - Masquechuchos
In defense of life - MasquechuchosIn defense of life - Masquechuchos
In defense of life - Masquechuchosbcasares
 
Dragon's den
Dragon's denDragon's den
Dragon's denjyook
 
Cloud Computing by Team Go Getters
Cloud Computing by Team Go GettersCloud Computing by Team Go Getters
Cloud Computing by Team Go GettersJay Shah
 
Struts2-Spring=Hibernate
Struts2-Spring=HibernateStruts2-Spring=Hibernate
Struts2-Spring=HibernateJay Shah
 
Mobile strategy and sophistication study for slideshare
Mobile strategy and sophistication study for slideshareMobile strategy and sophistication study for slideshare
Mobile strategy and sophistication study for slideshareStefan Tornquist
 
Richard Peers, Microsoft @ "How to Start a New Bank" Seminar
Richard Peers, Microsoft @ "How to Start a New Bank" SeminarRichard Peers, Microsoft @ "How to Start a New Bank" Seminar
Richard Peers, Microsoft @ "How to Start a New Bank" SeminarFiserv
 

Viewers also liked (14)

Final project
Final projectFinal project
Final project
 
Ideal Network - Cause Partners PowerPoint
Ideal Network - Cause Partners PowerPointIdeal Network - Cause Partners PowerPoint
Ideal Network - Cause Partners PowerPoint
 
6610 connorsmodule3final
6610 connorsmodule3final6610 connorsmodule3final
6610 connorsmodule3final
 
Optimize Today's Ideal With Facebook
Optimize Today's Ideal With FacebookOptimize Today's Ideal With Facebook
Optimize Today's Ideal With Facebook
 
pp4 axylegna gaga
pp4 axylegna gagapp4 axylegna gaga
pp4 axylegna gaga
 
Final project
Final projectFinal project
Final project
 
In defense of life - Masquechuchos
In defense of life - MasquechuchosIn defense of life - Masquechuchos
In defense of life - Masquechuchos
 
Dragon's den
Dragon's denDragon's den
Dragon's den
 
Cloud Computing by Team Go Getters
Cloud Computing by Team Go GettersCloud Computing by Team Go Getters
Cloud Computing by Team Go Getters
 
Struts2-Spring=Hibernate
Struts2-Spring=HibernateStruts2-Spring=Hibernate
Struts2-Spring=Hibernate
 
Mobile strategy and sophistication study for slideshare
Mobile strategy and sophistication study for slideshareMobile strategy and sophistication study for slideshare
Mobile strategy and sophistication study for slideshare
 
Μαθηματικά και άγχος
Μαθηματικά και άγχοςΜαθηματικά και άγχος
Μαθηματικά και άγχος
 
Richard Peers, Microsoft @ "How to Start a New Bank" Seminar
Richard Peers, Microsoft @ "How to Start a New Bank" SeminarRichard Peers, Microsoft @ "How to Start a New Bank" Seminar
Richard Peers, Microsoft @ "How to Start a New Bank" Seminar
 
Email Talk at AdTech '12
Email Talk at AdTech '12Email Talk at AdTech '12
Email Talk at AdTech '12
 

Similar to Struts2 Workshop Agenda and Overview

Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2divzi1913
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Matt Raible
 
Struts Interview Questions
Struts Interview QuestionsStruts Interview Questions
Struts Interview Questionsjbashask
 
Struts 2 Overview
Struts 2 OverviewStruts 2 Overview
Struts 2 Overviewskill-guru
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2Long Nguyen
 
important struts interview questions
important struts interview questionsimportant struts interview questions
important struts interview questionssurendray
 
Extending the Mule Runtime - Building a Circuit Breaker Component.pptx
Extending the Mule Runtime - Building a Circuit Breaker Component.pptxExtending the Mule Runtime - Building a Circuit Breaker Component.pptx
Extending the Mule Runtime - Building a Circuit Breaker Component.pptxGuilherme Pereira Silva
 
Struts 2 – Architecture
Struts 2 – ArchitectureStruts 2 – Architecture
Struts 2 – ArchitectureDucat India
 
Struts An Open-source Architecture for Web Applications
Struts An Open-source Architecture for Web ApplicationsStruts An Open-source Architecture for Web Applications
Struts An Open-source Architecture for Web Applicationselliando dias
 
What's Coming in Spring 3.0
What's Coming in Spring 3.0What's Coming in Spring 3.0
What's Coming in Spring 3.0Matt Raible
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083Divyam Pateriya
 
Struts 2 – Interceptors
Struts 2 – InterceptorsStruts 2 – Interceptors
Struts 2 – InterceptorsDucat India
 

Similar to Struts2 Workshop Agenda and Overview (20)

Struts 1
Struts 1Struts 1
Struts 1
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2Migrating from Struts 1 to Struts 2
Migrating from Struts 1 to Struts 2
 
Struts Interview Questions
Struts Interview QuestionsStruts Interview Questions
Struts Interview Questions
 
Struts 2 Overview
Struts 2 OverviewStruts 2 Overview
Struts 2 Overview
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
 
Wt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technologyWt unit 2 ppts client sied technology
Wt unit 2 ppts client sied technology
 
Wt unit 2 ppts client side technology
Wt unit 2 ppts client side technologyWt unit 2 ppts client side technology
Wt unit 2 ppts client side technology
 
Struts
StrutsStruts
Struts
 
important struts interview questions
important struts interview questionsimportant struts interview questions
important struts interview questions
 
Ibm
IbmIbm
Ibm
 
Extending the Mule Runtime - Building a Circuit Breaker Component.pptx
Extending the Mule Runtime - Building a Circuit Breaker Component.pptxExtending the Mule Runtime - Building a Circuit Breaker Component.pptx
Extending the Mule Runtime - Building a Circuit Breaker Component.pptx
 
Struts 2 – Architecture
Struts 2 – ArchitectureStruts 2 – Architecture
Struts 2 – Architecture
 
Struts An Open-source Architecture for Web Applications
Struts An Open-source Architecture for Web ApplicationsStruts An Open-source Architecture for Web Applications
Struts An Open-source Architecture for Web Applications
 
What's Coming in Spring 3.0
What's Coming in Spring 3.0What's Coming in Spring 3.0
What's Coming in Spring 3.0
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
 
Struts 2 – Interceptors
Struts 2 – InterceptorsStruts 2 – Interceptors
Struts 2 – Interceptors
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 

Struts2 Workshop Agenda and Overview

  • 1.
  • 3. Workshop Agenda Day 1 1.Understanding Struts2 2.Architecture of Struts2 3.Features of Struts2 4.Environment Setup 5.Understanding Configuration of Project
  • 4. Day 1 Continue 6.Practical Lab 7.Introduction to Hibernate 8.Demo of Struts2 Application
  • 5. Understanding Struts2 •Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. •The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time. •To make web development easier for the developers.
  • 8. What kind of MVC is Struts2 Struts 2 is pull MVC
  • 9. Request Life Cycle • User sends a request to the server for requesting for some resource (i.e pages). • The FilterDispatcher looks at the request and then determines the appropriate Action. • Configured interceptors functionalities applies such as validation, file upload etc.
  • 10. • Selected action is executed to perform the requested operation. • Again, configured interceptors are applied to do any post-processing if required. • Finally the result is prepared by the view and returns the result to the user.
  • 11. Features of Struts2 • POJO forms and POJO actions • Tag Support • AJAX Support • Easy Integration
  • 12. Features continued… • Template Support • Plugin Support • Profiling • Easy to modify tags • Promote less configuration • View Technologies (JSP, Velocity, Freemarker,etc)
  • 13. Environment Setup 4 Simple Steps: •Step 1 - Setup Java Development Kit (JDK) •Step 2 - Setup Apache Tomcat •Step 3 - Setup Eclipse (IDE) •Step 4 - Setup Struts2 Libraries
  • 14. Understand Configuring Project 4 Simple Steps •Create an Action Class •Create a View •Create a launch page •Now configure all of them
  • 15. Create an Action Class public class Student { private String fullName; public String execute() throws Exception { return "success"; } public String getFullName() { return name; } public void setFullName(String name) { this.name = name; } }
  • 16. Create View <%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Welcome to Team Go Getters</title> </head> <body> Hello, We are glad to have <s:property value=”fullName"/> as our student. </body> </html>
  • 17. Create a launch page <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Struts2 Workshop</title> </head> <body> <h1>Welcome to Team Go Getters</h1> <form action=”welcome"> <label for="name">Please enter your name</label><br/> <input type="text" name=”fullName"/> <input type="submit" value=”Enroll"/> </form> </body> </html>
  • 18. Configuration Files Struts.xml file •Mapping between URL ,Action classes and Result Types (View) •Since Struts 2 requires struts.xml to be present in classes folder. • So create struts.xml file under the WebContent/WEB- INF/classes folder.
  • 19. Struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name=”workshop" extends="struts-default"> <action name=”welcome" class="com.teamgogetters.struts2.Employee" method="execute"> <result name="success">/Welcome.jsp</result> </action> </package> </struts>
  • 20. Multiple struts.xml files <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <include file="my-struts1.xml"/> <include file="my-struts2.xml"/> </struts>
  • 21. Web.xml • Entry point for any request to Struts 2 • Mapping FilterDispatcher • Deployment Descriptor • Security Parameters
  • 22. Web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Struts 2</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
  • 23. Interceptors • Providing preprocessing logic before the action is called. • Providing post-processing logic after the action is called. • Catching exceptions so that alternate processing can be performed.
  • 24. List of Interceptors • timer • params • checkbox • createSession • logger • fileUpload • scope • alias
  • 25. Snippet <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.devMode" value="true" /> <package name=”workshop" extends="struts-default"> <action name=”welcome" class="com.teamgogetters.struts2.Employee" method="execute"> <interceptor-ref name="params"/> <interceptor-ref name="timer" /> <result name="success">/welcome.jsp</result> </action> </package> </struts>
  • 26. Result and Result Types • <results> tag plays the role of a view in the Struts2 MVC framework. The action is responsible for executing the business logic. The next step after executing the business logic is to display the view using the <results> tag. • Struts comes with a number of predefined result types and whatever we've already seen that was the default result type dispatcher, which is used to dispatch to JSP pages. Struts allow you to use other markup languages for the view technology to present the results and popular choices include Velocity, Freemaker, XSLT and Tiles.
  • 27. Snippet <result name="success" type="dispatcher"> <param name="location"> /HelloWorld.jsp </param > </result> <result name="success" type="freemarker"> <param name="location"> /hello.fm </param> </result> <result name="success" type="freemarker"> <param name="location"> /hello.fm </param> </result>
  • 29. JDBC is going obsolete? • Complex if it is used in large projects • Large programming overhead • No encapsulation • Hard to implement MVC concept • Query is DBMS specific
  • 31. Hibernate: ORM • Hibernate is a high-performance Object/Relational persistence and query service • Hibernate takes care of the mapping from Java classes to database tables • Hibernate data query and retrieval facilities
  • 32. ORM New Generation 1. Let business code access objects rather than DB tables. 2. Hides details of SQL queries from OO logic. 3. Based on JDBC 'under the hood’ 4. No need to deal with the database implementation.
  • 33. ORM New Generation… 5. Entities based on business concepts rather than database structure. 6. Transaction management and automatic key generation. 7. Fast development of application.
  • 35. Hold your breathe till tomorrow
  • 36. Demo