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 ;} }