真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java登錄權(quán)限分級代碼 java登錄權(quán)限框架

java 登錄時 的權(quán)限 問題?怎么設(shè)置?

在web應(yīng)用中,對頁面的訪問控制通常通過程序來控制,流程為:

創(chuàng)新互聯(lián)公司堅信:善待客戶,將會成為終身客戶。我們能堅持多年,是因為我們一直可值得信賴。我們從不忽悠初訪客戶,我們用心做好本職工作,不忘初心,方得始終。十多年網(wǎng)站建設(shè)經(jīng)驗創(chuàng)新互聯(lián)公司是成都老牌網(wǎng)站營銷服務(wù)商,為您提供網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、網(wǎng)站設(shè)計、H5場景定制、網(wǎng)站制作、品牌網(wǎng)站制作、小程序制作服務(wù),給眾多知名企業(yè)提供過好品質(zhì)的建站服務(wù)。

登錄 - 設(shè)置session - 訪問受限頁面時檢查session是否存在,如果不存在,禁止訪問

對于較小型的web應(yīng)用,可以通過tomcat內(nèi)置的訪問控制機(jī)制野廳來實現(xiàn)權(quán)限控制。采用這種機(jī)制的好處是,程序中無需進(jìn)行權(quán)限控制,完全通過對tomcat的配置即可完成訪問控制。

為了在tomcat頁面設(shè)置訪問權(quán)限控制,在項目的WEB-INFO/web.xml文件中,進(jìn)行如下設(shè)置:

Java代碼答絕 復(fù)制代碼

1. web-app

2. !--servlet等其他配置--

3. security-constraint

4. web-resource-collection

5. web-resource-nameMy Test/web-resource-name

6. url-pattern/admin/*/url-pattern

7. /web-resource-collection

8. auth-constraint

9. role-namerole1/role-name

10. role-nametomcat/role-name

11. /auth-constraint

12. /security-constraint

13. login-config

14. auth-methodBASIC/auth-method

15. realm-nameMy Test/realm-name

16. /login-config

web-app

!--servlet等其他配置--

security-constraint

web-resource-collection

web-resource-nameMy Test/web-resource-name

url-pattern/admin/*/url-pattern

/web-resource-collection

auth-constraint

role-namerole1/role-name

role-nametomcat/role-name

/auth-constraint

/security-constraint

login-config

auth-methodBASIC/auth-method

realm-nameMy Test/realm-name

/login-config

其中,url-pattern中指定受限頌舉隱的url,可以使用通配符*,通常對整個目錄進(jìn)行訪問權(quán)限控制。

auth-constraint中指定哪些角色可以訪問url-pattern指定的url,在role-name中可以設(shè)置一個或多個角色名。

使用的角色名來自tomcat的配置文件$/conf/tomcat-users.xml。

login-config中設(shè)置登錄方式,auth-method的取值為BASIC或FORM。如果為BASIC,瀏覽器在需要登錄時彈出一個登錄窗口。如果為FORM方式,需要指定登錄頁面和登錄失敗時的提示信息顯示頁面。

使用FORM方式的配置樣例如下:

Java代碼 復(fù)制代碼

1. login-config

2. auth-methodFORM/auth-method

3. realm-nameExample Form-Based Authentication Area/realm-name

4. form-login-config

5. form-login-page/login.jsp/form-login-page

6. form-error-page/error.jsp/form-error-page

7. /form-login-config

8. /login-config

login-config

auth-methodFORM/auth-method

realm-nameExample Form-Based Authentication Area/realm-name

form-login-config

form-login-page/login.jsp/form-login-page

form-error-page/error.jsp/form-error-page

/form-login-config

/login-config

其中的form-login-page指定登錄頁面url,form-error-page指定登錄失敗時的提示頁面url。

登錄頁面中,form的action,以及其中的用戶名和密碼兩個參數(shù)的名稱,都應(yīng)取固定的值。登錄的后臺處理程序為j_security_check;用戶名和密碼的參數(shù)名稱分別為:j_username和j_password。

如下是登錄頁面(如:login.jsp)的一段示例代碼:

Java代碼 復(fù)制代碼

1. form method="POST" action='%= response.encodeURL("j_security_check") %'

2. table border="0" cellspacing="5"

3. tr

4. th align="right"Username:/th

5. td align="left"input type="text" name="j_username"/td

6. /tr

7. tr

8. th align="right"Password:/th

9. td align="left"input type="password" name="j_password"/td

10. /tr

11. tr

12. td align="right"input type="submit" value="Log In"/td

13. td align="left"input type="reset"/td

14. /tr

15. /table/form

誰能給個java權(quán)限管理功能的框架或者代碼(有完整的用戶、角色、權(quán)限3者關(guān)系體系的)

