Home > Java and Web > Spring MVC – Hello World

Spring MVC – Hello World

February 26, 2014 Leave a comment Go to comments

Berikut ini contoh aplikasi web Spring MVC hello world dengan zero annotation dengan tujuan memahami alur control dengan framework Spring MVC.
Structure project dengan editor yang digunakan Eclipse Helios.

Project Structure HelloWorld

Project Structure HelloWorld

  1. Definisikan DispatcherServlet

Fungsi dari DispatcherServlet adalah menerima semua request dan mendelegasikan request ke controller yang tepat untuk dilakukan pemrosesan. Pendefinisian DispatcherServlet dilakukan di web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemalocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>SpringMVC </display-name>

<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>

2. Definisikan Spring Bean Configuration

DispatcherServlet dengan nama “dispatcherServlet” digunakan untuk mendefinisikan file untuk memuat konfigurasi Spring MVC. By default, “dipatcherServlet” dengan “-servlet” sehingga nama file menjadi dispatcherServlet-servlet.xml

....
<bean name="/" class="com.mvc.controller.IndexController"></bean>
<bean name="/hello.do" class="com.mvc.controller.HalloController"></bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/WEB-INF/views/</value>
</property>

<property name="suffix">
<value>.jsp</value>
</property>
</bean>
....

Pada Spring bean configuration diatas terdapat  dua controller dan viewResolver. Controller adalah component yang dipanggil oleh Dispatcher Servlet untuk melakukan Business Logic. Sedangkan viewResolver melakukan mapping antara Logical name yang dihasilkan oleh controller dan Physical view location.

3.Spring Controller

IndexController.java

package com.mvc.controller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class IndexController extends AbstractController{

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
ModelAndView modelAndView = new ModelAndView("index");

return modelAndView;
}
}

HelloController.java

package com.mvc.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class HalloController extends AbstractController{

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {

ModelAndView modelAndView = new ModelAndView("helloWorld");
return modelAndView;
}
}

4. View
index.jsp dan helloWorld.jsp hanya untuk menampilkan text static.

Jadi bagaimana alur control Spring MVC?

  • Request diterima DispatcherServlet.
  • DispatcherServlet meneruskan request ke controller
  • Controller memproses request dan mengembalikan model dan view
  • Model dan view diterima DispatcherServlet, kemudian diteruskan ke viewResolver
  • Return dari viewResolver diterima DispatcherServlet, kemudian diteruskan ke client sebagai response.

Referensi : dari berbagai sumber.
Semoga bermanfaat

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: