MVC 是 Model、View 和 Controller 的缩写,分别代表 Web 应用程序中的 3 种职责。
三层架构:Presentation Tier + Application Tier + Data Tier (展现层+应用层+数据访问层)
4.0.0 net.hw.spring SpringMVCDemo01 1.0-SNAPSHOT 5.3.4 org.springframework spring-core ${spring.version} org.springframework spring-beans ${spring.version} org.springframework spring-context ${spring.version} org.springframework spring-test ${spring.version} org.springframework spring-web ${spring.version} org.springframework spring-webmvc ${spring.version} javax.servlet jstl 1.2 javax.servlet javax.servlet-api 3.1.0 provided log4j log4j 1.2.17 junit junit 4.13 test
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
用户登录
用户登录
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
登录成功
${username},登录成功!
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
登录失败
${username},登录失败!
package net.hw.spring.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpSession;/*** 功能:登录控制器* 作者:华卫* 日期:2021年04月07日*/
@Controller
public class LoginController {@RequestMapping("/login")public String login(@RequestParam("username") String username,@RequestParam("password") String password,HttpSession session) {// 将从登录表单获取的用户名写入会话session.setAttribute("username", username);// 判断是否登录成功if (username.equals("admin") && password.equals("12345")) {// 返回逻辑视图名return "success";} else {// 返回逻辑视图名return "failure";}}
}
/WEB-INF/views/login.jsp org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath:mvc/spring-config.xml DispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:mvc/spring-mvc-config.xml 1 DispatcherServlet / Character Encoding org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 Character Encoding /*
xmlns:mvc="http://www.springframework.org/schema/mvc"
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
首页
Hello, Spring MVC World!
http://localhost:8080/SpringMVCDemo01/getString
http://localhost:8080/SpringMVCDemo01/getString
package net.hw.spring.lesson07.bean;import java.util.Date;/*** 功能:用户实体类* 作者:华卫* 日期:2021年04月12日*/
public class User {private int id;private String username;private String password;private String telephone;private Date registerTime;private int popedom;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}public Date getRegisterTime() {return registerTime;}public void setRegisterTime(Date registerTime) {this.registerTime = registerTime;}public int getPopedom() {return popedom;}public void setPopedom(int popedom) {this.popedom = popedom;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + '\'' +", password='" + password + '\'' +", telephone='" + telephone + '\'' +", registerTime=" + registerTime +", popedom=" + popedom +'}';}
}
package net.hw.spring.controller;import net.hw.spring.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 功能:获取JSON控制器* 作者:华卫* 日期:2021年04月12日*/
@Controller
public class GetJsonController {@RequestMapping(value = "/getJson", produces = "application/json; charset=utf-8")@ResponseBody // 响应正文注解public User getJson() {User user = new User();user.setId(1);user.setUsername("萌萌哒");user.setPassword("902345");user.setTelephone("15834345678");user.setRegisterTime(new Date());user.setPopedom(1);return user;}@RequestMapping(value = "/getJsonArray", produces = "application/json; charset=utf-8")@ResponseBody // 响应正文注解public List getJsonArray() {List users = new ArrayList<>();// 创建第1个用户User user = new User();user.setId(1);user.setUsername("萌萌哒");user.setPassword("902345");user.setTelephone("15834345678");user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);// 创建第2个用户user = new User();user.setId(2);user.setUsername("康科德");user.setPassword("12345");user.setTelephone("13856567890");user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);// 创建第3个用户user = new User();user.setId(3);user.setUsername("娃哈哈");user.setPassword("54321");user.setTelephone("15890905678");user.setRegisterTime(new Date());user.setPopedom(1);// 将用户添加到用户列表users.add(user);return users;}
}
com.fasterxml.jackson.core jackson-core 2.9.7
com.fasterxml.jackson.core jackson-databind 2.9.7
com.fasterxml.jackson.core jackson-annotations 2.9.7
访问http://localhost:8080/SpringMVCDemo01/getJson
重启服务器,再次访问,查看效果
访问http://localhost:8080/SpringMVCDemo01/getJsonArray
package net.hw.spring.controller;import net.hw.spring.bean.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import java.util.ArrayList;
import java.util.Date;
import java.util.List;/*** 功能:获取XML控制器* 作者:华卫* 日期:2021年04月12日*/
@Controller
public class GetXmlController {@RequestMapping(value = "/getXml", produces = "application/xml; charset=utf-8")public @ResponseBodyList getXml() {List users = new ArrayList();User user = new User();user.setId(1);user.setUsername("萌萌哒");user.setPassword("12345");user.setTelephone("15889895678");user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);user = new User();user.setId(2);user.setUsername("李文霞");user.setPassword("45678");user.setTelephone("13978783456");user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);user = new User();user.setId(3);user.setUsername("郑智化");user.setPassword("88888");user.setTelephone("15890903456");user.setRegisterTime(new Date());user.setPopedom(1);users.add(user);return users;}
}
com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.5.3
http://localhost:8080/SpringMVCDemo01/getXml