代碼沒有,這個玩意要有一般也是集成在項目中的,一般不會發(fā)給你??梢越o你說個思路:

用戶表t_user (userId,xxxxx)

角色表t_role(roleId,xxxx) ? //一般就是id再加上個名稱字段,比如管理員,普通用戶

用戶角色表t_role_user(id,userId,userId) ?用戶角色關(guān)聯(lián)表

功能表或者叫資源表 t_function(functionId,url,parentFunctionId,xxx) ?//存放菜單名稱 url地址之前鍵做類

角色功能表(id,roleId,functionId) ?//角色能有哪些功能

一般的權(quán)限控制,登錄的時候根亮轎據(jù)用戶查詢到該用戶有哪些角色,根據(jù)角色查詢到該角慧衡色有哪些功能。把有的功能做成菜單給用戶展示。

JAVA用戶登錄權(quán)限問題

你的UserVo沒有接受到值,所以在DAO里出現(xiàn)空指向異常。不知你的jsp頁面耐褲譽(yù)對應(yīng)的輸入框的name屬性是怎么寫的,寫成uvo.username,uvo.password,或者Action繼昌段承ModelDriven。你這個問題主要Action接收不到j(luò)sp頁面純此的值

登錄界面的java代碼,分別有教師登錄,管理員登錄,學(xué)生登錄,右邊是用戶名和密碼,見圖。

分三個包,自己建個包,導(dǎo)進(jìn)去就ok了,數(shù)據(jù)庫是access的。

package 登錄;

import java.awt.EventQueue;

public class Cilent {

private JFrame frame;

private JTextField textField;

private JPasswordField passwordField;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

Cilent window = new Cilent();

window.frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the application.

*/

public Cilent() {

initialize();

}

/**

* Initialize the contents of the frame.

*/

private void initialize() {

frame = new JFrame();

frame.setTitle("登陸界面");

frame.setBounds(100, 100, 450, 300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().setLayout(null);

frame.setResizable(false);

JLabel lblNewLabel = new JLabel("用戶名");

lblNewLabel.setBounds(38, 43, 80, 34);

frame.getContentPane().add(lblNewLabel);

textField = new JTextField();

textField.setBounds(155, 42, 227, 37);

frame.getContentPane().add(textField);

textField.setColumns(10);

JLabel label = new JLabel("密 碼");

label.setBounds(38, 115, 80, 34);

frame.getContentPane().add(label);

passwordField = new JPasswordField();

passwordField.setBounds(155, 115, 227, 37);

frame.getContentPane().add(passwordField);

JButton btnNewButton = new JButton("登 錄");

btnNewButton.setBounds(60, 187, 115, 34);

frame.getContentPane().add(btnNewButton);

btnNewButton.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

UserCheck UC=new UserCheck(textField.getText(),String.valueOf(passwordField.getPassword()));

if(UC.getI()!=0) //有此用戶

{

frame.setVisible(false);

}

else

{

textField.setText("");

passwordField.setText("");

}

}

});

JButton button = new JButton("取 消");

button.setBounds(242, 187, 115, 34);

frame.getContentPane().add(button);

button.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

textField.setText("");

passwordField.setText("");

}

});

}

}

/*****************************************************************/

package 登錄;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import 操作處理.UsersCL;

/**@author 20111024

* 檢測登錄的用戶在數(shù)據(jù)庫中有無,若沒有,則提示沒有此用戶,

* 若有,則判斷級別:普通用戶還是管理員。

*/

