开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第41天,点击查看活动详情
写在前面
当我们学习了spring框架之后,基本上来说,已经是打好了一个良好得基础了。
但是距离一个企业的基本开发需要掌握的框架,还是得经过不断得学习,才行。
这不,我们继续学习下一个框架SpringMVC。
SpringMVC这个框架,一般来说,用来作为我们项目得Controller层,用来接收用户得输入,然后选择相应得视图回显展示给用户。
MVC作为WEB项目开发的核心环节,正如三个单词的分解那样,C(控制器)将V(视图、用户客户端)与M(javaBean:封装数据)分开构成了MVC。
对于以前得项目来说,还有出现Struts得,但现在基本都很少了。
Struts1(现在一般不用),Struts2(一般老项目使用)等等。
这不,接下来就是spring mvc框架的学习之旅了,希望可以帮助到大家。
一、拦截器应用
SpringMVC 的拦截器主要是针对特定处理器进行拦截的。
1.1 拦截器应用(实现登录认证)
1.1.1 需求
拦截器对访问的请求 URL 进行登录拦截校验。
分析如下:
1、 如果请求的URL是公开地址(无需登录就可以访问的URL,具体指的就是保护login字段的请求URL),采取放行。
2、 如果用户session存在,则放行。
3、 不放行,都要跳转到登录页面。
1.1.2 登录页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录页面</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/login" method="post">
<table align="center" border="1" cellspacing="0" >
<tr>
<td>用户名:<input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:<input type="text" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="登录"/></td>
</tr>
</table>
</form>
</body>
</html>
1.1.3 Controller类
@Controller
public class LoginController {
// 登录
@RequestMapping("/login")
public String login(HttpSession session, String username, String password) {
// Service进行用户身份验证
// 把用户信息保存到session中
session.setAttribute("username", username);
// 重定向到商品列表页面
return "redirect:/item/findItem";
}
// 退出
@RequestMapping("/logout")
public String logout(HttpSession session) {
//清空session
session.invalidate();
// 重定向到登录页面
return "redirect:/login.jsp";
}
}
1.1.4 HandlerInterceptor类
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
//获取请求的URI
String requestURI = request.getRequestURI();
System.out.println(requestURI);
//1、 如果请求的URL是公开地址(无需登录就可以访问的URL),采取放行。
if(requestURI.indexOf("login")>-1) return true;
//2、 如果用户session存在,则放行。
String username = (String)
request.getSession().getAttribute("username");
if(username !=null && !username.equals("")) return true;
//3、 如果用户session中不存在,则跳转到登录页面。
response.sendRedirect("/springmvc-demo/login.jsp");
return false;
}
//其他代码略
}
1.1.5 HandlerInterceptor配置
<!-- 配置全局mapping的拦截器 -->
<mvc:interceptors>
<!-- 拦截所有请求URL-->
<bean class="com.llsydn.ssm.interceptor.LoginInterceptor" />
</mvc:interceptors>
好了,以上就是SpringMVC学习之旅-应用掌握篇(9) 的全部内容了。
今天就先到这里了,后面的内容,留下次分享了,先溜了!!!^_^
如果觉得写得不错的,帮忙点赞、评论、收藏一下呗!!!