目录
2(2).web.xml中添加核心类配置,DispatcherServlet,指向框架Springmvc.xml的配置文件:
SpringMVC
1.工作流程
①DispatcherServlet:接受到浏览器端发送的所有请求
②HandlerMapper处理器映射器:找到@requestMapping对应值
③HandlerAdapter处理器适配器:适配对应的方法调用执行
④modelAndView模型视图对象:方法的返回值
⑤viewResolver解析模型视图对象,得到view,返回给浏览器用户展示;
2.开发流程
①导入pom依赖
②web.xml中添加核心类配置,DispatcherServlet,指向框架Springmvc.xml的配置文件
③配置Springmvc.xm
2(1).导入pom依赖:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.16.RELEASE</version>
</dependency>
2(2).web.xml中添加核心类配置,DispatcherServlet,指向框架Springmvc.xml的配置文件:
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 创建前端控制器的时候读取springmvc配置文件启动ioc容器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
2(3).配置Springmvc.xml:
配置驱动包扫描<context:component-scan base-package="com.javaxl.ssm"/>
重点:配置本地资源视图解析器
<!--3) ViewResolver -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- viewClass需要在pom中引入两个包:standard.jar and jstl.jar -->
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
添加静态文件映射
<mvc:resources location="/images/" mapping="/images/**"/>
2(4).controller层
controller层,正常开发即可
要通过@controller标记当前类被spring所管理
写方法:@requestMapping
方法会有返回值:“bookList” --> /bookList.jsp
2(5).常用的注解:
@controller @requestMapping @getMapping @putMapping @deleteMapping @postMapping 若依
@responseBody-返回json数据 @requestBody-接受json数据 @pathvariable @requestParam
2(6).springmvc怎么返回数据:
转发:"forword:/list"
重定向:"redirect:/list"
Mybatis
1.什么是Mybatis:
它是一款半自动的ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低
Object Relation Mapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。Student类就对应student表,一个Student对象就对应student表中的一行数据.
2.关联关系的配置:
一对一:association javatype
一对多:Collection oftype
3.mapper.xml配置的常用标签有哪些:
if/for
<![CDATA[ ... ]]> 用于解决特殊字符转义的,没有CDATA的话,> < & 等会被当成HTML标签,而不是sql语句的组成部分;
4.Mybatis中的二级缓存:
二级缓存:Mapper级别的缓存,默认关闭
一级缓存:session级别的缓存,默认就是开启的;
5. #{...}与${...}传参的区别(重点):
#传递参数会自带引号
S不带引号:存在SQL注入的问题,但是也有优点,可以用来做动态列/动态SQL
上述的不同,也就决定了$存在SQL注入的风险