Servlet整合Shiro(四)下

简介: Servlet整合Shiro(四)

三.五 编写前端静态页面


结构目录如下所示:


20200513113157199.png


三.五.一 编写 index.jsp


<body>
谢谢您访问我,我是两个蝴蝶飞
<jsp:forward page="User/toLogin"></jsp:forward>
</body>


三.五.二 编写登录页面 login.jsp


<body>
  <div class="col-sm-6 col-sm-offset-3">
    <div style="margin-top:40px;">
      <div class="row col-md-offset-3 ">
        <h3>两个蝴蝶飞登录页面</h3>
      </div>
      <div class="row" style="margin-top:30px;">
        <form class="form-horizontal" role="form">
          <div class="form-group">
                <label for="code" class="col-md-3 control-label">用户名:</label>
                <div class="col-md-4">
                  <input type="text" class="form-control" id="code"
                     name="code" value=""/>
                </div>
          </div>
          <div class="form-group">
                <label for="password" class="col-md-3 control-label">密码:</label>
                <div class="col-md-4">
                  <input type="password" class="form-control" id="password"
                     name="password"/>
                </div>
          </div>
          <div class="form-group">
            <div class="col-sm-offset-4">
              <input type="button" value="登录" id="submit" class="btn btn-success"/>
            </div>
          </div>
        </form>
      </div>
    </div>
  </div>
</body>


ajax 方法,进行提交跳转


<script>
  $(function(){
    $("#submit").click(function(){
      var code=$("#code").val();
      var password=$("#password").val();
      var info=new Object();
      //传入进去,员工的id编号
      info.code=code;
      info.password=password;
      $.post("${pageContext.request.contextPath}/User/login",info,function(data){
        if(data.status){
          alert("登录成功");
          window.location.href="${pageContext.request.contextPath}/Main/toMain";
        }else{
          if(data.error_code=="001"){
            alert("用户名或者密码错误");
          }
        }
      })
    })
  })
</script>


三.五.三 主页 main.jsp


<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>
<body>
  进入到主页
      <shiro:user>  
      欢迎[<shiro:principal/>]登录,<a href="${pageContext.request.contextPath}/User/logout">退出</a>  
    </shiro:user>   
</body>


三.五.四 权限不足页面 noPrivilege.jsp


<body>
  抱歉,您没有权限访问!!!
</body>


三.五.五 员工按钮显示页面 user.jsp


<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>
<body>
<br/>
是否有查询权限: 
<shiro:hasPermission name="user:select">
  有查询权限
</shiro:hasPermission>
<br/>
是否有添加权限: 
<shiro:hasPermission name="user:add">
  有添加权限
</shiro:hasPermission>
<br/>
是否有修改权限: 
<shiro:hasPermission name="user:update">
  有修改权限
</shiro:hasPermission>
<br/>
是否有删除权限: 
<shiro:hasPermission name="user:delete">
  有删除权限
</shiro:hasPermission>
<br/>
</body>


shiro:user, shiro:hasPermission 是shiro 提供的标签库, 通过判断是否有权限,来显示页面元素的显示和隐藏。


注意, 不要忘记引用 shiro 标签库


<%@ taglib uri="http://shiro.apache.org/tags" prefix="shiro"%>


20200513113212825.png


关于 shiro 标签库的使用,可以看 第九章 JSP标签——《跟我学Shiro》


记住常用的 shiro:user, shiro:hasPermission 即可。


三.六 验证


三.六.一 用户 yuejl 验证


输入网址: http://localhost:8080/Shiro_Web/


填写账号 yuejl, 密码是 123456, 错误的密码


20200513113226473.png


填写账号 yuejl, 密码是 1234, 正确的密码


2020051311323833.png


20200513113245676.png


员工yuejl 正常登录, 输入网址,跳转到员工的界面


http://localhost:8080/Shiro_Web/User/toList


员工yuejl 没有修改的权限,故修改那一块的元素不显示


2020051311325461.png


手动输入网址,看是否可以访问:


输入添加的网址: http://localhost:8080/Shiro_Web/User/add


