Tarih : 09-07-2010 | Yazan : Hüseyin Bora | Kategori : Framework, Java, MVC, Mahsullerim, Tasarım Kalıpları
Bundan önceki yazıda da belirtiğim gibi java ile ufak bir mvc pattern uygulaması geliştirdim. Adında da anlaşılacağı üzere basit mvc kolay kullanıma yönelik bir çalışma oldu 7 kb hacmi ile hızlı mvc uygulamaları için ideal.
Öncelikle http://code.google.com/p/javabasicmvc/downloads/list adresini ziyaret edip simplemvc.jar dosyasını indiriyosunuz ve projenizin lib klasörüne yerleştiriyosunuz.
projenin ana dizini altına views altında bir klasör oluşturuyoruz *.jsp dosyalarımız burada olacak. index.jsp ve 404.jsp dosyalrını buraya yerleştiriyoruz.
XML Yapılandırması mvc paketi içerisindeki frontcontroller sınıfı bir servlet olarak web.xml dosyamızda tanıtıyoruz ve gelen istekleri frontcontroller sınıfına iletiyoruz artık biz aradan çekiliyoruz.
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>FrontController</servlet-name> <servlet-class>mvc.FrontController</servlet-class> </servlet> <servlet-mapping> <servlet-name>FrontController</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>FrontController</welcome-file> </welcome-file-list> </web-app>
kontrolcu sınıflarımızda app.controller paketinde bulunduruyoruz.
package app.controllers;
import mvc.*;
class mycontroller implements Controller {
public View Controller() {
return new View("myview");
}
}
views klasörüne myview.jsp dosyasını ekledikten sonra
adres satırına uygulama adı controller adı şeklinde uygulamamızı çalıştırıyoruz
http://localhost:8084/uygulama/mycontroller
View e veri göndermek. aşağıdaki gibi bir sınıfımız olsun.
User.java
package app.models;
public class User {
private String name;
private String mail;
public User() {
}
public User(String name, String mail) {
this.name = name;
this.mail = mail;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
userview.jsp dosyamızda
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h2>User</h2>
Adi : ${user.name}
<br>
Mail : ${user.mail}
</body>
</html>
Controller sınıfımız @WebMethod annotation ile birlikte da yeni bir metod ekliyoruz
@WebMethod annotation ile eklenmiş methodlar frontcontroller tarafından işletilirler.
mycontroller.java
package app.controllers;
import app.models.User;
import mvc.*;
class mycontroller implements Controller {
public View Controller() {
return new View("myview");
}
@WebMethod
public View user() {
return new View("userview", new User("bora", "bora@webmahsulleri.com"));
}
}
tekrar adres satırına
http://localhost:8084/yourapp/mycontroller/user
yazdığımızda mycontroller sınfının user metodu işletiliyor ve user metodu userview.jsp dosyasınıişletilmek üzere frontcontroller a bildiriyor.















