大牛手把手教你!SpringMVC-狂神笔记

  1. 编写web.xml , 注册DispatcherServlet

  2. 编写springmvc配置文件

  3. 接下来就是去创建对应的控制类 , controller

  4. 最后完善前端视图和controller之间的对应(方法中声明Model类型的参数是为了把Action中的数据带到视图中)

  5. 测试运行调试.

注:DispatcherServlet 是 SpringMVC统一的入口,所有的请求都通过它。DispatcherServlet 是前端控制器,配置在web.xml文件中,Servlet依自已定义的具体规则拦截匹配的请求,分发到目标Controller来处理。

使用springMVC必须配置的三大件(注解或者xml):

处理器映射器、处理器适配器、视图解析器

ModelAndView:模型视图类(方法返回的结果是视图的名称hello,加上配置文件(视图解析器)中的前后缀变成WEB-INF/jsp/hello.jsp。)


 //ModelAndView 模型和视图

       ModelAndView mv = new ModelAndView();



       //封装对象,放在ModelAndView中。Model

       mv.addObject("msg","HelloSpringMVC!");

       //封装要跳转的视图,放在ModelAndView中

       mv.setViewName("hello"); //: /WEB-INF/jsp/hello.jsp

       return mv;


第三节:

  • POST、DELETE、PUT、GET:添加、 删除、修改、查询

RESTful风格:

  • 在Spring MVC中可以使用  @PathVariable 注解,让方法参数的值对应绑定到一个URI模板变量上。

@Controller

public class RestFulController {

   //映射访问路径

   @RequestMapping("/commit/{p1}/{p2}")

   public String index(@PathVariable int p1, @PathVariable int p2, Model model){

       

       int result = p1+p2;

       //Spring MVC会自动实例化一个Model对象用于向视图中传值

       model.addAttribute("msg", "结果:"+result);

       //返回视图位置(视图解析器进行解析,找到对应的文件)

       return "test";

       

  }  

}

使用method属性指定请求类型

用于约束请求的类型,可以收窄请求范围。指定请求谓词的类型如GET, POST, HEAD, OPTIONS, PUT, PATCH, DELETE, TRACE等


//映射访问路径,必须是POST请求

@RequestMapping(value = "/hello",method = {RequestMethod.POST})

public String index2(Model model){

   model.addAttribute("msg", "hello!");

   return "test";

}

```![wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==](data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw== "点击并拖拽以移动")



**所有的地址栏请求默认都会是 HTTP GET 类型的。**



* * *



### 第四节:



**结果跳转方式**



*   ModelAndView:页面 : {视图解析器前缀} + viewName +{视图解析器后缀}

*   ServletAPI:通过HttpServletResponse进行输出、重定向、转发



@RequestMapping("/result/t1")

public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {

   rsp.getWriter().println("Hello,Spring BY servlet API");

}

@RequestMapping("/result/t2")

public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {

   rsp.sendRedirect("/index.jsp");

}

@RequestMapping("/result/t3")

public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {

   //转发

   req.setAttribute("msg","/result/t3");

   req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp);

}




*   通过SpringMVC来实现转发和重定向 - 无需视图解析器;



@RequestMapping("/rsm/t1")

public String test1(){

   //转发

   return "/index.jsp";

}




**数据提交:**



@RequestMapping("/hello")

总结

蚂蚁面试比较重视基础,所以Java那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年1班,很有青春的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。

资料领取方式:戳这里


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

的感觉。面试官基本水平都比较高,基本都P7以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。

资料领取方式:戳这里


经历这次面试我还通过一些渠道发现了需要大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

蚂蚁金服5面,总结了49个面试题,遇到的面试官都是P7级别以上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值