利用SSM框架实现一个登入页面的验证
进入登入页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<f:view>
		<h1>登入系统</h1>
		<table>
		<!--${pageContext.request.contextPath}帮助我们去匹配上下文路径,不需要再手动去写死了-->
			<form action="${pageContext.request.contextPath }/login"
				method="post">
				<tr>
					<td>⽤户名:</td>
					<td><input type="text" name="username" /></td>
				</tr>
				<tr>
					<td>&nbsp;&nbsp;码:</td>
					<td><input type="password" name="password" /></td>
				</tr>
				<tr>
					<td colspan="2"><input type="submit" value="登录" /> <input
						type="reset" value="重置" /></td>
				</tr>
			</form>
		</table>
	</f:view>
</body>
</html>

上代码如下图所示:
在这里插入图片描述
在这里我们点击了登入,他便跳转到${pageContext.request.contextPath }/login中,也就是我们之前写好的一个UserControler

package com.rql.bookshop.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.servlet.ModelAndView;

import com.rql.bookshop.po.User;

@Controller
public class UserController {
	@PostMapping(value = "/login")
	public ModelAndView userLogin(User user, ModelAndView mav) {
		System.out.println(user);
		// 将用户数据装入到model中
		mav.addObject("user", user);
		// 返回成功页面
		mav.setViewName("succ");
		return mav;
	}
}

自动匹配到了@postMapping(value="/login"),然后返回到视图层

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>系统首页</title>
</head>
<body>
	<f:view>
		<h1>欢迎您:${user.username}</h1>
		<p>进入系统</p>
	</f:view>
</body>
</html>

如下图所示:
在这里插入图片描述
项目结构如下:
在这里插入图片描述
总结:${pageContext.request.contextPath }是一个jsp内部提供的,帮我们自动匹配上下文环境的,不需要我们像以前一样把代码写死。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