20200513113300943.png


员工具有添加的权限,故可以执行添加的操作。


输入修改的网址,http://localhost:8080/Shiro_Web/User/update


20200513113309313.png


员工不具有修改的权限,故不可以执行修改的操作,会显示权限不足。


点击退出,退出之后, 输入刚才的 添加的那个网址,会跳转到登录的页面


2020051311335115.png


三.六.二 用户 yuezl 验证


前面的测试,与yuejl 一样。


yuezl 具有修改的权限:


http://localhost:8080/Shiro_Web/User/toList


20200513113359315.png


当手动输入修改的网址时: http://localhost:8080/Shiro_Web/User/update


20200513113407966.png


Servlet 整合 Shiro, 控制权限成功。


本章节代码链接为:


链接:https://pan.baidu.com/s/1dMQkpcxU04WKLnIdbsm-Aw 
提取码:kmji 


谢谢您的观看,如果喜欢,请关注我,再次感谢 !!!

相关文章
|
前端开发 JavaScript Java
Servlet整合Shiro实现RBAC(七)下
Servlet整合Shiro实现RBAC(七)
149 0
Servlet整合Shiro实现RBAC(七)下
|
JSON 前端开发 数据库
Servlet整合Shiro实现RBAC(七)上
Servlet整合Shiro实现RBAC(七)
142 0
Servlet整合Shiro实现RBAC(七)上
|
JSON 数据格式
Servlet整合Shiro(四)中
Servlet整合Shiro(四)
130 0
Servlet整合Shiro(四)中
|
JSON Java 应用服务中间件
Servlet整合Shiro(四)上
Servlet整合Shiro(四)
374 0
Servlet整合Shiro(四)上
|
1月前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
40 5
|
3天前
|
自然语言处理 前端开发 Java
Servlet与JSP:Java Web开发的基石技术详解
【6月更文挑战第23天】Java Web的Servlet与JSP是动态网页的核心。Servlet是服务器端的Java应用,处理HTTP请求并响应;JSP则是结合HTML与Java代码的页面,用于动态内容生成。Servlet通过生命周期方法如`init()`、`service()`和`destroy()`工作,而JSP在执行时编译成Servlet。两者在MVC架构中分工,Servlet处理逻辑,JSP展示数据。尽管有Spring MVC等框架,Servlet和JSP仍是理解Web开发基础的关键。
|
3天前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
【6月更文挑战第23天】构建Java Web应用,Servlet与JSP携手打造在线图书管理系统,涵盖需求分析、设计、编码到测试。通过实例展示了Servlet如何处理用户登录(如`LoginServlet`),JSP负责页面展示(如`login.jsp`和`bookList.jsp`)。应用基于MySQL数据库,包含用户和图书表。登录失败显示错误信息,成功后展示图书列表。部署到Tomcat服务器测试功能。此基础教程为深入Java Web开发奠定了基础。
|
3天前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
|
3天前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
【6月更文挑战第23天】Java Web开发中,Servlet和JSP是构建动态Web应用的基础。Servlet处理逻辑,JSP专注展示。示例展示了Servlet如何通过`request.setAttribute`传递数据给JSP渲染。JSP自定义标签提升页面功能,如创建`WelcomeTag`显示欢迎消息。Servlet过滤器,如`CacheControlFilter`,用于预处理数据或调整响应头。这些集成和扩展技术增强了应用效率、安全性和可维护性,是Java服务器端开发的关键。
|
3天前
|
前端开发 安全 Java
Java服务器端开发实战:利用Servlet和JSP构建动态网站
【6月更文挑战第23天】**Servlet和JSP在Java Web开发中扮演关键角色。Servlet处理业务逻辑,管理会话,JSP则结合HTML生成动态页面。两者协同工作,形成动态网站的核心。通过Servlet的doGet()方法响应请求,JSP利用嵌入式Java代码创建动态内容。实战中,Servlet处理数据后转发给JSP展示,共同构建高效、稳定的网站。虽然新技术涌现,Servlet与JSP仍为Java Web开发的基石,提供灵活且成熟的解决方案。**