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 ;} }
相关文章
相关标签/搜索