public class UserCheck {

private int i=0; //用戶級別:0不是用戶、1是管理員、2是普通用戶

UserCheck(String name ,String password)

{

String jdriver="sun.jdbc.odbc.JdbcOdbcDriver";

String connectDB="jdbc:odbc:Students";

Statement stmt=null;

ResultSet rs=null;

Connection con=null;

try {

Class.forName(jdriver);

con=DriverManager.getConnection(connectDB);

stmt=con.createStatement();

String query="select * from users where name='"+name+"' and passwd='"+password+"'";

rs=stmt.executeQuery(query);

if(rs.next())

{

//數(shù)據(jù)庫中有此用戶,訪問成功

i=Integer.parseInt(rs.getString(3));

UsersCL UL=new UsersCL(i);

}

else

{

i=0; //沒有用戶是默認(rèn)是0級

}

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public int getI() {

return i;

}

}

/********************************************************************************************/

package 操作處理;

import java.awt.EventQueue;

public class UsersCL implements ActionListener{

private JFrame frame;

private JTextField textField;

private JTextField textField_1;

private JTextField textField_2;

private JTextField textField_3;

private int i=0;

private JLabel label_3;

private JTextField textField_4;

public UsersCL(int i) {

this.i=i;

frame = new JFrame();

frame.setTitle("用戶處理界面");

frame.setBounds(100, 100, 450, 300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().setLayout(null);

frame.setResizable(false);

frame.setVisible(true);

JLabel lblNewLabel = new JLabel("學(xué) 號");

lblNewLabel.setBounds(24, 32, 74, 29);

frame.getContentPane().add(lblNewLabel);

JLabel label = new JLabel("姓 名");

label.setBounds(24, 71, 74, 29);

frame.getContentPane().add(label);

JLabel label_1 = new JLabel("年 齡");

label_1.setBounds(24, 110, 74, 29);

frame.getContentPane().add(label_1);

label_3 = new JLabel("性 別");

label_3.setBounds(24, 149, 74, 29);

frame.getContentPane().add(label_3);

JLabel label_2 = new JLabel("狀 態(tài)");

label_2.setBounds(24, 195, 74, 29);

frame.getContentPane().add(label_2);

textField = new JTextField();

textField.setBounds(101, 34, 113, 25);

frame.getContentPane().add(textField);

textField.setColumns(10);

textField_1 = new JTextField();

textField_1.setColumns(10);

textField_1.setBounds(101, 73, 113, 25);

frame.getContentPane().add(textField_1);

textField_2 = new JTextField();

textField_2.setColumns(10);

textField_2.setBounds(101, 112, 113, 25);

frame.getContentPane().add(textField_2);

textField_3 = new JTextField();

textField_3.setEditable(false);

textField_3.setColumns(10);

textField_3.setBounds(101, 199, 288, 25);

frame.getContentPane().add(textField_3);

textField_4 = new JTextField();

textField_4.setColumns(10);

textField_4.setBounds(101, 149, 113, 25);

frame.getContentPane().add(textField_4);

if(1==i)

{

JButton btnNewButton = new JButton("追 加");

btnNewButton.setBounds(276, 41, 113, 29);

frame.getContentPane().add(btnNewButton);

btnNewButton.addActionListener(this);

btnNewButton.setActionCommand("追加");

JButton button_1 = new JButton("刪 除");

button_1.setBounds(276, 145, 113, 29);

frame.getContentPane().add(button_1);

button_1.addActionListener(this);

button_1.setActionCommand("刪除");

}

JButton button = new JButton("查 詢");

button.setBounds(276, 91, 113, 29);

frame.getContentPane().add(button);

button.addActionListener(this);

button.setActionCommand("查詢");

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

String name,age,sex,query=null;

int num,age1,count=0;

num=Integer.parseInt(textField.getText());

name=textField_1.getText();

age1=Integer.parseInt(textField_2.getText());

sex=textField_4.getText();

if(e.getActionCommand().equals("追加"))

{

query="insert into students values("+num+","+"'"+name+"',"+age1+",'"+sex+"');";

count=1;

}

else if(e.getActionCommand().equals("查詢"))

{

query="select * from students where XSB="+num+";";

count=2;

}

else if(e.getActionCommand().equals("刪除"))

{

query="delete from students where XSB="+num+" and name="+"'"+name+"'";

count=3;

}

Statement stmt=null;

ResultSet rs=null;

Connection con=null;

String jdriver="sun.jdbc.odbc.JdbcOdbcDriver";

String connectDB="jdbc:odbc:Students";

String query1=null;

try {

Class.forName(jdriver);

con=DriverManager.getConnection(connectDB);

stmt=con.createStatement();

if(count==1)

{

query1="select * from students where XSB="+num+";";

rs=stmt.executeQuery(query1);

if(rs.next())

textField_3.setText("已經(jīng)由此記錄,不能追加!");

else

{

stmt.executeUpdate(query);

textField_3.setText("已經(jīng)追加完成!");

}

}

else if(2==count)

{

stmt.executeQuery(query);

rs=stmt.executeQuery(query);

if(rs.next())

{

textField_3.setText("已查找到此記錄!");

}

else

{

textField_3.setText("沒有此記錄,可以追加!");

}

}

else if(3==count)

{

query1="select * from students where XSB="+num+" and name="+"'"+name+"'";

rs=stmt.executeQuery(query1);

if(rs.next())

{

stmt.executeUpdate(query);

textField_3.setText("已刪除此記錄!");

}

else

textField_3.setText("無此記錄!");

}

} catch (ClassNotFoundException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

finally{

//關(guān)閉資源

if(stmt!=null){

try {

stmt.close();

} catch (Exception e2) {

// TODO: handle exception

}

stmt=null;

}

if(con!=null){

try {

con.close();

} catch (Exception e2) {

// TODO: handle exception

}

con=null;

}

}

}

}


名稱欄目:java登錄權(quán)限分級代碼 java登錄權(quán)限框架
當(dāng)前路徑:http://weahome.cn/article/ddpccoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部