发表于: 2018-01-23 13:14:27

1 693


完成

1.开始任务二,一开始rest接口格式看不下去了,后面再补吧。

还是觉得先看springmvc。

先下了一个Tomcat,配置环境变量,浏览器,输入http://localhost:8080,看到如下页面,成功。

参考教程,写一个简单的springmvc(https://www.cnblogs.com/Sinte-Beuve/p/5730553.html

之后在idea里面死活找不到Tomcat,发现原来是idea版本问题,我装的是community版,应该用的是ultimat版。

安装完ultimate版后,发现之前创建的web项目是:

其实应该是:

两种web项目文件差异很大,我还奇怪是不是教程的idea版本太低了,导致这么多不同,这里浪费了很多时间。

又把之前的项目重写了一遍,出现一个问题:

    Error running 'tomcat': Address localhost:8080 is already in use,

解决办法:cmd输入netstat -ano

可见,占用8080端口的进程的PID是8516

输入tasklist,找到,该占用8080端口的进程是Tomcat8.exe

但我在任务管理器里找不到这个进程啊???我本身使用的也是Tomcat啊?没法了。。。

之后我没有继续深究。又找了一个demo,也失败了。于是我就去看知识点去了。


2.看了看springmvc相关知识,原理,还有一些细节知识点。

MVC与SpringMVC

MVC是一种设计模式,M代表model;V代表View;C代表controller

从字面意思可以看出来

M是指模型一般指DAO和service
view代表显示一般指页面eg:jsp,html ,ftl等
C是控制器,比如springMVC 中的controller

而springMVC严格意义上指的是前端控制器,就是每次客户端与服务器交互都要经过springMVC的controller

原理(工作流程)

Spring Web MVC的工作流程如下:

1. 浏览器发出spring mvc请求,请求交给前端控制器DispatcherServlet处理。
2. 控制器通过HandlerMapping维护的请求和Controller映射信息,找到相应的Controller组件处理请求。
3. 执行Controller组件约定方法处理请求,在约定方法中可以调用Service和DAO等组件完成数据库操作。约定方法可以返回一个ModelAndView对象,封装了模型数据和视图名称信息。

4. 控制器接收ModelAndView之后,调用ViewResolver组件,定位View的JSP并传递Model信息,生成响应界面结果。

组件,框架,容器区别

组件应该是一个具有完备功能的服务接口,可以使用组件去构建一个系统。比如要编写一个计算器的系统,你可以找到加法、减法、乘法、除法的组件。只要给他们合适的参数就能为你返回结果。你搭建系统的时候只要使用这几个组件就行了。

框架是构成一类特定软件可复用设计的一组相互协作的类,框架规定了你的应用程序的体系结构。它定义了整体结构,类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程。

容器的话是java程序运行时所需要的环境,并处理java程序的调用请求和返回合适的结果。比如,一个基于jsp/servlet的程序需要使用servlet容器去运行,例如tomcat。而一个EJB的程序就需要运行在EJB容器中,例如JBoss,weblogic。容器还要满足一定的规范,如jsp/servlet规范和EJB规范。


问题:

找demo,调试demo花了好长时间,没成功,没学到什么,浪费很多时间。

想了想,还是先去看别人的代码吧,理清程序流程再自己写。


收获

springmvc算是入门了


计划

理清springmvc原理和如何用代码来表示流程。




返回列表 返回列表
评论

    分享到