目录
2.3创建控制层。(在ava下创建一个包,推荐包名为controller)
2.4在resources下配置springmvc的配置文件。
首先呢,我们要了解一下何谓MVC框架
经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。其中,View的定义比较清晰,就是用户界面。
M:model,模型层,指工程中的javabean,作用是处理数据
V: view,视图层,指工程中的html或者JSP页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接受请求和响应浏览器。
MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器
此时我们在了解什么是springMVC?
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在 Spring Web Flow 中。springMVC类似于struts的一个MVC开框架,其实都是属于spring,spring mvc需要有spring的架包作为支撑才能跑起来.spring是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层(springdata)的全套解决方案;spring的两大核心IOC(控制反转)和AOP(面向切面编程)更是给我们的程序解耦和代码的简介提供了支持。
基本流程图:
2,快速入门springMVC
2.1创建一个web工程
此时工程里面没有java包我们需要自己创建,同时webapp-web-INF下的web.xml需要替换为4.0的版本
创建完成后是如下
2.2引入springmvc的依赖。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
</dependency>
</dependencies>
2.3创建控制层。(在ava下创建一个包,推荐包名为controller)
Controller:表示该类为控制层类。完成客户的业务需求
@Controller
public class HelloWorld {
@RequestMapping("/hello") //根据请求路径映射响应的方法。
public String hello(){
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~真好~~~~~~~~~~~");
return "hello";
/*springhello.xml中有试图解析器,本应该"/view/hello.jsp"的格式--->hello*/
}
}
2.4在resources下配置springmvc的配置文件。
<!--1.包扫描 扫描我们自己的控制层类所在的包或者父包-->
<context:component-scan base-package="com.wwn.controller"/>
<mvc:annotation-driven/>
<mvc:default-servlet-handler/>
<!--视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/view/"/> <!--前缀 开头-->
<property name="suffix" value=".jsp"/><!--后缀 结尾-->
</bean>
2.5引入前端控制器 web.xml
<!--注册servlet-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载springMVC的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springhello.xml</param-value>
</init-param>
</servlet>
<!--servlet映射路径
/: 表示所有的控制层路径 以及静态资源
/*: 表示全部 包含jsp网页
-->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
2.6测试
3 springMVC的流程
1. 客户端发生请求http://localhost:8080/145springmvc01/hello01
2. 来的tomcat服务器。
3. springmvc的前端控制器DipatcherServlet接受所有的请求。
4. 查看你的请求地址和哪个@RequestMaping匹配。
5. 执行对应的方法。方法会返回一个字符串。springmvc把该字符串解析为要转发的网页。
6. 把该字符串经过视图解析器拼接。
7. 拿到拼接的地址,找到对应的网页。
4 springmvc如何接受请求参数
4.1接收少量的参数
Controller层:
@Controller
@RequestMapping("/hello02")
public class HelloController02 {
@RequestMapping("/a")
public String word(int id,String name){
System.out.println("id======="+id+"name======"+name);
return "word1";
}
}
测试
4.2接收参数
举例说明:表单提交时 注册 添加。
4.2.1可以把所有的请求参数封装到一个实体类对象中
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String username;
private Integer sex;
private String password;
private Integer age;
}
4.2.2在index.jsp中书写
<form action="hello02/b" method="post">
<%--name的名称必须后实体类的属性名对应--%>
姓名:<input type="text" name="username"/><br>
性别:<input type="radio" name="sex" value="0">男
<input type="radio" name="sex" value="1">女<br>
密码:<input type="password" name="password"/><br>
年龄:<input type="text" name="age"/><br>
<button>提交</button>
</form>
4.2.3controller层中书写
@Controller
@RequestMapping("/hello02")
public class HelloController02 {
@RequestMapping("/b")
public String hello04(User user){
System.out.println(user);
return "index02";
}
}
4.2.4测试
4.3接受日期类型的参数。
解决办法:
2.4中已经配置过
5处理静态资源
什么是静态资源: 比如: css, js, img,html
此时图片是不会被加载处理的,我们需要做一些操作把图片放出来,
此时:
6总结
入门的springMVC就到这里,今天我们学习到
1.springmvc的作用:
2.如何搭建springmvc架构。
3.springmvc的流程。
4.接受请求参数的值。
5.处理静态资