Skip to main content

Project Architecture's

1.) Functional flow/ Architecture
a.) Only for 6+/7+years
b.) Explain the flow of process/business
2.) Technical Flow/Architecture
a.) Upto 5+ years
b.) Explain technologies /components that are involved in the project

Servlet & JSP Project Architecture:-




1.)What is need of Business Deligate to convert VO class object to DTO class object ?
a.) If Business Deligate is not there servlet component directly prepares DTO class object by receiving and translating form data and passes to service class, if service class excepts certain input in other format like numeric employee number as string employee number then we need to modify servlet component code i.e For the changes that happened in business tier service component we have to modify servlet component of presentation tier

b.) If Business Deligate is taken then it gets original form data as VO class object having string inputs and converts VO class object to DTO class object to pass to service class

c.) If service class excepts inputs in different format from DTO then we need to change code of Business Deligate which belongs to Business Tier and need not to touch the code of servlet component of Presentation Tier

2.)How do you propagate the Exception that are raised in servlet and to End user ?
a.) If you place try-catch block in service/ DAO class the raised exception will not be propagated to next component because try-catch block suppress or eats the exception to overcome these problem declare the exception to be thrown using throws statement in DAO, service classes

b.) DAO class throws the exception to service class

c.) service class throws the exception to controller servlet and these servlet catches and handle the exception and uses rd.forward in catch block to forward the control to error pages. In these approach one practical problem is there i.e: if technologies of DAO,service class changes the exception will change and it leads to modifying the code of servlet component(Presentation Tier)

d.) To overcome these problem make Business Deligate class getting technology specific exceptions of service,DAO classes and translate them project specific user defined exception and propagate that exception to servlet component, it is like converting SQLException to Patient already register exception(user defined exception) due to these any change in service or DAO technologies we just need to change the code of Business Deligate not the code of servlet component



e.) Develop Presentation Tier and Business Tier components having loose coupling

Spring Project Architecture:-



a.) In spring project architecture there is no necessity of Business Deligate because we can do it responsibilities with the direct facilities of spring components

1.) The technologies used in DAO, service layer throw unchecked exceptions, so the propagation of exception take place automatically, moreover spring itself converts technology specific exceptions into common DataAccessException and we can configure error page for these exception in controller classes shown below
  1. @Controller 
  2. public class MyController{ 
  3. @ExceptionHandler(value=DataAccessException) 
  4. public string handlerException(){ 
  5. return "error" 
  6. }
b.) Controller class that takes the responsibilities of giving command object having form data but we convert these command object to DTO object to pass to service class
Note: Don't pass command object to service class directly because command class is bound with presentation tier controller component

Comments

Post a Comment

Popular posts from this blog

JSP Comments

Comments in JSP:- -->Compiler /Interpreter doesn't take commented code for compilation /Interpretation, so the commented code doesn't participate in execution JSP supports 3 types of comments:- a.)HTML comments /Template text comments/ Output comments Syn :- <!---text---> -->Recognized by html interpreter of browser b.)JSP comments /Hidden comments Syn :- <%--text--%> -->JSP page compiler recognize these comments c.)Java comments /Scripting comments Syn :- //-->For single line /*-- -----*/-->For multiple line -->Java compiler(java) recognize these comments -->In Eclipse IDE JES class for first.jsp comes in our(workspace)folder/.metadata/.plugins/.org eclipse Comments (1)JSP comment<%--%> (2)Java comment(// or /*--*/) (3)HTML comments(<!---> JES Source Code (1)No (2)Yes (3)Yes In JES compiled code (1)No (2)No (3)Yes In the code going to browser (1)No (2)No (3)Yes Output (1)No (2)No (3)No -->Jsp comments are not visible in any phase

Scripting Tags

JSP Tags/ Elements (1)Scriptlet     Standard syn:-         <%.........%>     xml syn:-        <jsp:scriptlet>...</jsp:scriptlet> Note: All scripting tags allows us to place script code(java code) 1.)The code placed in scriptlet go to _jspService(-,-) of JES class 2.)In a jsp page we can have zero or more scriptlets 3.)We place request processing logics in scriptlets 4.)Variables declared in scriptlets becomes the local variables in _jspService(-,-) of JES class in first.jsp In first.jsp: <% int a=10;  out.println("square:"+(a*a));%> In first_jsp.java(JES): public class first_jsp extends..{     public void _jspService(-,-){        int t=30;        out.println(“Square:”+(t*t));     }  } The code placed in scriptlet can use implicit objects of jsp because implicit objects and the code placed scriptlet goes to _jspService(-,-) method of JES class first.jsp Browser s/w name: <%out.println(request.getHeader("user-agent");%> first_jsp.java pu