发表于: 2018-03-15 23:21:09
1 572
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
今天继续在认真看springMVC
Spring Web 模型-视图-控制(MVC)框架是围绕 DispatcherServlet 设计的,DispatcherServlet 用来处理所有的 HTTP 请求和响应。Spring Web MVC DispatcherServlet 的请求处理的工作流程如下图所示:
对应于 DispatcherServlet 传入 HTTP 请求的事件序列:
· 收到一个 HTTP 请求后,DispatcherServlet 根据 HandlerMapping 来选择并且调用适当的控制器。
· 控制器接受请求,并基于使用的 GET 或 POST 方法来调用适当的 service 方法。Service 方法将设置基于定义的业务逻辑的模型数据,并返回视图名称到 DispatcherServlet 中。
· DispatcherServlet 会从 ViewResolver 获取帮助,为请求检取定义视图。
- · 一旦确定视图,DispatcherServlet 将把模型数据传递给视图,最后呈现在浏览器中。
也对webapp的构建流程有所理解。
首先是web.xml文件中配置applicationContext.xml的路径
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
然后是配置监听器ContextConfigListener,从而启动web容器时自动装配applicationContext.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
最后是对dispatcgerServlet的配置,主要是命名servlet、指定配置文件为spring-mvc.xml而不是默认的[servlet-name]-servlet.xml
<servlet>
<!--在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,
生成文件中定义的bean。-->
<servlet-name>springMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!--指明了配置文件的文件名,不使用默认配置文件名,而使用spring-mvc.xml配置文件。-->
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
<!--是启动顺序,让这个Servlet随Servlet容器一起启动。-->
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern><!--会拦截URL中带“/”的请求。-->
</servlet-mapping>
然后就是spring的核心applicationContext.xml
目前跟之前的项目类似,不过看的网上的例子,以下这段不一样,
原项目
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 指定扫描的包名,如果扫描多个包,每个包中间使用半角逗号分隔-->
<property name="basePackage" value="com.ev.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
mvc项目
<!-- 配置SqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
<!-- 配置mybatis mapper接口,扫描所有dao -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ev.dao"/>
<property name="sqlSessionTemplateBeanName" value="sqlSessionTemplate"/>
</bean>
多了sqlSessionTemplate的bean,暂时不知道是否必要。
spring-mvc.xml中主要是启用注解,扫描包中的@controller类,扫描service
对视图的解析,文件的上传,json进行配置。
写了一个很简单的功能
@Controller
@RequestMapping (value = "/student")
public class StudentController {
private static final Logger logger = Logger.getLogger(StudentController.class);
@Autowiredprivate StudentService studentService;
@RequestMapping(value = "/getStudentModel", method = RequestMethod.GET)
public ModelAndView getStudent(@RequestParam Long id ) throws Exception {
List<Student> student =studentService.getStudentById(id);
ModelAndView modelAndView =new ModelAndView();
modelAndView.addObject("student", student);
modelAndView.setViewName("Student");
return modelAndView;
· @RequestMapping后的value就是接口(意思不准),就是在url后加/student。。。
· @RequestMapping后的method是使用的http方法,get是取出内容
· 在方法中new 一个 ModelAndView对象,通过实体类设定view,通过setName设定视图名。
jsp还没做太多了解,页面暂时就这样了。。。
今天听师兄讲,jetty可以热部署,不用像tomcat每次要跑一遍。。。
明天配置jetty
明天计划的事情:(一定要写非常细致的内容)
jetty配置,完善功能(任务一的service功能
jsp相关知识
遇到的问题:(遇到什么困难,怎么解决的)
下午的时候遇到问题,总是报错
跑了即便才发现是pom中的resource没有加Java下的xml,之前项目的Mapper.xml都在resource目录下,这次我把mapper的接口和映射文件都放在sourse code directory下了。。。但是没加
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
收获:(通过今天的学习,学到了什么知识)
springMVC的基础构建
评论