发表于: 2017-10-18 22:38:12
1 758
今天完成的事情
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
评论