Monday, November 9, 2015
Wednesday, September 16, 2015
Spring MVC
DispacherServlet : it is a common entry point of all http request . It forwards the request to the controller .Spring MVC follows front controller design pattern in which there is one controller which responds to all the requests.
HandlerMapping : it determines the controller to be called from request url .
Controller : it services the request and sets up data to the model and pass it to View.
ViewResolver : it determines the view to which request is to be transferred.
Lets see how can make use for the above Spring components in a web application.
In web.xml file make an entry for dispatcher servlet.
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
Then map your application URL to the disptcher servlet.
<servlet-name>spring-web</servlet-name>
<url-pattern>/urlOfApp</url-pattern>
</servlet-mapping>
Create a file spring-web-servlet.xml and place it in WEB-INF with the following content.
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:annotation-driven />
</beans>
<listener-class>org.spring.framework.web.context.ContextLoaderListener</listener-class>
</listener>
context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/common-config.xml</param-value>
</context-param>
If we need to have multiple web application configuration in different XML files we can also configure that.
<servlet-name>spring-web</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/main-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>spring-web2</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/sub.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
To use annotations to configure beans instead of xml configuration we need to add the following line of code in Spring configuration xml.
<context:component-scan base-package="org.myProject.question" />
Controller :
@Controller
public class SampleController
{
@RequestMapping(value = "/controllerUrl")
public String performAction(ModelMap requestResponse)
{
String viewName =" home";
requestResponse.put("message","Welcome to Home page");
return viewName;
}
}
Controller returns the view name , View page is a jsp. Which has to be placed in the path specified for the ViewResolver bean , if you look into the spring-web-servlet.xml we have specified the path as WEB-INF/views/jsp using prefix and suffix attributes .
<%@ page contentType = "text/html; charset = UTF-8" %>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
So let's try to build a web application with a home page .
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>My App </display-name>
<servlet>
<servlet-name>spring-web</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring-web</servlet-name>
<url-pattern>/home</url-pattern>
</servlet-mapping>
</web-app>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd">
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/jsp/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<mvc:resources mapping="/resources/**" location="/resources/" />
<mvc:annotation-driven />
</beans>
public class SampleController
{
@RequestMapping(value = "/home")
public String performAction(ModelMap requestResponse)
{
String viewName =" home";
requestResponse.put("message","Welcome to Home page");
return viewName;
}
}
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>${message}</h2>
</body>
</html>
Let's try to build a restful web service using Spring MVC framework .
The following example will create a web service and list all the products .
Rest Controller :
@Controller
public class ProductController
{
@RequestMapping(value = "/products")
public @ResponseBody ProductListVO getAllProducts()
{
ProductListVO products = new ProductListVO();
//service call to get the products
return products;
}
}
End
Explain Normalization of database
There are 4 forms of Normalization
First Normal Form or 1NF
To be first normalized a database table should not have a duplicate data . Reference for a data should be unique . Lets assume there is a table Customer and another table Customer_Details . Both having columns customer_name and customer_id . In this situation,if we want to change customer_name , it is required to be changed in both the columns of the table , therefore is not first normalized.
Second Normal Form or 2NF
If the table is in 1NF then we can check for 2NF.
Tuesday, September 8, 2015
Java pass by value vs pass by reference
Hi guys,
This blog is about pass by value and pass by reference concept and understanding. Primitives are always pass by value, objects are always pass by reference.
If only the fields of the parameter are modified in the called method , the changes will be reflected in the calling method . If the reference of the parameter is assigned to a new object , the change will not be reflected in calling method .
Monday, September 7, 2015
Declarative Exception handling in struts
Wednesday, August 26, 2015
Advice in spring
Monday, August 24, 2015
Hashcode in java
What is the use of hashcode in java.
Hashcode is very important in java . in object class , you will have a method hashcode , which will give the hashcode of an object.
-
Hi Guys , In this blog I will share information related to error : can't bind to 'formcontrol' since it isn't a known pr...
-
Hi Guys , This blog is about the error " Target container is not a DOM element. " The full error in the console log is ...
-
Error Blog This blog is about the error Error: Objects are not valid as a React child Problem Statement error on start of...