1. 实现接口来创建控制器 (不建议使用,因为一个控制器只能添加一个方法) 实现Controller接口,再重写接口方法,在方法中返回视图。
//ModelAndView是方法的返回值,model:数据,view:页面
@Override
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
System.out.println("控制器执行了....");
return new ModelAndView("hello");
}
然后再springMVC-serlet.xml文件中配置访问的路径。
<!-- 配置控制器的访问 name:表示访问的URL路径 -->
<bean name="/test/hello" class="com.etc.controller.UserController"></bean>
在地址栏中URL访问方式:http://localhost:8080/springmvcdemo01/test/hello
2. 继承类来创建控制器 (不推荐使用,虽然可以添加多个方法,但是有点不符合目前我们的操作方式)
//以继承方式来创建控制器,在控制器中就可以增加多个方法
public class StudentControllerextends MultiActionController {
public ModelAndView list(HttpServletRequest request,HttpServletResponse response){
System.out.println("list方法被执行...");
//调用后台方法取数据,再传递给页面。
return new ModelAndView("studentList");
}
public ModelAndView update(HttpServletRequest request,HttpServletResponse response){
System.out.println("update方法被执行...");
return new ModelAndView("studentUpdate");
}
public ModelAndView add(HttpServletRequest request,HttpServletResponse response){
System.out.println("add方法被执行...");
return new ModelAndView("studentAdd");
}
}
配置文件的配置:
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置url的前缀-->
<property name="prefix" value="/"></property>
<!-- 配置url的后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置控制器 name:表示配置访问的路径-->
<bean name="/student" class="com.etc.controller.StudentController">
<property name="methodNameResolver">
<!-- 引用参数方法分解的Bean -->
<ref bean="parameterMethodNameResolver"/>
</property>
</bean>
<!-- 参数方法名的分解 -->
<bean id="parameterMethodNameResolver" class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<!-- 配置方法的访问方式 -->
<property name="paramName" value="do"></property>
</bean>
地址栏访问URL路径:http://localhost:8080/springmvcdemo01/student?do=list
3. 使用注解来配置控制器(推荐用法)
A. 在springMVC配置文件中启用注解
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 配置url的前缀-->
<property name="prefix" value="/"></property>
<!-- 配置url的后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
<!-- 启用注解-->
<mvc:annotation-driven/>
B. 注入控制器
<!-- 扫描所有的控制器 base-package:表示把这个包的类全部扫描到系统中-->
<context:component-scan base-package="com.etc.controller"/>
C.在类中加入注解
//这个类没有实现接口,也没有继承为在,如何把它变成一个控制器?采用注解的方式就行
@Controller //注解表示这个类成为了一个控制器
@RequestMapping("/student")//设置控制器的访问URL
public class StudentController {
//设置方法的访问路径
@RequestMapping("/list")
public ModelAndView list(){
System.out.println("list方法被执行...");
return new ModelAndView("studentList");
}
@RequestMapping("/add")
public ModelAndView add(){
System.out.println("add方法被执行...");
return new ModelAndView("studentAdd");
}
@RequestMapping("/update")
public ModelAndView update(){
System.out.println("update方法被执行...");
return new ModelAndView("studentUpdate");
}
}
D.访问方式:http://localhost:8080/springmvcdemo02/student/list 或 add 、 update
myschoolSys
SpringMVC
springMVC
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:config/springMVC-servlet.xml
1
springMVC
/
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/*
index.jsp