1.SpringMVC入门
1.1Springmvc简介
SpringMVC本质就是Spring的一个小模块【Web】,实际开发中,一般会把SpringMVC当做一个框架来使用。
1.2SpringMVC第一个案例
第一步:导入jar包
第二步:需要在web.xml文件中配置springmvc的前端控制器
<!-- springmvc的前端控制器 -->
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<!-- 指定springmvc配置文件的路径和名称 -->
<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>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
第三步:创建springmvc配置文件,并配置内部资源视图解析器
<!-- 配置扫描包 -->
<context:component-scan base-package="com.offcn"/>
<!-- 配置内部资源视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
第四步:编写控制层【controller】层代码
@Controller
public class UesrController {
@RequestMapping("/aa")
public String success() {
System.out.println("请求来过了.............");
return "abc";
}
}
第五步:测试
1.3疑问
疑问一:springmvc前端控制器默认配置文件
疑问二:load-on-startup参数
疑问三:拦截url
实际开发中,用/即可。
疑问四:
<!-- 配置内部资源视图解析器作用:
1.将逻辑视图转换为物理视图: prefix + returnval+ suffix
/WEB-INF/abc.jsp
2.转发到该页面
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/"></property>
<!-- 后缀 -->
<property name="suffix" value=".jsp"></property>
</bean>
2.请求相关的操作
2.1@RequestMapping
2.2RESTful
RESTful: Rest是一种规范,一种请求参数的风格。
简单的说,就是利用Http协议通过GET/POST/PUT/DELETE/PATCH来操作具有URI标识的服务器资源。
并且返回统一格式的资源信息,比如:JSON、xml、csv等格式。
REST请求风格: 指的用不同的请求方式表示对服务器资源进行何种处理。
Http协议常用的动词:
GET: 从服务器查询资源
POST: 在服务器新建一个资源
PUT: 在服务器更新资源【客户端提供改变后的完整资源】
DELETE:在服务器删除资源
PATCH: 在服务器更新资源【客户端提供改变的属性】
非RESTful风格
- 创建对象 http://localhost:8080/项目名/user/save POST name=123&password=123
- 更新对象 http://localhost:8080/项目名/user/updaate POST Id=12&name=123&password=123
- 查询对象 http://localhost:8080/项目名/user/info GET Id=1
- 删除对象 http://localhost:8080/项目名/user/delete POST Id=1
RESTful风格
- 创建对象 http://localhost:8080/项目名/user/save POST name=123&password=123
- 更新对象 http://localhost:8080/项目名/user/update PUT Id=12&name=123&password=123
- 查询对象 http://localhost:8080/项目名/user/info/1 GET
- 删除对象 http://localhost:8080/项目名/user/delete/1 DELETE
2.3绝对路径与相对路径
项目的根目录: http://localhost:8080/springmvc001
服务器的根目录:http://localhost:8080
当我们访问一个接口的时候,既可以使用相对路径也可以使用绝对路径。
绝对路径:以/开头的路径都是绝对路径,
相对路径:不是以/开头的路径,就是相对路径
当我们用绝对路径访问的时候,/到底代表的是项目的根目录还是服务器的根目录,这取决于这个/是被浏览器端解析还是被服务器端解析.
/被浏览器端解析:代表的是服务器的根目录,需要我们自己加上项目名
Response.sendRedirect( 项目名+“/success.jsp”)
Html中的标签 a、form
/被服务器端解析:代表的是项目的根目录, 不需要自己手动加上项目名
Request.getRequestDispatcher(“/success.jsp”).forward(request,response)
Web.xml、springmvc.xml后端配置文件
Jsp中的特殊标签:<jsp:forward page="/suuceess.jsp"></jsp:forward>