spring mvc 提供了對web的支持。spring的這種支持使得spring能夠像其餘web層的框架同樣搭建web層應用!
spring mvc 核心技術主要圍繞分發器(DispatcherServlet)來實現,它能夠將請求分發到不一樣的處理器,由控制器完成控制分發工做!html
實現步驟:
a、添加框架,注意勾選spring3.0 web library
b、在web.xml文件中,註冊DispatcherServlet
dispatcherServlet 會默認尋找web-inf 路徑下的myServlet-servlet.xml!咱們將此路徑重定向到spring的配置文件classes/applicationContext.xml!
java
第一種:(每一個action類只能實現一個.do的請求,應爲spring的配置文件裏面沒有指定什麼請求進什麼方法,通常種不經常使用)web
web.xml的內容配置:
spring
<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 配置DispatchServlet讀取spring配置文件 --> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 經過過濾器設置編碼集合 ,防止後臺拿前臺參數亂碼--> <filter> <filter-name>springUtf8Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>springUtf8Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
前臺頁面index:mvc
<body> <form method="post" action="login.do"> <p> 用戶名: <input type="text" name="username"> </p> <p> 密 碼: <input type="password" name="password"> </p> <p> <input type="submit" value="提交" name="button1"> </p> </form> </body>
spring的配置文件 applicationContext.xml的配置:
app
<bean name="/login.do" class="com.spring.mvc.UserAction"></bean>
後臺Action類的寫法:框架
//實現一個Controller接口jsp
public class UserAction implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("登陸成功"); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println(username + " " + password); ModelAndView mv = new ModelAndView("a.jsp", "msg", "登陸成功"); return mv ; } }
第二種:(springmvc實現多請求進入同一個action)
post
web.xml 配置:
編碼
<servlet> <servlet-name>myServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <!-- 配置DispatchServlet讀取spring配置文件 --> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/classes/applicationContext.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 經過過濾器設置編碼集合 ,防止後臺拿前臺參數亂碼--> <filter> <filter-name>springUtf8Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>springUtf8Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
前臺頁面index:
<body> <a href="login.do?function=A">登陸</a> <a href="login.do?function=B">註冊</a> <a href="login.do?function=C">退出</a> </body>
spring的配置文件 applicationContext.xml的配置:
<pre name="code" class="html" style="font-size:14px;"> <bean name="/login.do" class="com.spring.mvc.EmpAction">
<!-- 根據function所對應的值查找到類中方法名和該值一致的方法 --> <property name="methodNameResolver"> <ref bean="myMethodName"/> </property> </bean> <!-- 根據url獲得function所對應的值 --> <bean name="myMethodName" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName"> <value>function</value> </property>
</bean>
EmpAction類:
<pre name="code" class="java"><pre name="code" class="java"> //繼承一個MultiActionController類public class EmpAction extends MultiActionController {public ModelAndView A(HttpServletRequest request,HttpServletResponse response) throws Exception { System.out.println("登陸成功");return null ;}public ModelAndView B(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("註冊成功");return null ;}public ModelAndView C(HttpServletRequest request,HttpServletResponse response) throws Exception {System.out.println("退出成功");return null ;} }