ation.Controller;
import com.li.myspringmvc.annotation.RequestMapping;
import com.li.myspringmvc.annotation.RequestParam;
import com.li.service.MonsterService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
/**
* @author 李
* @version 1.0
* 用于测试的 Controller
*/
@Controller
public class MonsterController {
//属性
@AutoWired
private MonsterService monsterService;
//处理登录的方法,返回要请求转发或重定向的字符串
@RequestMapping(value = "/monster/login")
public String login(HttpServletRequest request,
HttpServletResponse response,
@RequestParam(value = "monsterName") String mName) {
System.out.println("----接收到的mName-->" + mName);
request.setAttribute("mName", mName);
boolean b = monsterService.login(mName);
if (b) {//登录成功
// 请求转发到login_ok.jsp
//return "forward:/login_ok.jsp";
//return "redirect:/login_ok.jsp";
return "login_ok.jsp";
} else {//登录失败
//return "forward:/login_error.jsp";
//return "redirect:/login_error.jsp";
return "login_error.jsp";
}
}
}
在webapp目录下分别创建 login.jsp,login_ok.jsp,login_error.jsp
login.jsp:
<%--
Created by IntelliJ IDEA.
User: li
Date: 2023/2/12
Time: 22:24
Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
</head>
<body>
<h1>登录页面</h1>
<form action="monster/login" method="post">
妖怪名:<input type="text" name="monsterName"><br/>
<input type="submit" value="登录">
</form>
</body>
</html>
login_ok.jsp:
<%--
Created by IntelliJ IDEA.
User: li
Date: 2023/2/12
Time: 22:27
Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>登录成功</title>
</head>
<body>
<h1>登录成功</h1>
欢迎你:${requestScope.mName}
</body>
</html>
login_error.jsp:
<%--
Created by IntelliJ IDEA.
User: li
Date: 2023/2/12
Time: 22:28
Version: 1.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>登录失败</title>
</head>
<body>
<h1>登录失败</h1>
sorry,登录失败 ${requestScope.mName}
</body>
</html>
(3)启动 tomcat,访问 http://localhost:8080/li_springmvc/login.jsp
测试成功。
9.任务8-自定义@ResponseBody
9.1分析
功能说明:通过自定义@ResponseBody 注解,返回 JSON格式数据
在实际开发中,前后端分离的项目,通常是直接json数据给客户端/浏览器。客户端接收到数据后,再自己决定如何处理和显示。
9.2代码实现
(1)@ResponseBody 注解
package com.li.myspringmvc.annotation;
import java.lang.annotation.*;
/**
* @author 李
* @version 1.0
* ResponseBody 注解用于指定目标方法是否要返回指定格式的数据
* 如果value为默认值,或者value="json",认为目标方法要返回的数据格式为json
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Respons