1. 程式人生 > >struts2和springmvc的前端控制器

struts2和springmvc的前端控制器

2.在dispatcher-servlet.xml配置檔案中配置,spring可以自動去掃描base-package下面或者子包下面的Java檔案,如果掃描到有@Component,@Controller,@Service等這些註解的類,則把這些類註冊為bean。

即告訴Spring 該到哪裡去找標記為@Controller 的Controller 控制器。

3.

在net.saassoft.admin.web下面新建具體的controller類,並新增相應的註解說明

4.

@Controller標註:這裡的標註對應spring2.5的Controller介面及其實現類,被此標註修飾的類名代表這個類為一個Controller,可以實現請求的轉發。

@RequestMapping:使用此標註處理控制器轉發過來的url請求。此標註可以新增在類前或者方法前,並形成類似一級、二級的攔截形式。

RequestMapping是一個用來處理請求地址對映的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。

當@RequestMapping 標記在Controller 類上的時候,裡面使用@RequestMapping 標記的方法的請求地址都是相對於類上的@RequestMapping 而言的;當Controller 類上沒有標記@RequestMapping 註解時,方法上的@RequestMapping 都是絕對路徑。這種絕對路徑和相對路徑所組合成的最終路徑都是相對於根路徑“/ ”而言的

例如請求../student/add.do

Struts2 前端控制器實現:

Struts 2歷史 

最早出現的Struts1是一個非常著名的框架,它實現了MVC模式。Struts1簡單小巧,其中最成熟的版本是Struts1.2。 之後出現了WebWork框架,其實現技術比Struts1先進,但影響力丌如Struts1。 在框架技術不斷髮展過程中,有人在WebWork核心XWork的基礎上包裝了Struts1(算是兩種框架的整合),由此,結合了Struts1的影響力和WebWork的先進技術,Struts 2誕生了。 所以說,Struts2丌是Struts1的升級,它更像是WebWork的升級版本。

開發準備過程

拷貝Struts2的核心Jar包到WEB-INF/lib/下
基本功能核心jar包 5個(2.1.8)
  struts2-core-2.1.8.1.jar(*)
Struts2核心包,是Struts框架的“外衣”
  xwork-core-2.1.6.jar(*)
Struts2核心包,是WebWork核心。
  ognl-2.7.3.jar
用來支援ognl表示式的,類似於EL表示式,功能比EL表示式強大的多。
  freemarker-2.3.15.jar
freemarker是比jsp更簡單好用,功能更加強大的表現層技術,用來替代jsp的。 在Struts2中提倡使用 freemarker模板,但實際專案中使用jsp也很多。
  commons-fileupload-1.2.1.jar
用於實現檔案上傳功能的jar包。

配置過程

