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實現的前端控制器。
- <spanstyle="font-size: 12px;"><?xmlversion="1.0"encoding="UTF-8"?>
- <web-appversion="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <display-name>struts2-test</display-name>
- <welcome-file-list>
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.htm</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>default.html</welcome-file>
- <welcome-file>default.htm</welcome-file>
- <welcome-file>default.jsp</welcome-file>
- </welcome-file-list>
- <filter>
- <filter-name>Struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>Struts2</filter-name>
- <url-pattern>/*</url-pattern><!--/*表示所有的請求都要經過該過濾器 --></filter-mapping>
- </web-app></span>
2、hello.jsp2.hello.jsp
- <%@ page language="java"contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <metahttp-equiv="Content-Type"content="text/html; charset=utf-8">
- <title>你好</title>
- </head>
- <body>
- <formaction="welcome.action"method="post">
- Please input your name:<inputtype="text"name="name"/><br/>
- Please input your password<inputtype="password"name = "password"/><br/>
- <inputtype = "submit"value="Submit"/>
- </form>
- </body>
- </html>
3.welcome.jsp頁面
- <%@ page language="java"contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <metahttp-equiv="Content-Type"content="text/html; charset=utf-8">
- <title>歡迎</title>
- </head>
- <body>
- 歡迎您 ${name}(${password})
- </body>
- </html>
4.新建WelcomeAction類
- package com.qiaozhq.outman;
- public class WelcomeAction {
- private String name;
- private String password;
- public String execute(){
- System.out.println("WelcomeAction execute...");
- System.out.println("name="+name+",password="+password);
- if("".equals(name)){
- return "fail";
- }
- return "success";
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- }
5、寫struts2所需要的配置檔案struts.xml
- <?xmlversion="1.0"encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
- <struts>
- <packagename="helloworld"extends="struts-default"namespace="/">
- <actionname = "hello">
- <resultname="success">/hello.jsp</result>
- </action>
-
<actionname
相關推薦
struts2和springmvc的前端控制器
2.在dispatcher-servlet.xml配置檔案中配置,spring可以自動去掃描base-package下面或者子包下面的Java檔案,如果掃描到有@Component,@Controller,@Service等這些註解的類,則把這些類註冊為bean。 即告訴Spring 該到哪裡去找標記為@
struts2和springMVC區別
一、框架機制 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
Struts2和springmvc的本質區別:
1.springmvc入口是一個servlet前端控制器(DispatcherServlet),struts2入口是一filter過濾器(StrutsPrepareAndExecuteFilter). 2.struts2通過在action類中定義成員變數接收引數
收集的一些struts2和springMVC之間的對比
1.易用性Spring MVC上手簡單,並且可以與Spring無縫結合,畢竟都是一個公司的產品,學習起來也比較簡單,比如從前端給物件填充值,他的處理就比Struts2簡單多了,再比如對Restful風格的URL的支援,這些Spring MVC都比Struts2做的好N倍。
Web專案同時使用Struts2和SpringMVC
接手公司歷史遺留的一個專案,要在原有系統中新增新的功能。原有系統只使用Struts2做Web MVC,沒有用Spring做解耦,資料持久層使用JDBC連線,資料庫連線池是c3p0。從設計上看,原有系統拋棄了獨立的服務層,把服務層和資料持久層合併,控制層(Struts2的A
struts1和struts2和springMVC的區別和介紹
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:路徑
struts2和springMVC有什麼不同?
目前企業中使用SpringMvc的比例已經遠遠超過Struts2,那麼兩者到底有什麼區別,是很多初學者比較關注的問題,下面我們就來對SpringMvc和Struts2進行各方面的比較: 1. 核心控制器(前端控制器、預處理控制器):對於使用過mvc框架的人來說這個詞應該不會
Springmvc前端控制器配置
Springmvc 配置前端控制器 <!-- 配置前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet
面試複習之Struts2和springmvc
1.springmvc入口是一個servlet前端控制器(DispatcherServlet),struts2入口是一filter過濾器(StrutsPrepareAndExecuteFilter). 2.struts2通過在action類中定
攔截器和過濾器區別,Struts2與SpringMVC的區別
攔截器和過濾器 1.攔截器是基於java反射機制的,而過濾器是基於函式回撥的; 2.攔截器不依賴於servlet容器,而過濾器依賴於servlet容器; 3.攔截器只能對Action請求起作用,而過濾器則可以對幾乎所有請求起作用; 4.攔截器可以訪問Action上下文、值棧裡的物件,而過
SpringMVC學習(01)--前端控制器DispatcherServlet的初始化
一、DispatcherServlet的初始化過程 DispatcherServlet,也就是我們的前端控制器,它是SpringMVC的核心,那麼,Spring容器在初始化DispatcherServlet的時候做了什麼? 先看一下DispatcherSer
為什麼做java的web開發我們會使用struts2,springMVC和spring這樣的框架?
今年我一直在思考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"><