${pageContext.request.contextPath }的使用
利用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;@Controllerpublic 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内部提供的,帮我们自动匹配上下文环境的,不需要我们像以前一样把代码写死。