需求:客户端发起请求,服务器端接收请求,执行逻辑并进行视图跳转。
开发步骤:
①导入SpringMVC相关坐标 ②配置SpringMVC核心控制器DispathcerServlet ③创建Controller类和视图页面 ④使用注解配置Controller类中业务方法的映射地址 ⑤配置SpringMVC核心文件 spring-mvc.xml ⑥客户端发起请求测试学习内容:
目录结构如下
一、开发步骤 1.导入相关坐标(pom.xml)2.配置SpringMVC的核心控制器(web.xml)junit junit4.12 test org.springframework spring-context5.0.5.RELEASE org.springframework spring-test5.0.5.RELEASE org.springframework spring-web5.0.5.RELEASE org.springframework spring-webmvc5.0.5.RELEASE javax.servlet javax.servlet-api3.0.1 provided javax.servlet.jsp javax.servlet.jsp-api2.2.1 provided
3.创建Controller类和视图页面 4.使用注解配置Controller类中业务方法的映射地址DispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:spring-mvc.xml 1 DispatcherServlet /
HelloController.java 当输入/hello路径的时候,跳转到hello.jsp
@Controller
public class HelloController {
@RequestMapping("/hello")
public String hello(){
System.out.println("hello SpringMVC!");
return "/hello";
}
}
index.jsp 默认模板
hello.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> Hello SpringMVC5.配置Tomcat并运行
error:404 且 控制台未打印
错误原因有可能是 找不到controller的位置
(1)看看上述配置文件是否正确
(2)删掉out文件和target文件
(3)重新构建工件
(4)删掉原来的tomcat,重新部署tomcat(最后通过这个方法解决了哟呼~)
控制台打印成功
jsp页面展示成功
二、组件解析 下午 1.SpringMVC的数据响应1.1页面跳转
(1)返回字符串形式
面试题:重定向redirect和转发forward的区别
@RequestMapping("/hello1")
public String hello1(){
System.out.println("hello SpringMVC 1!");
// 重定向 url会变成hello
return "redirect:/hello";
}
@RequestMapping("/hello2")
public String hello2(){
System.out.println("hello SpringMVC 2!");
// 请求转发 url不变
return "forward:/hello";
}
(2) 向request域存储数据
redirect会请求两次,作用域会发生变化,所以获取不到数据
// 作用域存储数据
@RequestMapping("/save")
public String save(HttpServletRequest request ){
// 往作用域添加数据
request.setAttribute("姓名:","lisi");
// 这里只能使用转发
return "forward:/hello";
// 若为重定向,打印的姓名数据为null
}
@RequestMapping("/hello")
public String hello(HttpServletRequest request){
// 获取request作用域里的数据 key-value值
String name =(String) request.getAttribute("name");
System.out.println("姓名:"+name);
return "/hello";
}
2.软件包层次
controller:控制层
mapper / dao:数据持久层
po / pojo / entity:实体类
service:业务逻辑层
实现简易登录功能
面试题:equals和==的区别
==:比较地址值
equals:比较数据值
ERROR1
。。。这个bug
最后是在spring-mvc.xml找到的
这里包路径写成了com.lyt.controller了。。。
正确如下:
ERROR2
提交表单出错
标签写错orz
错误代码,多了个逗号,找半天害
登录界面
用户及密码正确
密码错误



