Skip to main content

Overview on Struts2.





Struts2 is a popular and mature web application framework based on MVC design pattern. Struts2 is not just a new version of Struts1 but it is a complete re-write of Struts architecture.

The webwork framework initially started with Struts framework as the basis and it's goal was to offer an enhance and improved framework built on Struts to make the web development easier for the developers.

Architecture of Struts2 Framework.


FilterDispatcher routes all the requests of the framework by acting as the "front controller". With the use of the configured interceptors the request will be processed( pre-processing) before it is routed to the Action class.

Action will take control of the request and plays the role of the "model" component..Once all the interceptors are invoked  Action class takes the responsibility to execute the business logic and returns the result that is needed to be invoked.(Action class will communicate with different classes and decides the result type that is needed to be forwarded) 

According to the result of the Action class the framework will decide which page should be rendered. This result set uses the OGNL to access the ValueStack. Once the page is completed building with values it will be sent back to the client.

View  component can be implemented with Ajax,Free Marker etc..  Finally the response will be sent to through the interceptors for the post-processing of the result.

Advantages of Struts2 Framework.


  • An advanced framework with lot of features.
  • Based on MVC Architecture.
  • Simple configuration.
  • Interceptors to reduce the cross cutting functionality- Will provide pre-processing and post-processing of the reqests and the responses
  • OGNL(Object Graph Navigational Language) - It is more powerful than JSP and is used to render the resulted value in the view layer.
  • Pluggable with different result types like Ajax, JSP,   Free Marker,Velocity etc..

Comments

Popular posts from this blog

Basic concepts on NodeJs

Usecases of NodeJS. Walmart and ebay. Node is not the best platform for CPU intensive heavy computational applications. But it is ideal for building fast and scalable network applications.  NodeJS is capable of handling a huge number of simultaneous connections with high throughput. For each connection NodeJS does not spawn new Thread causing max out of memory instead handle all in single thread using non-blocking I/O model. Using this architecture NodeJS has achieved over 1 Million concurrent connections. Bubbling errors up to NodeJS core event loop will cause crashing the entire program. Netflix and Uber. NodeJs is best for, I/O bound applications. Data streaming applications. Data intensive real-time applications. JSON APIs based applications. Single page applications. Modules in NodeJS. In order  a design to be reliable and maintainable should avoid defining variables and functions in the global scope. Instead we can use modular...

RESTful API

Routers can be created according to REST principles such as get, post, put, delete etc..  GET  =>  get request to r etrieve data from database or data store(An array). POST  =>  post request to insert   data to database or data store(An array). PUT  =>  put request to update the data in database or data store(An array). DELETE  =>  delete request to delete data in database or data store(An array). Creation of routers. In this scenario I have created a schema call users using mongoose.  using mongoose the created users model is retrieved. GET request  using the keyword  " get"   the data can be retrieved.  retrieving all the users in the database. By giving a parameter in the url we can get information according to the given subject.  user is retrieved according to the _id. POST request  using the keyword  "pos t"   the...

Callbacks,Promises,Async Await and Closure in JavaScript.

This weeks blog will be including about callbacks and issues of it,promises which was used to overcome the issues of callbacks and closure in JavaScript. Callbacks, promises and async await All theses ways are used to deal with asynchronous data. By default, JavaScript programs run using a single thread. Though there are ways to create new threads, JavaScript is considered as single threaded language. JavaScript does not wait for I/O operations to get completed, instead it continues the execution of the program. This is called as non-blocking I/O. So that JavaScript is an asynchronous programming language because of this NIO nature. Callbacks, Promises and Async Await. As an example when a request is made to a server it will take couple of seconds to response with the relevant data, therefore you do not want to stall your program till the data is returned. You must keep on going or doing something where callbacks come in. Extra facts. until es6 => callbacks were used es...