Spring mcv 框架 淺談

   spring mvc :


   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 ;} }
相關文章
相關標籤/搜索