使用servlet过渡到springMVC之后的区别--控制器篇

A:表示servlet    B:表示springMVC

控制层区别

声明控制器

A:在使用控制器时要继承HttpServlet类,才能有和网页交互的功能,并且Servlet中有两个方法doGet和doPot。

B:只需要用注解@Contoller代表这个类是个控制器,就拥有了所有控制器的功能

访问控制器

A:需要在类上写注解@WebServlet("路径名"),并且在类中的doGet和doPos方法要用大量的if语句表示访问的子路径是什么

B:在springMVC中已经把路径和方法一一对应了

控制器如何从网页中获取值

A:通过req参数从中获取值,如果一个表单值太多的话要一个个的传值

B:只需在方法参数中写上你要什么参数,都会给你传回来,甚至在传回来的过程中,用一个对象接多个参数,直接拿个对象,都帮你封装好了。

    @PostMapping("/person")
    public String createPerson(Person person, @RequestParam("personPic") MultipartFile file) throws Exception{

//        log.info("create person now! person:"+person);
        person.setPhoto(file.getBytes());

        PersonService personService = new PersonServiceImpl();
        personService.registerPerson(person);

        log.info("create person ok! person:"+person);

        return "redirect:/person";
    }

顺带一提@RequestParam@PathVariable的区别

@RequestParam取的是URL路径中“ / ”之后的值

        可以省略不写

        当你写的参数是个属性时,会帮你自动找到相对应的属性。

        当你写的参数是个对象时,会自动帮你把对象中的属性和网页中的属性有重名时,一一放入对象当中封装起来

        如果你写的参数和网页中的不一致时,就要在@RequestParam( )里说明你要取的哪个参数

@PathVariable取的是URL路径中“ ?”之后的值 

        同样,也可以通过()中获取想要的值,如果名字一样上面一样省略不写,但是至少要写一个@PathVariable在前面

往请求域中传值,并将数据和模板组装显示到网页上

A:需要往req中存值,然后用模板组装引擎

this.processTemplate("/hotel/update_hotel",request,response);

B:需要在参数上写上Model类型的参数,和req的存值方式一致,然后返回即可

return "/hotel/update_hotel";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值