${pageContext.request.contextPath }的使用
2024-06-01 17:18:28
利用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>密 码:</td><td><input type="password" name="password" /></td></tr><tr><td colspan="2"><input type="submit" value="登录" /> <inputtype="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内部提供的,帮我们自动匹配上下文环境的,不需要我们像以前一样把代码写死。
最新文章
- 单例模式 之 单例模式——懒汉模式
- 区块链BaaS云服务(39)时戳信息Bystack
- 使用MEF构建可扩展的Silverlight应用
- 台式计算机更新不了,台式机更新造成电脑关不了机怎么办
- [深度学习-TF2实践]应用Tensorflow2.x训练DenseNet模型在Cifar10数据上,测试集准确率90.07%
- keepalived 和 zookeeper的区别
- java数据类型double保留两位小数
- 互联网,就像一条条丝线一样,将每个个体、每个组织串联在一起
- memcache 未授权访问漏洞
- 经典游戏扫雷详解--你也可以写出扫雷和玩好扫雷
- 计算机软件如何助力科研,研究生必备科研绘图软件,助力科学研究
- 【2019/02/18测试T3】飘雪圣域
- 在保护继承中基类的共有成员_鸡啄米:C++编程入门系列之三十八(继承与派生:派生类对基类成员的访问控制之保护继承与私有继承)...
- 重读经典(CLIP上):《Learning Transferable Visual Models From Natural Language Supervision》
- 2023年房地产地段研究报告
- SQL按日期分组销售产品,使用group_concat和separator
- OpenCV 单目测距实现
- 《情感化设计/Emotional Design》中文版序 by Donald Norman
- matlab求线性方程组的符号解,Newton迭代法在MATLAB中解线性方程组
- 「科普大佬说」以计算机图形学的视点看元宇宙发展
热门文章
- 浅谈路由器的wan、lan、wlan口和vlan/trunk口
- mysql数据库开启ssl_MySQL 5.7.x开启SSL连接
- php curl 优化下载微信头像
- springboot—监听容器启动事件—拦截器及注册
- 如何获取全球地表温度数据?
- Ubuntu20.04 操作系统切换中文 安装中文输入法
- android下拉刷新的方法,Android App使用RecyclerView实现上拉和下拉刷新的方法
- JAVA中读写文件的FileNotFoundException和IOException
- [转贴]写给理工科大学生尤其是学计算机的大学生
- Good Java idioms