1.1 Springmvc框架的定义:
springMVC它是spring框架的一个分支,该springMVC框架主要完成的功能是:==接收浏览器的请求响应,对数据进行处理,然后返回页面进行显示== 可以把它理解为和Servlet干的工作是一样的
1.2
使用springmvc之前,要先在jar包里引入依赖,不然代码会报红。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.15.RELEASE</version>
</dependency>
</dependencies>
1.3 如何创建一个springmvc配置文件呢?
1. 点击标题栏的File
2. 点击 New
3.选中 xml.Configuration File
4如何在在三个选项中选中spring config
1.4 springmvc 的运行流程
1. 客户端发生请求
2. 来到tomcat服务器。
3. springmvc的前端控制器DipatcherServlet接受所有的请求。
4. 查看你的请求地址和哪个@RequestMaping匹配。
5. 执行对应的方法。方法会返回一个字符串。springmvc把该字符串解析为要转发的网页。
6. 把该字符串经过视图解析器拼接。
7. 拿到拼接的地址,找到对应的网页。
8. 渲染该网页给客户
1.5 如果发现接收的参数值出现乱码的话必须要添加过滤器
1.5.1自己创建编码过滤器.
public class MyEncodingFilter implements Filter {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);
}
public void destroy() {
}
}
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.yhm.filter.MyEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
代码运行出错合集
报错400
出现如上图的这种错误,解决办法如下:
在实体类命名的时间类型的属性上添加一个注解:
@DateTimeFormat(pattern = "yyyy-MM-dd")
//yyyy年 MM:月 dd日 24小时制
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date birthday;//出生日期
并且在springmvc配置问价上开启注解驱动
<!--开启注解驱动-->
<mvc:annotation-driven/>
登录页面头衔加载不出来
原因:
springmvc的前端控制器DispatcherSerlvet也把静态资源拦截器,我们需要做的就是放行静态资源,代码如下
<!--放行静态资源:哪些资源为静态资源。css img js html-->
<mvc:default-servlet-handler/>
在springmvc中如何保存数据到网页上。
package com.yhm.controller;
import com.yhm.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttribute;
import org.springframework.web.bind.annotation.SessionAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Date;
@Controller
@SessionAttributes(value = {"user","user2"})
public class HelloController02 {
@RequestMapping("/list")
public String list(HttpServletRequest request){
//查询学生信息。
Student student=new Student(1,"梁又年","[email protected]",new Date());
//可以保存到request中,同一个请求
request.setAttribute("s",student);
return "list.jsp"; //转发
}
@RequestMapping("/list2")
public String list2(Model model){
Student student=new Student(1,"梁又年","[email protected]",new Date());
model.addAttribute("s2",student);
return "list.jsp"; //转发
}
//上半部分是保存request范围。如何保存session范围。
@RequestMapping("/list3")
public String list3(HttpSession session){
Student student=new Student(2,"夏淼淼","[email protected]",new Date());
session.setAttribute("user",student);
return "list.jsp"; //转发
}
@RequestMapping("/list4")
public String list4( Model model){
Student student=new Student(3,"夏垚垚","[email protected]",new Date());