发表于: 2017-10-18 22:38:12

1 757


今天完成的事情

1.梳理了一下spring mvc的相关知识

其基本流程应该是:浏览器发送请求,被前置控制器dispatcherservlet拦截,前置控制器利用HandlerMapping将指令发送到相应的控制器,控制器中需要实例化一个对象来调用相应的方法来获取模型,并返回视图名,模型和视图名到达前置控制器,前置控制器利用ViewResolver来进行视图渲染,然后前端控制器将模型装入视图,向浏览器发送响应。

如下,在浏览器中输入:localhost:3306/listStudent,发送访问请求,根据web.xml中的映射配置,所有访问路径都会被dispatcherservlet拦截:

<servlet>
 <servlet-name>mvc-dispatcher</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>classpath:springMVC.xml</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
 <servlet-name>mvc-dispatcher</servlet-name>
 <url-pattern>/</url-pattern>
</servlet-mapping>

然后访问请求进入前置控制器dispatcherservlet,在springmvc.xml中写入一下语句,表示前置控制器会扫描com.jnshu.contrlller下所有被注解为控制器的类

<context:annotation-config/>
<context:component-scan base-package="com.jnshu.controller">
   <context:include-filter type="annotation"
   expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

根据url,前置控制器会找到controller类下的listStudent方法,进行相关操作

@Autowired
StudentService studentService;
@RequestMapping("listStudent")
public ModelAndView listStudent(Page page){
ModelAndView mav=new ModelAndView();
   PageHelper.offsetPage(page.getStart(),5);
     List<Student> cs=studentService.list();
   int total=(int)new PageInfo(cs).getTotal();
   page.caculateLast(total);
   mav.addObject("cs",cs);
   mav.setViewName("listStudent");
   return mav;
}

这里使用了ModelAndView来返回view的名称,也可以用Model,Map,ModelMap,如用Model的方式是:

@RequestMapping(value="/listStudent",method= RequestMethod.GET)
public String listStudent(Model model){
List<Student> cs=studentService.list();
   model.addAttribute("cs",cs);
   return "listStudent";
}

实例化StudentServlet来调用相应的方法,获取模型,返回视图名。

之后再经过前置控制器,进行视图渲染并装入数据,最后形成页面发送到浏览器。


2.关于ssm,三个框架的作用大概是:spring管理对象的依赖以及提供事务机制,mybatis用来操作数据库,spring MVC则是接受请求,向服务层发出相应指令来获取模型,并最终形成视图。


3.关于rest

rest主要是一种规范,主要体现在url的命名中,url用来标识资源,并用http中的方法来描述对资源进行的操作,所以url中只能是名词。可以先粗略地把url看作是浏览器与服务器实现交互的唯一途径,所以可以把url看作是实现了浏览器与服务器连接的接口,而其实质应该是连接前端和后端的接口,而不是浏览器。对于接口的理解,受到了之前写DAL时的影响,认为一个interface类才是接口,所以就很不明白什么是rest接口。

这样的接口实现了前端与后端的分离,而进行前后端交互时,就要用到json,对于json,还不是很清楚。


明天的计划

完成任务二


遇到的问题

对于json的作用还不是很清楚


收获

感觉对ssm有了一点理解,大概知道了rest 



返回列表 返回列表
评论

    分享到