SlideShare a Scribd company logo
Struts 2.0 an Overview ( http://www.skill-guru.com )
What is Struts? Struts is a framework to develop web application easily. Using Struts, makes easier to develop web application and maintain them.  Struts  is an open source framework which makes building web applications easier, based on Java Servlets and JSP technologies.  The Struts framework was created by Craig R. McClanahan and was donated to the Apache software foundation in 2000 . Since then it is a open source  software.
Why struts? What’s wrong with jsp/servlet coding? Using only Servlets  – difficult to output a html and needs lot of out.printlns – hard to read and clumsy Using only JSP  – added scriptlets and implicit objects  into jsp -  awkward to see java inside html– hard to read and maintain – useful if very small application Using JSP+ Java beans  – Code inside bean and jsp to display . Good choice for small applications. But what if there is need of multiple type of views? Eg: if there is need of different language display depending on client location?  - making request to a general servlet,  which outputs data according to the client locale, for same url request, will be good choice – Model 2 architecture evolved. Using JSP+Servlets+JavaBeans     Model 2 architecture Request made to servlet, servlet does business calculation using simple java POJO gets the result. Also decides the view and give back the response using the view to the client.  Here servlet called – Controller, Business calculation POJO called – Model and JSP called - View Uses  : the business logic is separated from JSPs and JSP gets displayed depending upon the result of model (the business function).    similar behavior like all applications above, but the code is more structured now. Changing business logic will not affect view and vice versa. Struts 2.0 also uses Model 2 MVC pattern Still the question remains: Why struts?
Stucture of JSP+Servlets+JavaBeans  :Model 2 architecture Servlet Java function JSP File
Why do we need Web Application Frameworks like Struts when we have good solution like Model 2 pattern? Struts will be obviously complicated than Model 2 even though it uses same MVC. Why do we make our application complicated using struts? Before answering this lets check what is a framework
What is a Web framework? Web framework is a basic readymade underlying structure, where you have to just add components related to your business. For example, if you take struts, it comes with all jars you might need to develop basic request response cycle, and with basic configuration. It provides the controller servlet or filter which will read your request and convert it to integer or float etc according to your business requirements.  If there is any exception while converting, you don’t have to deal with that. Framework deals with the problem and displays you  exact message. After all conversion, the framework automatically populate all your data needed from form to the java object. You don’t have to write much code to validate all your form data. Frame work provides some basic automatic validations. After you write business logic, you don’t have to write code to dispatch request to another page.  Etc It forces the team to  implement their code in a standard way. (helps debugging, fewer bugs etc).   For Example, in struts immediate backend logic should be in action classes’s method. Action class functions intern can call other components to finish business logic.   Framework might also  help you develop complex User Interface easily like iterating tables, the menu  etc (provide some tag libraries ) Using frameworks like struts 2.0, one need not have to have deep knowledge of Http protocol and its request and responses interfaces to write business logic .
Why Application Frameworks?   Most Model 2 architecture based web applications share a common set of functionality. For example, they all do receive and dispatch HTTP requests, invoking model methods, selecting and assembling views. If everybody is doing the same thing over and over every time  - Spending less time on business logic. Its good idea to have a common framework that support these set of functionalities  only thing developer have to do is basically using or extending the frameworks using common interface and classes and can concentrate on business logic. Provides rich set of features
Conclusion If your application is very small and have only few pages, implementing Model 2 pattern by coding servlets / JSP / and java beans would be easier and simpler. If Application is large have got complicated flow and business logic, need to be maintained for long terms, using frameworks would save time and resource. Using frameworks like struts make its easy to maintain and develop and application will be  more structured.
Why struts? Free to develop & deploy –open source Stable & Mature Many supported third-party tools Feature-rich Flexible & Extendable Large User Community, Expert Developers and Committers Rich tag library (html, bean tags etc) Easy to test and debug
How does struts make code simpler?  A Sample Jsp / sevrlet code: your application might have to do following in you beans or in jsp to get a value of user input in double: Jsp file:  <input name=“txtAmount”> </input> In Bean or Jsp file: String strAmount = request.getParameter(“txtAmount”); double amount = 0.0; try{ double amount = Double.parseDouble(strAmount ); }catch(Exception e){ // got error so return back.  // Big code for dispatching – also used in several places // return back to same page - hard coded   } bean.setAmout(amount); boolean flgResult = ejbObject.processAmount(amount);; if(flgResult){ // success // dispatch request to same or different page - hard coded }else{ // dispatch request to same or different page - hard coded }
Using web framework like struts 2.0 it will look simpler Jsp file: <s:textfield label=“Amount&quot; name=“amount&quot; value=&quot;%{amount}&quot; /> In action file you must have simple getter and setter: double amount; public double getAmount(){ return amount;} public void setAmount(double amount){this.amount = amount;} That’s it. You can directly use the amount in action method   without get extra code: public String execute() throws Exception{ // use amount directly return “success”; } Also there is no need of extra code for forwarding request.Action method is just returning a string “success”
Struts Framework Features Model 2 -MVC Implementation Internationalization(I18N) Support Rich JSP Tag Libraries Annotation and XML configuration options POJO-based actions that are easy to test Based on JSP, Servlet, XML, and Java Less xml configuration  Easy to test and debug with new features Supports Java’s Write Once, Run Anywhere Philosophy Supports different model implementations (JavaBeans, EJB, etc.) Supports different presentation implementations( JSP, XML/XSLT, etc)
What are the pieces of struts?  The filter dispatcher, by which all the requests to the applications gets filtered. - Controller The interceptors which called after filters, before action methods, apply common functionalities like validation, conversion etc Action classes with execute methods, usually storing and/or retrieving information from a database the view,i.e the jsp files Result will be figured out and the jsp file will be rendered.
Lets look at sample Hello World application of struts
Struts cons  Bigger Learning Curve  Less Transparent  For struts 2 there is less documentation
Software requirements to be installed JDK 1.5 or above Tomcat 6 or above http://tomcat.apache.org/download-60.cgi IDE – MyEclipse 6 http://www.myeclipseide.com/module-htmlpages-display-pid-4.html Download struts2-blank-2.0.14 from  http://struts.apache.org/download.cgi More details can be found at http://www.skill-guru.com
Ad

More Related Content

What's hot (20)

Introduction to struts
Introduction to strutsIntroduction to struts
Introduction to struts
Mindfire Solutions
 
Step by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts ApplicationStep by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts Application
elliando dias
 
Struts2
Struts2Struts2
Struts2
shankar_b7
 
Struts
StrutsStruts
Struts
s4al_com
 
Struts2
Struts2Struts2
Struts2
Scott Stanlick
 
Apache Struts 2 Framework
Apache Struts 2 FrameworkApache Struts 2 Framework
Apache Struts 2 Framework
Emprovise
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
dasguptahirak
 
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
elliando dias
 
Struts2
Struts2Struts2
Struts2
yuvalb
 
Struts course material
Struts course materialStruts course material
Struts course material
Vibrant Technologies & Computers
 
Struts 2
Struts 2Struts 2
Struts 2
Lalit Garg
 
Struts2 notes
Struts2 notesStruts2 notes
Struts2 notes
Rajiv Gupta
 
Struts2 course chapter 1: Evolution of Web Applications
Struts2 course chapter 1: Evolution of Web ApplicationsStruts2 course chapter 1: Evolution of Web Applications
Struts2 course chapter 1: Evolution of Web Applications
JavaEE Trainers
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
Long Nguyen
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 
Skillwise Struts.x
Skillwise Struts.xSkillwise Struts.x
Skillwise Struts.x
Skillwise Group
 
Struts
StrutsStruts
Struts
Rajkumar Singh
 
Struts Interceptors
Struts InterceptorsStruts Interceptors
Struts Interceptors
Onkar Deshpande
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
PawanMM
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOP
PawanMM
 
Step by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts ApplicationStep by Step Guide for building a simple Struts Application
Step by Step Guide for building a simple Struts Application
elliando dias
 
Apache Struts 2 Framework
Apache Struts 2 FrameworkApache Struts 2 Framework
Apache Struts 2 Framework
Emprovise
 
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
elliando dias
 
Struts2
Struts2Struts2
Struts2
yuvalb
 
Struts2 course chapter 1: Evolution of Web Applications
Struts2 course chapter 1: Evolution of Web ApplicationsStruts2 course chapter 1: Evolution of Web Applications
Struts2 course chapter 1: Evolution of Web Applications
JavaEE Trainers
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
Long Nguyen
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
divzi1913
 
Session 41 - Struts 2 Introduction
Session 41 - Struts 2 IntroductionSession 41 - Struts 2 Introduction
Session 41 - Struts 2 Introduction
PawanMM
 
Session 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOPSession 45 - Spring - Part 3 - AOP
Session 45 - Spring - Part 3 - AOP
PawanMM
 

Similar to Struts 2 Overview (20)

Servlets and jsp pages best practices
Servlets and jsp pages best practicesServlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
Divyam Pateriya
 
MVC
MVCMVC
MVC
akshin
 
struts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptxstruts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptx
ozakamal8
 
struts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptxstruts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptx
ozakamal8
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
Sunil Patil
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
Sunil Patil
 
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
Struts 2 Design and Programming A Tutorial 2nd Edition Budi KurniawanStruts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
pengemlamang47
 
Online grocery store
Online grocery storeOnline grocery store
Online grocery store
Kavita Sharma
 
Struts Interview Questions
Struts Interview QuestionsStruts Interview Questions
Struts Interview Questions
jbashask
 
Jsp and Servlets
Jsp and ServletsJsp and Servlets
Jsp and Servlets
Raghu nath
 
Mvc15 (1)
Mvc15 (1)Mvc15 (1)
Mvc15 (1)
sloumaallagui1
 
Ibm
IbmIbm
Ibm
techbed
 
Struts(mrsurwar) ppt
Struts(mrsurwar) pptStruts(mrsurwar) ppt
Struts(mrsurwar) ppt
mrsurwar
 
JavaServer Pages
JavaServer PagesJavaServer Pages
JavaServer Pages
silenceIT Inc.
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for women
lissa cidhi
 
Bt0083 server side programming-theory
Bt0083   server side programming-theoryBt0083   server side programming-theory
Bt0083 server side programming-theory
smumbahelp
 
Servlets and jsp pages best practices
Servlets and jsp pages best practicesServlets and jsp pages best practices
Servlets and jsp pages best practices
ejjavies
 
Server side programming bt0083
Server side programming bt0083Server side programming bt0083
Server side programming bt0083
Divyam Pateriya
 
struts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptxstruts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptx
ozakamal8
 
struts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptxstruts unit best pdf for struts java.pptx
struts unit best pdf for struts java.pptx
ozakamal8
 
D22 portlet development with open source frameworks
D22 portlet development with open source frameworksD22 portlet development with open source frameworks
D22 portlet development with open source frameworks
Sunil Patil
 
D22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source FrameworksD22 Portlet Development With Open Source Frameworks
D22 Portlet Development With Open Source Frameworks
Sunil Patil
 
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
Struts 2 Design and Programming A Tutorial 2nd Edition Budi KurniawanStruts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
Struts 2 Design and Programming A Tutorial 2nd Edition Budi Kurniawan
pengemlamang47
 
Online grocery store
Online grocery storeOnline grocery store
Online grocery store
Kavita Sharma
 
Struts Interview Questions
Struts Interview QuestionsStruts Interview Questions
Struts Interview Questions
jbashask
 
Jsp and Servlets
Jsp and ServletsJsp and Servlets
Jsp and Servlets
Raghu nath
 
Struts(mrsurwar) ppt
Struts(mrsurwar) pptStruts(mrsurwar) ppt
Struts(mrsurwar) ppt
mrsurwar
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
Sagar Nakul
 
Introduction to ejb and struts framework
Introduction to ejb and struts frameworkIntroduction to ejb and struts framework
Introduction to ejb and struts framework
s4al_com
 
J2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for womenJ2EE PPT --CINTHIYA.M Krishnammal college for women
J2EE PPT --CINTHIYA.M Krishnammal college for women
lissa cidhi
 
Bt0083 server side programming-theory
Bt0083   server side programming-theoryBt0083   server side programming-theory
Bt0083 server side programming-theory
smumbahelp
 
Ad

Recently uploaded (20)

Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptxSCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
Ronisha Das
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptxYSPH VMOC Special Report - Measles Outbreak  Southwest US 5-3-2025.pptx
YSPH VMOC Special Report - Measles Outbreak Southwest US 5-3-2025.pptx
Yale School of Public Health - The Virtual Medical Operations Center (VMOC)
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
Social Problem-Unemployment .pptx notes for Physiotherapy Students
Social Problem-Unemployment .pptx notes for Physiotherapy StudentsSocial Problem-Unemployment .pptx notes for Physiotherapy Students
Social Problem-Unemployment .pptx notes for Physiotherapy Students
DrNidhiAgarwal
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Library Association of Ireland
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...Multi-currency in odoo accounting and Update exchange rates automatically in ...
Multi-currency in odoo accounting and Update exchange rates automatically in ...
Celine George
 
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public SchoolsK12 Tableau Tuesday  - Algebra Equity and Access in Atlanta Public Schools
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schools
dogden2
 
apa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdfapa-style-referencing-visual-guide-2025.pdf
apa-style-referencing-visual-guide-2025.pdf
Ishika Ghosh
 
LDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini UpdatesLDMMIA Reiki Master Spring 2025 Mini Updates
LDMMIA Reiki Master Spring 2025 Mini Updates
LDM Mia eStudios
 
Understanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s GuideUnderstanding P–N Junction Semiconductors: A Beginner’s Guide
Understanding P–N Junction Semiconductors: A Beginner’s Guide
GS Virdi
 
GDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptxGDGLSPGCOER - Git and GitHub Workshop.pptx
GDGLSPGCOER - Git and GitHub Workshop.pptx
azeenhodekar
 
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptxSCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
SCI BIZ TECH QUIZ (OPEN) PRELIMS XTASY 2025.pptx
Ronisha Das
 
P-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 finalP-glycoprotein pamphlet: iteration 4 of 4 final
P-glycoprotein pamphlet: iteration 4 of 4 final
bs22n2s
 
Quality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdfQuality Contril Analysis of Containers.pdf
Quality Contril Analysis of Containers.pdf
Dr. Bindiya Chauhan
 
Anti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptxAnti-Depressants pharmacology 1slide.pptx
Anti-Depressants pharmacology 1slide.pptx
Mayuri Chavan
 
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
World war-1(Causes & impacts at a glance) PPT by Simanchala Sarab(BABed,sem-4...
larencebapu132
 
Social Problem-Unemployment .pptx notes for Physiotherapy Students
Social Problem-Unemployment .pptx notes for Physiotherapy StudentsSocial Problem-Unemployment .pptx notes for Physiotherapy Students
Social Problem-Unemployment .pptx notes for Physiotherapy Students
DrNidhiAgarwal
 
To study Digestive system of insect.pptx
To study Digestive system of insect.pptxTo study Digestive system of insect.pptx
To study Digestive system of insect.pptx
Arshad Shaikh
 
Introduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe EngineeringIntroduction to Vibe Coding and Vibe Engineering
Introduction to Vibe Coding and Vibe Engineering
Damian T. Gordon
 
How to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POSHow to Manage Opening & Closing Controls in Odoo 17 POS
How to Manage Opening & Closing Controls in Odoo 17 POS
Celine George
 
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Michelle Rumley & Mairéad Mooney, Boole Library, University College Cork. Tra...
Library Association of Ireland
 
Unit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdfUnit 6_Introduction_Phishing_Password Cracking.pdf
Unit 6_Introduction_Phishing_Password Cracking.pdf
KanchanPatil34
 
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessUltimate VMware 2V0-11.25 Exam Dumps for Exam Success
Ultimate VMware 2V0-11.25 Exam Dumps for Exam Success
Mark Soia
 
How to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of saleHow to manage Multiple Warehouses for multiple floors in odoo point of sale
How to manage Multiple Warehouses for multiple floors in odoo point of sale
Celine George
 
Ad

Struts 2 Overview

  • 1. Struts 2.0 an Overview ( http://www.skill-guru.com )
  • 2. What is Struts? Struts is a framework to develop web application easily. Using Struts, makes easier to develop web application and maintain them. Struts is an open source framework which makes building web applications easier, based on Java Servlets and JSP technologies. The Struts framework was created by Craig R. McClanahan and was donated to the Apache software foundation in 2000 . Since then it is a open source software.
  • 3. Why struts? What’s wrong with jsp/servlet coding? Using only Servlets – difficult to output a html and needs lot of out.printlns – hard to read and clumsy Using only JSP – added scriptlets and implicit objects into jsp - awkward to see java inside html– hard to read and maintain – useful if very small application Using JSP+ Java beans – Code inside bean and jsp to display . Good choice for small applications. But what if there is need of multiple type of views? Eg: if there is need of different language display depending on client location? - making request to a general servlet, which outputs data according to the client locale, for same url request, will be good choice – Model 2 architecture evolved. Using JSP+Servlets+JavaBeans  Model 2 architecture Request made to servlet, servlet does business calculation using simple java POJO gets the result. Also decides the view and give back the response using the view to the client. Here servlet called – Controller, Business calculation POJO called – Model and JSP called - View Uses : the business logic is separated from JSPs and JSP gets displayed depending upon the result of model (the business function).  similar behavior like all applications above, but the code is more structured now. Changing business logic will not affect view and vice versa. Struts 2.0 also uses Model 2 MVC pattern Still the question remains: Why struts?
  • 4. Stucture of JSP+Servlets+JavaBeans :Model 2 architecture Servlet Java function JSP File
  • 5. Why do we need Web Application Frameworks like Struts when we have good solution like Model 2 pattern? Struts will be obviously complicated than Model 2 even though it uses same MVC. Why do we make our application complicated using struts? Before answering this lets check what is a framework
  • 6. What is a Web framework? Web framework is a basic readymade underlying structure, where you have to just add components related to your business. For example, if you take struts, it comes with all jars you might need to develop basic request response cycle, and with basic configuration. It provides the controller servlet or filter which will read your request and convert it to integer or float etc according to your business requirements. If there is any exception while converting, you don’t have to deal with that. Framework deals with the problem and displays you exact message. After all conversion, the framework automatically populate all your data needed from form to the java object. You don’t have to write much code to validate all your form data. Frame work provides some basic automatic validations. After you write business logic, you don’t have to write code to dispatch request to another page. Etc It forces the team to implement their code in a standard way. (helps debugging, fewer bugs etc). For Example, in struts immediate backend logic should be in action classes’s method. Action class functions intern can call other components to finish business logic. Framework might also help you develop complex User Interface easily like iterating tables, the menu etc (provide some tag libraries ) Using frameworks like struts 2.0, one need not have to have deep knowledge of Http protocol and its request and responses interfaces to write business logic .
  • 7. Why Application Frameworks? Most Model 2 architecture based web applications share a common set of functionality. For example, they all do receive and dispatch HTTP requests, invoking model methods, selecting and assembling views. If everybody is doing the same thing over and over every time - Spending less time on business logic. Its good idea to have a common framework that support these set of functionalities only thing developer have to do is basically using or extending the frameworks using common interface and classes and can concentrate on business logic. Provides rich set of features
  • 8. Conclusion If your application is very small and have only few pages, implementing Model 2 pattern by coding servlets / JSP / and java beans would be easier and simpler. If Application is large have got complicated flow and business logic, need to be maintained for long terms, using frameworks would save time and resource. Using frameworks like struts make its easy to maintain and develop and application will be more structured.
  • 9. Why struts? Free to develop & deploy –open source Stable & Mature Many supported third-party tools Feature-rich Flexible & Extendable Large User Community, Expert Developers and Committers Rich tag library (html, bean tags etc) Easy to test and debug
  • 10. How does struts make code simpler? A Sample Jsp / sevrlet code: your application might have to do following in you beans or in jsp to get a value of user input in double: Jsp file: <input name=“txtAmount”> </input> In Bean or Jsp file: String strAmount = request.getParameter(“txtAmount”); double amount = 0.0; try{ double amount = Double.parseDouble(strAmount ); }catch(Exception e){ // got error so return back. // Big code for dispatching – also used in several places // return back to same page - hard coded } bean.setAmout(amount); boolean flgResult = ejbObject.processAmount(amount);; if(flgResult){ // success // dispatch request to same or different page - hard coded }else{ // dispatch request to same or different page - hard coded }
  • 11. Using web framework like struts 2.0 it will look simpler Jsp file: <s:textfield label=“Amount&quot; name=“amount&quot; value=&quot;%{amount}&quot; /> In action file you must have simple getter and setter: double amount; public double getAmount(){ return amount;} public void setAmount(double amount){this.amount = amount;} That’s it. You can directly use the amount in action method without get extra code: public String execute() throws Exception{ // use amount directly return “success”; } Also there is no need of extra code for forwarding request.Action method is just returning a string “success”
  • 12. Struts Framework Features Model 2 -MVC Implementation Internationalization(I18N) Support Rich JSP Tag Libraries Annotation and XML configuration options POJO-based actions that are easy to test Based on JSP, Servlet, XML, and Java Less xml configuration Easy to test and debug with new features Supports Java’s Write Once, Run Anywhere Philosophy Supports different model implementations (JavaBeans, EJB, etc.) Supports different presentation implementations( JSP, XML/XSLT, etc)
  • 13. What are the pieces of struts? The filter dispatcher, by which all the requests to the applications gets filtered. - Controller The interceptors which called after filters, before action methods, apply common functionalities like validation, conversion etc Action classes with execute methods, usually storing and/or retrieving information from a database the view,i.e the jsp files Result will be figured out and the jsp file will be rendered.
  • 14. Lets look at sample Hello World application of struts
  • 15. Struts cons Bigger Learning Curve Less Transparent For struts 2 there is less documentation
  • 16. Software requirements to be installed JDK 1.5 or above Tomcat 6 or above http://tomcat.apache.org/download-60.cgi IDE – MyEclipse 6 http://www.myeclipseide.com/module-htmlpages-display-pid-4.html Download struts2-blank-2.0.14 from http://struts.apache.org/download.cgi More details can be found at http://www.skill-guru.com