24 Nisan 2019 Çarşamba

DispatcherServlet Nedir?


Spring uygulamalarinin merkezi Dispatcher Servlettir. Tum istekler buradan yonetilir. Servlet yapisindadir.
Gelen Http istekleri alir onlari ilgili kontroller a yonlendirir. Gerekli islemler yapildiktan sonra kontroller bize bir view dondurur ve ilgili view i response olarak dondurur.

Oncelikle bize bir web.xml gerekli. Burada bize gelen url uzantilarinin DispatcherServlet te handle edilmesi icin url-pattern tagi icinde handle edilmesi gerekir. Ornegin tum isteklerin handle edilmesi icin

<url-pattern>/</url-pattern>

yazmamiz yeterlidir.
html icin ise <url-pattern>*.html</url-pattern> seklinde yazilmalidir.

context:component-scan tagi icinde ise kodlarin scan edilecegi package i vermemiz gerekir.

<context:component-scan base-package="com.pluralsight" />

Diger bir kontrol ise

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

Burada da view dosyalarinin hangi folder altinda olacagi prefix icinde, uzantilari ise suffix icinde belirtilir.Buna viewResolver denir.

Kontroller kismi ise su sekilde calisir.

@Controller
public class AddGoalController {
       
        @RequestMapping(value="/addGoal", method=RequestMethod.GET)
        public String addGoal(Model model){
                    return "addGoal";
}

Yani url olarak http://localhost:8093/FitnessTracker/addGoal.html seklinde bir istek atildiginda bu metod tarafindan yakalanir ve return olarak view in adi verilmis. dosya uzantilarinin jsp olacagini
DispatcherServlet yapisinda belirtmistik. Yani kontroller addGoal.jsp adindaki view i bize response olarak dondurecektir.


Yani DispatcherServlet gelen istegi alir ve handlermapping ile ilgili controlleri bulur. orada gerekli islemler yapildiktan sonra view isaretcisi doner. Daha sonra view resolver ile ilgili view
bulunup response olarak dondurulur.

Hiç yorum yok:

Yorum Gönder