package com.action;
成都網(wǎng)站建設(shè)、做網(wǎng)站的開發(fā),更需要了解用戶,從用戶角度來建設(shè)網(wǎng)站,獲得較好的用戶體驗(yàn)。成都創(chuàng)新互聯(lián)公司多年互聯(lián)網(wǎng)經(jīng)驗(yàn),見的多,溝通容易、能幫助客戶提出的運(yùn)營建議。作為成都一家網(wǎng)絡(luò)公司,打造的就是網(wǎng)站建設(shè)產(chǎn)品直銷的概念。選擇成都創(chuàng)新互聯(lián)公司,不只是建站,我們把建站作為產(chǎn)品,不斷的更新、完善,讓每位來訪用戶感受到浩方產(chǎn)品的價(jià)值服務(wù)。
import java.util.List;
import java.util.Map;
import org.apache.struts2.ServletActionContext;
import com.dao.TAdminDAO;
import com.model.TAdmin;
import com.opensymphony.xwork2.ActionSupport;
import com.util.Pagination;
public class adminAction extends ActionSupport
{
private int userId;//用戶id
private String userName;//用戶名
private String userPw;//用戶密碼
private String message;
private String path;
private int index=1;
private TAdminDAO adminDAO;//dao聲明
public String adminAdd()//增加用戶方法
{
TAdmin admin=new TAdmin();
admin.setUserName(userName);
admin.setUserPw(userPw);
adminDAO.save(admin);//調(diào)用dao方法
this.setMessage("操作成功");
this.setPath("adminManage.action");
return "succeed";//返回值
}
public String adminManage()//查找所有管理員
{
List adminList=adminDAO.findAll();
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("adminList", adminList);//將列表存入adminList
return ActionSupport.SUCCESS;
}
public String adminManageFenye()//管理員列表的分頁查詢
{
List adminList=adminDAO.findAll();
int pageSize=3;
int fromIndex = (index - 1) * pageSize;
int toIndex = Math.min(fromIndex + pageSize, adminList.size());
List adminListFenye = adminList.subList(fromIndex, toIndex);
Pagination p = new Pagination();//創(chuàng)建 分頁對象
p.setIndex(index);//設(shè)置頁數(shù)
p.setPageSize(pageSize);
p.setTotle(adminList.size());//設(shè)置總共的條數(shù)
p.setData(adminListFenye);//設(shè)置數(shù)據(jù)
p.setPath("adminManageFenye.action?");//跳轉(zhuǎn)的路徑
Map request=(Map)ServletActionContext.getContext().get("request");
request.put("page", p);
return ActionSupport.SUCCESS;
}
概述
具體框架使用jframe,文本框組件:JTextField;密碼框組件:JPasswordField;標(biāo)簽組件:JLabel;復(fù)選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。
登錄界面:
代碼實(shí)例
import javax.swing.*;
import java.awt.*; ? //導(dǎo)入必要的包
public class denglu extends JFrame{
JTextField jTextField ;//定義文本框組件
JPasswordField jPasswordField;//定義密碼框組件
JLabel jLabel1,jLabel2;
JPanel jp1,jp2,jp3;
JButton jb1,jb2; //創(chuàng)建按鈕
public denglu(){
jTextField = new JTextField(12);
jPasswordField = new JPasswordField(13);
jLabel1 = new JLabel("用戶名");
jLabel2 = new JLabel("密碼");
jb1 = new JButton("確認(rèn)");
jb2 = new JButton("取消");
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
//設(shè)置布局
this.setLayout(new GridLayout(3,1));
jp1.add(jLabel1);
jp1.add(jTextField);//第一塊面板添加用戶名和文本框
jp2.add(jLabel2);
jp2.add(jPasswordField);//第二塊面板添加密碼和密碼輸入框
jp3.add(jb1);
jp3.add(jb2); //第三塊面板添加確認(rèn)和取消
// ? ? ? ?jp3.setLayout(new FlowLayout()); ?//因?yàn)镴Panel默認(rèn)布局方式為FlowLayout,所以可以注銷這段代碼.
this.add(jp1);
this.add(jp2);
this.add(jp3); ?//將三塊面板添加到登陸框上面
//設(shè)置顯示
this.setSize(300, 200);
//this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setTitle("登陸");
}
public static void main(String[] args){
new denglu();
}
}
拓展內(nèi)容
java swing包
Swing 是一個(gè)為Java設(shè)計(jì)的GUI工具包。
Swing是JAVA基礎(chǔ)類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺(tái)運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺(tái)提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺(tái)上使用JAVA支持的任意面板。輕量級組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺(tái)上采用統(tǒng)一的行為。
概念解析:
JFrame?– java的GUI程序的基本思路是以JFrame為基礎(chǔ),它是屏幕上window的對象,能夠最大化、最小化、關(guān)閉。
JPanel?– Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進(jìn)行嵌套,功能是對窗體中具有相同邏輯功能的組件進(jìn)行組合,是一種輕量級容器,可以加入到JFrame窗體中。。
JLabel?– JLabel 對象可以顯示文本、圖像或同時(shí)顯示二者??梢酝ㄟ^設(shè)置垂直和水平對齊方式,指定標(biāo)簽顯示區(qū)中標(biāo)簽內(nèi)容在何處對齊。默認(rèn)情況下,標(biāo)簽在其顯示區(qū)內(nèi)垂直居中對齊。默認(rèn)情況下,只顯示文本的標(biāo)簽是開始邊對齊;而只顯示圖像的標(biāo)簽則水平居中對齊。
JTextField?–一個(gè)輕量級組件,它允許編輯單行文本。
JPasswordField?– 允許我們輸入了一行字像輸入框,但隱藏星號(hào)(*) 或點(diǎn)創(chuàng)建密碼(密碼)
JButton?– JButton 類的實(shí)例。用于創(chuàng)建按鈕類似實(shí)例中的 "Login"。
在web應(yīng)用中,對頁面的訪問控制通常通過程序來控制,流程為:
登錄 - 設(shè)置session - 訪問受限頁面時(shí)檢查session是否存在,如果不存在,禁止訪問
對于較小型的web應(yīng)用,可以通過tomcat內(nèi)置的訪問控制機(jī)制來實(shí)現(xiàn)權(quán)限控制。采用這種機(jī)制的好處是,程序中無需進(jìn)行權(quán)限控制,完全通過對tomcat的配置即可完成訪問控制。
為了在tomcat頁面設(shè)置訪問權(quán)限控制,在項(xiàng)目的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,可以使用通配符*,通常對整個(gè)目錄進(jìn)行訪問權(quán)限控制。
auth-constraint中指定哪些角色可以訪問url-pattern指定的url,在role-name中可以設(shè)置一個(gè)或多個(gè)角色名。
使用的角色名來自tomcat的配置文件$/conf/tomcat-users.xml。
login-config中設(shè)置登錄方式,auth-method的取值為BASIC或FORM。如果為BASIC,瀏覽器在需要登錄時(shí)彈出一個(gè)登錄窗口。如果為FORM方式,需要指定登錄頁面和登錄失敗時(shí)的提示信息顯示頁面。
使用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指定登錄失敗時(shí)的提示頁面url。
登錄頁面中,form的action,以及其中的用戶名和密碼兩個(gè)參數(shù)的名稱,都應(yīng)取固定的值。登錄的后臺(tái)處理程序?yàn)閖_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