导入servlet的API坐标
<dependency><!-- 传统得servlet request response -->
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
java 模拟
@Controller("sevletController")
@RequestMapping("/servlet")
public class sevletController {
@RequestMapping("/demo01")
public String demo01(HttpServletResponse response , HttpServletRequest request , HttpSession httpSession){
System.out.println(request);
System.out.println(response);
System.out.println(httpSession);
return "success" ;
}
}
前端模拟访问
<a href="${pageContext.request.contextPath}/servlet/demo01">支持原始得sevlert</a>
话外 隐式对象
隐式对象:spring默认给你提供好的。直接拿过来用即可。
封装数据到模型对象中(请求范围)
Model:
ModelMap:
Map:
@Controller
@RequestMapping("/model")
public class modelController {
@RequestMapping("/demo1")//这个 是前台form 对用pojo 传入得user
public String demo1(Model model,User user){ //Model 就是隐式对象 我们可以直接拿来使用
System.out.println(user);
model.addAttribute("user",user); //向域对象中添加数据
return "success";
}
//下面得我们使用路径 get 方式模拟
@RequestMapping("/demo2")
public String demo2(ModelMap model){ //Model 就是隐式对象 我们可以直接拿来使用
User user = new User();
user.setUid(89);
user.setName("ModelMap");
System.out.println(user);
model.addAttribute("user",user); //向域对象中添加数据
return "success";
}
@RequestMapping("/demo3")
public String demo3(Map model){ //Model 就是隐式对象 我们可以直接拿来使用
User user = new User();
user.setUid(111);
user.setName("Map");
System.out.println(user);
model.put("user",user); //向域对象中添加数据
return "success";
}
}
控制器 返回值
@RequestMapping("/demo1")
public String demo1(){
return "success";//返回一个逻辑视图 请求转发
// return "forward:XXX"; //返回一个逻辑视图 请求转发
// return "redirect:XXX"; //重定向
}
@RequestMapping("/demo02") //没有返回值 通过原始 servlet API
public void demo01(HttpServletResponse response , HttpServletRequest request , HttpSession httpSession){
System.out.println(request);
System.out.println(response);
System.out.println(httpSession);
}
@RequestMapping("/demo3")
//ModelAndView: 模型和视图。
//既能封装数据到模型对象,也能指定视图。
public ModelAndView demo3() throws Exception{
ModelAndView mav = new ModelAndView();
User user= new User();
user.setUid(99);
user.setName("user1");
mav.addObject("user",user);//存放模型数据
mav.setViewName("success");//前往逻辑视图
//mav.setView();//
return mav;
}
<!--指定要扫描的包-->
<context:component-scan base-package="com.itheima.web"/>
<!--视图解析器-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>