NetBeans ortamında MVC alt yapısında basit bir web uygulaması yapma

Bu yazı NetBeans ortamında MVC alt yapısında basit bir web uygulaması yapılmasını anlatacaktır. MVC, model-view-controller olup daha sonra database bağlantıları da kullanılarak geliştirilmesi beklenen bir programlama mimarisidir. Database’deki tablolara göre oluşturulan classlar model olarak kullanılırken, view web ara yüzünü temsil etmekte ve jsp sayfaları kullanılmaktadır. Controller classları ise view ve model arasındaki gerekli işlemleri yapmak için kullanılır. Bu tutorial için gerekli olan programlar, NetBeans, JDK ve GlassFish’dir. Bu projede http://netbeans.org/kb/docs/web/quickstart-webapps-spring.html sitesi referans alınmıştır.

MVC projesi oluşturma

MVC mimarisinde bir proje oluşturmak için öncelikle NetBeans’de yeni proje açmalı ve onun özelliklerini düzenlemeliyiz. Yeni proje açma işlemlerini şöyle sıralayabiliriz.

  1. File>> New Project açarak, Java Web kategorisinden Java Web Application seçilir.
  2. Proje ismi HelloSpring olarak girilip,’next’ e basılır.
  3. GlassFish server’ın ekli olduğu kontrol edilerek bir sonraki adıma geçilir.
  4. Bu adım Framework seçim aşamasıdır ve Spring Web MVC seçimi yapılır ve Spring Library olarak da açılan listeden Spring Framework 3.1.1. RELEASE seçilir.(Resim)
    MVC projesi oluşturma
  5. “Configuration” tabında, Dispatcher Servlet için mapping ve isimlendirme işlemi otomatik yapılmıştır.
    configuration
  6. Finish butonuna basılarak Spring Framework’nda default bir proje şekildeki libraryler ve yapısal dosyalarla oluşturulmuş olur.
    spring-framework-libraries

Proje oluşturulurken otamatik olarak gelen web.xml, Dispatcher Servlet ve Redirect.jsp dosyalarının içeriği için ayrıntılı bilgi referans alınan sitede ayrıntılı olarak mevcut bulunmaktadır. Kısaca özetlersek, web.xml proje run edildiğinde default olarak “redirect.jsp” nin açılmasını sağlayan xml kodlarına sahiptir. “Redirect.jsp” ise gelen requestleri “index.htm”’e yönlendirmektedir. Requestlerin değerlendirilmesi için “*.htm” adreslerinin map edilmesini sağlayan ise “DispatcherServlet” dosyasıdır. Gelen requestlerin değerlendirilmesi için controllera yönlendirme ayarlarının yapılması ve ‘.jsp’ uzantılı sayfaların view olarak kullanılmasını sağlayan dosya yine “DispatcherServlet.xml” dosyasıdır.

MVC Web uygulamasını düzenleme

Model Class:Students

Öncelikle, model classı olarak bir Students.java classı yaratacağız. (Daha sonra database için kullanılabilecek Frameworklerle bu class databasedeki student tablosuna bağlanabilir.) Bu class’ı yaratmak için aşağıdaki adımlar takip edilmelidir:

  1. Yarattığımız “HelloSpring” adlı projede yer alan “Source Packages” dosyasına sağ tuş tıklayarak, new >> Java Class a basıyoruz.
  2. Burada açılan pencerede class ismi ve yer alacağı package ismi girilerek finish’e basılır.(resim)
    model-class-yaratma
  3. Açılan Students.java’da Student için gerekli variable’lar ve lazım olabilecek constructer’lar eklenir.
    student-variables
  4. Eklenen variablelar için alma ve düzenleme fonksiyonları yazılması gerekiyor. Bunun için NetBeans’ın bir özelliği kullanılır. Variable’lar üzerinde sağ tuş tıklanıp, “Insert Code” seçeneği seçilir. Daha sonra açılan pencerede “Getter and Setter” tıklanarak, variablelar seçilir. Böylelikle getter(alma) ve Setter(düzenleme) fonsiyonları generate edilmiş olur.
    generate-getters-and-setters
  5. Students.java classı için şimdilik gerekli olanlar yapılmıştır.

Controller class oluşturma: StudentController.java

