国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

java—不同的用戶登錄以后可以看到不同的菜單(后臺可以實現(xiàn)對用戶菜單的管理) 1 (55)

2019-11-15 00:01:53
字體:
供稿:網(wǎng)友
java—不同的用戶登錄以后可以看到不同的菜單(后臺可以實現(xiàn)對用戶菜單的管理) 1 (55)實現(xiàn)不同的用戶登錄以后可以看到不同的菜單。(后臺可以實現(xiàn)對用戶菜單的管理。)第一步:分析數(shù)據(jù)結(jié)構(gòu)

1:用戶表

表名:users

列名

類型

說明

id

Varchar(32)

主鍵

name

Varchar(30)

2:菜單表

第二步:寫入表中幾行數(shù)據(jù)進行基本分析

insert into users values('U001','Jack','1234');

insert into users values('U002','張三','4321');

insert into users values('U003','Tom','1111');

insert into roles values('R001','管理員','');

insert into roles values('R002','教師','');

insert into roleuser values('U001','R001');

insert into roleuser values('U002','R002');

insert into menus values('M001','系統(tǒng)管理','/sys.jsp');

insert into menus values('M002','用戶管理','/user.jsp');

insert into menus values('M003','角色管理','/role.jsp');

insert into rolemenu values('M001','R001');

insert into rolemenu values('M002','R001');

insert into rolemenu values('M003','R001');

insert into rolemenu values('M003','R002');

/*查詢某個擁有某個角色*/

select u.name,r.name

from users u inner join roleuser ru on u.id=ru.uid

inner join roles r on ru.rid=r.id;

/*某角色擁有某菜單*/

select r.name,m.name

from roles r inner join rolemenu rm on r.id=rm.rid

inner join menus m on rm.mid=m.id;

/*查詢某人擁有某個菜單*/

select u.name,m.name

from users u inner join roleuser ru on u.id=ru.uid

inner join roles r on ru.rid=r.id

inner join rolemenu rm on r.id=rm.rid

inner join menus m on rm.mid=m.id;

第三步:創(chuàng)建JavaBean(領(lǐng)域模型)和工具類

public class User {

PRivate String name;

private String id;

private String pwd;

連接數(shù)據(jù)庫的工具類:

第三步:設(shè)計界面

第四步:實現(xiàn)用戶登錄

分包:提供用戶的登錄,退出修改

Cn.hx.user.

userServlet

service

userService

dao

userDao

菜單

Cn.hx.menu

MenuServlet

MenuService

MenuDao

角色

對主頁面來只有Servvlet沒有service,調(diào)用別的service實現(xiàn)。

Cn.hx.main

MainServlet

(沒有Service)

第五步:開發(fā)登錄頁面

<form name="name" action="<c:url value='/UserServlet?cmd=login'/>" method="post">

Name:<input type="text" name="name"/><br/>

pwd:<input type="text" name="pwd"/><br/>

<input type="submit"/>

</form>

第六步:開發(fā)整個的usre包

Cn.hx.user.

userServlet

service

userService

dao

userDao

第七步:實菜單的查詢功能

菜單是菜單的功能包。

主功能,有自己的servvlet MainServvlet

第八步:使用過慮器驗證/jsp/*

這只是第一步,只是驗證用戶有沒有訪問的憑證。認證.

過濾器驗證類:

package cn.hx.filter;

import java.io.IOException;

import javax.servlet.Filter;

import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.dbutils.QueryRunner;

import org.apache.commons.dbutils.handlers.ScalarHandler;

import cn.hx.domain.User;

import cn.hx.utils.DataSourceUtils;

public class AuthFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub

}

public void doFilter(ServletRequest request, ServletResponse response,

FilterChain chain) throws IOException, ServletException {

//獲取uri

HttpServletRequest req = (HttpServletRequest) request;

String uri = req.getRequestURI();//Http://localhost:8080/day20/jsps/role.jsp->day20/jsps/role.jsp

uri = uri.replace(req.getContextPath(), "");

//組成sql

String sql = "SELECT COUNT(1)"+

" FROM menus m INNER JOIN rolemenu rm ON m.id=rm.mid"+

" INNER JOIN roles r ON r.id=rm.rid"+

" INNER JOIN roleuser ru ON r.id=ru.rid"+

" WHERE ru.uid=? AND url=?";

//取到用戶的id

User user = (User) req.getsession().getAttribute("user");

try{

QueryRunner run = new QueryRunner(DataSourceUtils.getDatasSource());

Object o = run.query(sql,new ScalarHandler(),user.getId(),uri);

int size = Integer.parseInt(o.toString());

if(size==0){

System.err.println("你沒有權(quán)限....");

}else{

chain.doFilter(req, response);

}

}catch(Exception e){

}

}

public void destroy() {

// TODO Auto-generated method stub

}

}

流程圖

認證過程

登錄過程:

顯示菜單的過程:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 温宿县| 开原市| 新宾| 铜川市| 赫章县| 托克逊县| 沙坪坝区| 锦州市| 海晏县| 巴马| 汝阳县| 大埔区| 兴国县| 德保县| 南雄市| 和平区| 察隅县| 北流市| 延津县| 霍山县| 桃园市| 江达县| 十堰市| 松桃| 浦北县| 九龙坡区| 宝鸡市| 旬邑县| 麦盖提县| 阿拉尔市| 仲巴县| 丘北县| 色达县| 山西省| 二手房| 巨野县| 会东县| 红河县| 织金县| 两当县| 清水河县|