1、在web.xml中配置Struts2的前端控制器,Struts2用Filter實現的前端控制器。

  1. <spanstyle="font-size: 12px;"><?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  5.   <display-name>struts2-test</display-name>
  6.   <welcome-file-list>
  7.     <welcome-file>index.html</welcome-file>
  8.     <welcome-file>index.htm</welcome-file>
  9.     <welcome-file>index.jsp</welcome-file>
  10.     <welcome-file>default.html</welcome-file>
  11.     <welcome-file>default.htm</welcome-file>
  12.     <welcome-file>default.jsp</welcome-file>
  13.   </welcome-file-list>
  14.   <filter>
  15.   <filter-name>Struts2</filter-name>
  16.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  17.    </filter>
  18.    <filter-mapping>
  19.         <filter-name>Struts2</filter-name>
  20.         <url-pattern>/*</url-pattern><!--/*表示所有的請求都要經過該過濾器 --></filter-mapping>
  21. </web-app></span>


2、hello.jsp2.hello.jsp

  1. <%@ page language="java"contentType="text/html; charset=utf-8"
  2.     pageEncoding="utf-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <metahttp-equiv="Content-Type"content="text/html; charset=utf-8">
  7. <title>你好</title>
  8. </head>
  9. <body>
  10. <formaction="welcome.action"method="post">
  11.     Please input your name:<inputtype="text"name="name"/><br/>
  12.         Please input your password<inputtype="password"name = "password"/><br/>
  13.     <inputtype = "submit"value="Submit"/>
  14. </form>
  15. </body>
  16. </html>

3.welcome.jsp頁面

  1. <%@ page language="java"contentType="text/html; charset=utf-8"
  2.     pageEncoding="utf-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <metahttp-equiv="Content-Type"content="text/html; charset=utf-8">
  7. <title>歡迎</title>
  8. </head>
  9. <body>
  10. 歡迎您 ${name}(${password})  
  11. </body>
  12. </html>


4.新建WelcomeAction類

  1. package com.qiaozhq.outman;  
  2. public class WelcomeAction {  
  3.     private String name;  
  4.     private String password;  
  5.     public String execute(){  
  6.         System.out.println("WelcomeAction execute...");  
  7.         System.out.println("name="+name+",password="+password);  
  8.         if("".equals(name)){  
  9.             return "fail";  
  10.         }  
  11.         return "success";  
  12.     }  
  13.     public String getName() {  
  14.         return name;  
  15.     }  
  16.     public void setName(String name) {  
  17.         this.name = name;  
  18.     }  
  19.     public String getPassword() {  
  20.         return password;  
  21.     }  
  22.     public void setPassword(String password) {  
  23.         this.password = password;  
  24.     }  
  25. }  

5、寫struts2所需要的配置檔案struts.xml

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
  3. <struts>
  4.     <packagename="helloworld"extends="struts-default"namespace="/">
  5.     <actionname = "hello">
  6.         <resultname="success">/hello.jsp</result>
  7.     </action>
  8.     <actionname

    相關推薦

    struts2springmvc前端控制器

    2.在dispatcher-servlet.xml配置檔案中配置,spring可以自動去掃描base-package下面或者子包下面的Java檔案,如果掃描到有@Component,@Controller,@Service等這些註解的類,則把這些類註冊為bean。 即告訴Spring 該到哪裡去找標記為@

    struts2springMVC區別

    一、框架機制 1、Struts2採用Filter(StrutsPrepareAndExecuteFilter)實現,SpringMVC(DispatcherServlet)則採用Servlet實現。 2、Filter在容器啟動之後即初始化;服務停止以後墜毀,晚於Servle

    Struts2 springMVC 的區別

    Struts2: (通過過濾器來攔截所有的請求,交友struts2 dispather 處理)   工作流程:     1客戶端瀏覽器發出HTTP請求     2根據web.xml配置,該請求被FilterDispatcher(過濾器排程員)接收     3根據struts.xml配

    SpringMVC前端控制器(*-servlet.xml)配置模板

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2

    Struts2springmvc的本質區別:

    1.springmvc入口是一個servlet前端控制器(DispatcherServlet),struts2入口是一filter過濾器(StrutsPrepareAndExecuteFilter). 2.struts2通過在action類中定義成員變數接收引數

    收集的一些struts2springMVC之間的對比

    1.易用性Spring MVC上手簡單,並且可以與Spring無縫結合,畢竟都是一個公司的產品,學習起來也比較簡單,比如從前端給物件填充值,他的處理就比Struts2簡單多了,再比如對Restful風格的URL的支援,這些Spring MVC都比Struts2做的好N倍。

    Web專案同時使用Struts2SpringMVC

    接手公司歷史遺留的一個專案,要在原有系統中新增新的功能。原有系統只使用Struts2做Web MVC,沒有用Spring做解耦,資料持久層使用JDBC連線,資料庫連線池是c3p0。從設計上看,原有系統拋棄了獨立的服務層,把服務層和資料持久層合併,控制層(Struts2的A

    struts1struts2springMVC的區別介紹

    MVC是web開發常用的模式,M即模型層(Model):主要由javabean來實現。V即檢視層(View):主要由jsp、velocity、freemarker等。C即控制層(Controller):主要由servlet、strtus、springmvc來實現。 struts1 Struts1 工作流程

    springmvc前端控制器匹配

    <url-pattern>/</url-pattern>  會匹配到/login這樣的路徑型url,不會匹配到模式為*.jsp這樣的字尾型url<url-pattern>/*</url-pattern> 會匹配所有url:路徑

    struts2springMVC有什麼不同?

    目前企業中使用SpringMvc的比例已經遠遠超過Struts2,那麼兩者到底有什麼區別,是很多初學者比較關注的問題,下面我們就來對SpringMvc和Struts2進行各方面的比較: 1. 核心控制器(前端控制器、預處理控制器):對於使用過mvc框架的人來說這個詞應該不會

    Springmvc前端控制器配置

    Springmvc 配置前端控制器 <!-- 配置前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet

    面試複習之Struts2springmvc

           1.springmvc入口是一個servlet前端控制器(DispatcherServlet),struts2入口是一filter過濾器(StrutsPrepareAndExecuteFilter).         2.struts2通過在action類中定

    攔截器過濾器區別,Struts2SpringMVC的區別

    攔截器和過濾器 1.攔截器是基於java反射機制的,而過濾器是基於函式回撥的; 2.攔截器不依賴於servlet容器,而過濾器依賴於servlet容器; 3.攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用; 4.攔截器可以訪問Action上下文、值棧裡的物件,而過

    SpringMVC學習(01)--前端控制器DispatcherServlet的初始化

    一、DispatcherServlet的初始化過程 DispatcherServlet,也就是我們的前端控制器,它是SpringMVC的核心,那麼,Spring容器在初始化DispatcherServlet的時候做了什麼? 先看一下DispatcherSer

    為什麼做java的web開發我們會使用struts2springMVCspring這樣的框架?

      今年我一直在思考web開發裡的前後端分離的問題,到了現在也頗有點心得了,隨著這個問題的深入,再加以現在公司很多web專案的控制層的技術框架由struts2遷移到springMVC,我突然有了一個新的疑問無法得到正確的解釋,為什麼我們現在做java的web開發,會選擇struts2或者springMVC這樣

    springmvc核心配置檔案與前端控制器

    <?xml version="1.0"encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

    SpringMVC框架】前端控制器原始碼分析

    前端控制器原始碼分析 雖然前面講了一些springmvc的入門程式和配置檔案中對映器和介面卡的配置,但是我們作為程式設計人員,瞭解框架的部分原始碼還是有必要的,比如前端控制器,它是如何通過Servlet的web.xml配置檔案實現攔截並跳轉至DispatcherServle

    Struts2的web.xml(前端控制器的配置)

    <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http:

    springmvc前端控制器對css、js等進行過濾

    web.xml配置如下: <!-- 配置springmvc的前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org

    struts2中關於前端後臺的資料互動

    使用struts2框架時,要想將後臺的資料傳送到前端頁面,可以在action中定義一個方法,如下圖所示:當然,使用struts2框架需要在struts.xml中配置,配置資訊如下:此處的<result name="success" type="json"><