View ile model arasındaki işlemleri gerçekleştirmek için aşağıdaki adımları takip ederek controller classı oluşturuyoruz.

  1. Proje oluşturulduğunda oluşmuş “source packages”a sağ tuş tıklayarak new>> other tıklıyoruz, açılan pencereden ise “Spring Framework” ve “simpleFormController”ı seçiyoruz.
    controller-class-olusturma
  2. “next” e basarak 2. Basamağa geçildiğinde yine class ismi(“StudentController”) ve bulunacağı package(“controller”)’ı yazarak “finish”e basıyoruz ve controller classını oluşturuyoruz.
  3. Açılan class ilk başta şu şekilde geliyor.
    java-class
  4. Initialize için yorumda olan kısımları açarak içlerini aşağıdaki gibi düzenliyoruz.
    initialize
  5. “setSuccessView” ve “setFormView” içine yazılanlar request edilip response verildiğinde açılacak view ve başlangıçta açılacak olan viewlardır. (Daha sonra view yaratırken düzenlenecekler.)
  6. Düzenlenen formView’da submit butonu olduğundan butona basıldığında yapılacak işlem için “doSubmitAction” silinerek yorumda olan “onSubmit” fonksiyonu aşağıdaki şekilde düzenlenip override edilir.
    override-submit-function
  7. Bu kodlar eklendiğinde gelecek import hatalarının çözümü için kodun üzerinde sağ tuş tıklayarak, “fix imports” a basılır ve aşağıdaki şekildeki import’lar yapılır.
    import
    “onSubmit” fonksiyonu ile verilecek response’un student isim listesi dönmesi istendiği için “getNameStudent” adında bir fonksiyon oluşturulmuştur. “onSubmit” fonksiyonu “command” adında request esnasında gelen bilgiyi eline bulunduran bir objeye sahiptir. Bu obje students’a dönüştürülerek, yazılan “getNameStudent” fonksiyonuna Students modelinin variable’rından biri olan “studentId” parametre olarak verilmiş ve student isimlerinden oluşturulan bir string listesi elde edilmiştir. Bu liste daha sonra ModelAndView classına(bu class spring librarylerinde yer alır) objesinin “addObject” fonksiyonu ile response için kullanılacak view jsp’sine eklenmiştir. Bu controller sayesinde açılan view’da girilen bilginin işlenmesi ve bu bilgiye cevap vermek üzere successView’ın açılması sağlanır.
  8. Oluşturulan controller’ın çalışabilmesi için “dispatcher Servlet.xml” kaydedilmesi gereklidir bunun için “dispatcherServlet.xml” dosyasına aşağıdaki kod parçası eklenir.
    bean-student
  9. Oluşturulan controllerın web browserda açılması beklenen “.htm” uzantısı üretmesi için “dispatcherServlet.xml”’e bir spring özelliği eklenmesi gerekmektedir.
    spring-ozelligi-eklemeBu özellik sayesinde spring hazırlanan controller’ın “Controller” dan önce yazılan isimdeki “.htm” ile mapping yapması sağlanmış olur.

tableView.jsp ve student.view classlarının oluşturulması

studentView.jsp

Öncelikle response verildiğinde student name listesi görülecek view jsp’sini yarataceğız. Bunun için yapılması gerekenler:

  1. Yeni bir jsp oluşturulması gerekir. Bunun için projede yer alan Web Pages klasörüne sağ tuş tıklanıp new>> JSP seçilir.
  2. Açılan pencerede isim(studentView) yazılır ve yer alacağı dosya(WEB-INF/jsp) seçilir.
    studentviewjsp
  3. “finish” e basılarak JSP oluşturulacaktır ve aşağıdaki şekilde hazırlanacaktır.
    finish
  4. Oluşturulan studentView.jsp şekildeki gibi düzenlenecektir.
    studentviewjsp-edit

“title” kısmına sayfa açıldığında, web browserda görünecek başlık yazılırken, body de başlıklar(h1, h2) halinde yazılanlar daha önce controller’dan gönderilen “studenName” adındaki string listesinin sırasıyla gösterilmesidir. Burada “foreach” gibi html kodları kullanılarak da listeden isimler çekilebilir.

tableView.jsp

Bu jsp sayfası proje run edildiğinde web browser açılacak sayfadır. Bu sayfada student idsi girilmesi için bir text input boşluğu bir de girilen bilginin controller’da işlenmesini sağlaan submit butonu eklenecektir. Bunun için yukarıdaki 3 maddeden sonra, yani son madded JSP aşağıdaki şekilde düzenlemelidir.

tableviewjsp

Şekildeki kodda yer alan “spring:nestedPath” spring özelliği olup ulaşılacak controller path’ini belirlemede kullanılır.

Projeyi çalıştırma

Projeyi run edebilmek ve hazırladığımız sayfaların açılmasını sağlamak için projeye sağ tıklanıp, properties’ine girerek açılan pencerede, Run kategorisi seçilip, “Relative URL” kısmına run edildiğinde web browserda açılacak “.htm” uzantılı sayfanın ismi verilir. Bu durumda hazırlanan controller’ın ismi “StudentController” olduğu için “student.htm” ismi verilmelidir. Bu controller hazırlanırken “dispatcherServlet.xml” dosyasına yazdığımız spring özelliği sayesinde otomatik generate edilmiştir.

runningproject

Son olarak NetBeans’de run tuşuna basılarak, doşya çalıştırılır. Öncelikle tableViewda verilmiş olan özellikler gözükecektir. Açılan sayfa:
studentid

Açılan sayfada studentID ye girilecek sayı ile Students.java modeli kullanılarak bir students objesi oluşturulur. Bu oluşturulan student Id’isi ile ise “StudentController.java”da bir name listesi oluşturulur(bu kısım sadece liste dönebilmesi için geçici olarak yazılmıştır.) Ve controller’da başarılı bir response verildiğinde çağrılacak olan studentView.jsp çalışarak aşağıdaki şekilde gösterildiği gibi başlıkları halinde listedeki isimleri(string) dönecektir.

studentname

Proje bu şekilde tamamlanmış olup, Spring MVC yapısında basit bir web application’ı yapılmış olmaktadır.

Orta Doğu Teknik Üniversitesi Bilgisayar Mühendisliği mezunu… IT sektöründe yazılım mühendisi.
Etiketler:

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak.