为什么80%的码农都做不了架构师?>>>   

首先,需要创建数据表,先建一个用户表User,和一个菜单表 Menu.还有用户所属角色,用来批量控制用户权限.

CREATE TABLE `tb_menu` (`menu_id` int(10) NOT NULL AUTO_INCREMENT,`menu_name` varchar(20) DEFAULT NULL,`menu_url` varchar(100) DEFAULT NULL,`parent_id` int(10) DEFAULT NULL,PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8;CREATE TABLE `tb_role` (`role_id` int(10) NOT NULL AUTO_INCREMENT,`role_name` varchar(20) DEFAULT NULL,`rights` varchar(100) DEFAULT NULL,PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;CREATE TABLE `tb_user` (`user_id` int(10) NOT NULL AUTO_INCREMENT,`loginname` varchar(20) DEFAULT NULL,`password` varchar(20) DEFAULT NULL,`username` varchar(20) DEFAULT NULL,`rights` varchar(100) DEFAULT NULL,`status` tinyint(1) DEFAULT NULL,`role_id` int(10) DEFAULT NULL,`last_login` datetime DEFAULT NULL,PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;

在webRoot下编写一个index.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'index.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"></head><body><script type="text/javascript">document.location = "jsp/login.jsp";</script><%-- <jsp:forward page="index.action"/> --%></body>
</html>

导入ssh需要的jar包,配置好环境:

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class><!-- default: /WEB-INF/applicationContext.xml --></listener><context-param><param-name>contextConfigLocation</param-name><!-- <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value>  --><param-value>classpath:beans.xml</param-value></context-param><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><init-param><param-name>sessionFactoryBeanName</param-name><param-value>sf</param-value></init-param><init-param><param-name>singleSession</param-name><param-value>true</param-value></init-param><init-param><param-name>flushMode</param-name><param-value>AUTO</param-value></init-param></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping>
</web-app>

beans.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><context:annotation-config /><context:component-scan base-package="com.auth" /><!-- <bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/spring" /><property name="username" value="root" /><property name="password" value="bjsxt" /></bean>--><beanclass="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><value>classpath:jdbc.properties</value></property></bean><bean id="dataSource" destroy-method="close"class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${jdbc.driverClassName}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></bean><bean id="sf"class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="packagesToScan"><list><value>com.auth.entity</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="hibernate.show_sql">true</prop></props></property></bean><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sf"></property></bean><tx:annotation-driven transaction-manager="txManager" proxy-target-class="true" /><bean id="txManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sf" /></bean></beans>

struts.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN""http://struts.apache.org/dtds/struts-2.1.dtd"><struts> <constant name="struts.devMode" value="false" /><constant name="struts.i18n.encoding" value="utf-8"></constant><constant name="struts.action.extension" value="html"></constant><package name="auth" extends="struts-default" namespace="/auth"><action name="index" class="indexAction"><result>/jsp/login.jsp</result></action></package>
</struts>

以上,环境就已经配置好,struts中的index.action用来访问登录页面使用.

编写struts的IndexAction类:

import org.springframework.stereotype.Component;import com.opensymphony.xwork2.ActionSupport;@Component
public class IndexAction extends ActionSupport{public String execute() {return SUCCESS;}
}

然后,启动服务就可以在浏览器访问了:

转载于:https://my.oschina.net/kkdo/blog/731015

SSH实现一个简单的权限控制实例(一)相关推荐

  1. 实现sessionfilter_session应用--采用filter和session实现简单用户权限控制

    前面有讲到一些session的基础知识点,这里那我们就将session和filter做结合,实现一个简单地应用处理用于一般后端管理程序的权限控制! ①我们先建立一个filter的实现类Security ...

  2. 一个简单的百度爬虫实例

    一个简单的百度爬虫实例 最近在百度aistdio自学课程,看到一个基础课程的作业是爬取百度上<青春有你>选手信息,索性就跟着爬了一下,复习一下自己去年自学的已经忘得差不多的爬虫. 直接上代 ...

  3. 一个简单的EJB-Session Bean实例

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 一个简单 ...

  4. 一个简单的权限管理系统

    之前抽空写了一个简单的权限管理系统.就是包含用户管理.部门管理.菜单管理.权限管理等简单的一些常用功能.特此记录下,以便分享~~~ 这个系统编码之初是立足于对于大平台下的多个子系统的权限管理,就是将用 ...

  5. 一个简单使用html的实例

    一个简单使用html的实例 起始网页 点击上个网页的连接,跳转到 代码如下 网页1的代码 <html> <head> <title>一个实例</title&g ...

  6. 4.9一个简单的多任务内核实例

    第四章第9节 本节描述了一个简单多任务内核的设计和实现方法,这个内核包括两个特权级3的用户任务和一个系统调用中断过程. 本节给出的内核实例由两个文件构成.一个是使用as86语言编制的引导启动程序boo ...

  7. yii2搭建完美后台并实现rbac权限控制实例教程

    作者:白狼 出处:http://www.manks.top/yii2_fra... 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权 ...

  8. (14)树莓派B+使用L298N驱动控制四驱车并实现一个简单的web控制端

    在系列文章第12篇中提到了L298N,它是H桥双路直流电机驱动,可以使双路直流电机实现正转或者反转,并且通过ENDA和ENDB输入PWM信号,还可以实现加减速.本文用2块L298N驱动板成功驱动了4个 ...

  9. swt包下载,swt包引入(一个简单的SWT程序实例及详解)

    让我们从简单的 HelloWorld 应用程序开始. swt包下载可以在eclipse网站上下 进到下面这个地址里 http://www.eclipse.org/downloads/download. ...

  10. 用javascript进行一个简单的机器学习小实例

    虽然它可能不是机器学习传统选择的开发语言,但是JavaScript正在证明有能力完成这样的工作--即使它目前还不能与主要的机器学习语言Python竞争.在进一步学习之前,让我们做一下机器学习的介绍. ...

最新文章

  1. js中cookie的使用详细分析
  2. 福利 | 放送AI华人库试用名额!专项代码找到领域专家
  3. centos7安装face_recognition踩各种坑
  4. 虚拟化模板新建虚拟机后 wsus控制台无法看到所有客户端计算机
  5. Maven 入门 (1)—— 安装
  6. 数据结构之栈的应用(算术计算)
  7. 为什么老司机开车都不快?
  8. 互联网,就像一条条丝线一样,将每个个体、每个组织串联在一起
  9. img元素srcset属性浅析
  10. 站点简介(欢迎大家踊跃参与本站站点的建设,谢谢)
  11. Numpy基础语法--linspace与zeros与ones
  12. mysql通过视图插入数据_数据库视图 sql
  13. Chrome常见黑客插件及用法
  14. 微信支付提示参数错误
  15. Python缓存cacheout的使用
  16. C++ reverse()函数用法详解(深入了解,一文学会)
  17. SMS发送WapPush
  18. 【扒开】关于赢驴准心劫持浏览器首页的病毒类行径
  19. echarts饼图在缩放是label显示省略号的问题
  20. abp框架学习入门总结

热门文章

  1. [HDOJ2512]一卡通大冒险(DP)
  2. 安装Reporting Service即时报表模型
  3. 用FreeBSD与memcached建立分布式缓存服务器全程记录之memcached使用与安装
  4. 微软为“离线”做好准备:推出同步框架
  5. NET 连接池救生员
  6. Python Extension
  7. Java-API:java.util.ArrayList
  8. Mac下使用gitHub
  9. php5.3 appache phpstudy win7win8win10下 运行速度慢
  10. CNBlog客户端--第一阶段记录