import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class MainFrame extends JFrame {
JLabel lbl1 = new JLabel("用戶名:");
JLabel lbl2 = new JLabel("密 碼:");
JTextField txt = new JTextField("admin",20);
JPasswordField pwd = new JPasswordField(20);
JButton btn = new JButton("登錄");
JPanel pnl = new JPanel();
private int error = 0;
public MainFrame(String title) throws HeadlessException {
super(title);
init();
}
private void init() {
this.setResizable(false);
pwd.setEchoChar('*');
pnl.add(lbl1);
pnl.add(txt);
pnl.add(lbl2);
pnl.add(pwd);
pnl.add(btn);
this.getContentPane().add(pnl);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if ("admin".equals(new String(pwd.getPassword()))){
pnl.removeAll();
JLabel lbl3 = new JLabel();
ImageIcon icon = new ImageIcon(this.getClass().getResource("pic.jpg"));
lbl3.setIcon(icon);
pnl.add(lbl3);
}
else{
if(error < 3){
JOptionPane.showMessageDialog(null,"密碼輸入錯誤,請再試一次");
error++;
}
else{
JOptionPane.showMessageDialog(null,"對不起,您不是合法用戶");
txt.setEnabled(false);
pwd.setEnabled(false);
btn.setEnabled(false);
}
}
}
});
}
public static void main(String[] args) {
MainFrame frm = new MainFrame("測試");
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setBounds(100, 100, 300, 120);
frm.setVisible(true);
}
}
隨手寫的, 沒調試圖片, 太麻煩
『貳』 如何通過後端(Java)實現微信三方登錄
實現微信三方登錄,需先在微信開放平台獲取APPID、SECRET及回調域三個關鍵信息。建議公司申請並提供給開發者直接使用。
用戶在網站上點擊帶有APPID和回調域的a標簽鏈接進行微信登錄。登錄後,系統將顯示二維碼,掃碼並同意授權後,鏈接至回調地址,並返回授權碼。這一步驟後,系統可以獲取到授權碼。
利用HttpClient工具發送第二個請求,通過授權碼換取訪問令牌access_token。需預先准備HttpClient工具和相應處理包。
後端接收並解析訪問令牌,使用HttpClient調用微信介面獲取令牌access_token與openid,即微信用戶標識。通過fastjson庫對返回的json數據進行處理。
獲取到openid後,即可判斷用戶是否已綁定微信。如果已綁定,用戶可實現免密登錄;未綁定,則需通過第三方請求獲取用戶詳細信息,完成資料庫中的微信用戶綁定。
針對未綁定或首次綁定的用戶,可採用三種策略解決:使用隨機密碼和手機號作為用戶名,初次只能微信登錄,不便於用戶體驗(非最佳選擇);初次微信登錄時要求輸入密碼,之後使用微信登錄直接通過,賬號登錄需手機號密碼復合驗證;初次綁定使用手機驗證碼完成,通過手機號綁定,下次登錄可實現免密登錄,並提供隨機密碼以供下次修改賬號密碼使用。
『叄』 用java怎樣編寫登錄頁面,成功登錄跳轉到下一個頁面,求代碼
以下是針對您提供的代碼段進行潤色和修正後的內容:
1. 修正了方法簽名為 `public void validateUserPass(String user, String pass)`,確保方法名和參數符合Java的命名慣例。
```java
public void validateUserPass(String user, String pass) {
// ...
}
```
2. 引入了 `DBFactory` 類的實例化,並修正了資料庫查詢的方法,這里假設 `DBFactory` 是一個已定義的類,用於獲取資料庫連接。
```java
RequestDispatcher rd = null;
DBFactory db = DBFactoryImpl.getDBFactoryInstance();
boolean flg = db.findUser(user, pass);
// 如果查詢結果為null,則表示用戶不存在
if (flg == null || flg.hasNext() == -1) {
// 登錄失敗,設置錯誤消息
session.setAttribute("msg", "對不起,用戶名或密碼錯誤");
rd = req.getRequestDispatcher("login.jsp");
rd.forward(request, response); // 將請求對象和響應對象傳遞給登錄頁面
}
// 如果查詢結果不為null,則表示用戶存在
else {
// 登錄成功,將用戶信息保存在session中
session.setAttribute("userName", user);
// 使用重定向跳轉到index.html頁面
request.getRequestDispatcher("index.html").forward(request, response);
}
```
3. 修正了 `sendRedirect` 方法的使用,它應該用於重定向到另一個伺服器資源或絕對路徑。
```java
// 登錄成功後,使用重定向跳轉到index.html頁面
request.getRequestDispatcher("index.html").forward(request, response);
```
4. 代碼注釋的添加,有助於其他開發者理解代碼邏輯。
```java
// ...
// 檢查用戶是否存在
if (flg == null || flg.hasNext() == -1) {
// 設置登錄失敗的提示信息
session.setAttribute("msg", "對不起,用戶名或密碼錯誤");
// 轉發到登錄頁面
rd = req.getRequestDispatcher("login.jsp");
rd.forward(request, response);
} else {
// 設置登錄成功的用戶信息
session.setAttribute("userName", user);
// 重定向到主頁
request.getRequestDispatcher("index.html").forward(request, response);
}
// ...
```
5. 最後,提醒您在學習Java以及相關框架時,要重點理解請求轉發和重定向的概念及其應用場景。請求轉發是在伺服器內部進行,重定向則是將客戶端的請求發送到另一個URL。
『肆』 java寫的用戶登陸實例,用eclipse開發的具體步奏和代碼
java寫的用戶登錄實例,實際頁面展示使用的jsp,那麼下面是jsp的登錄頁面代碼:
1、login.jsp代碼
<%
string name = request.getparameter("username");
string pwd = request.getparameter("password");
//out.println(name+pwd);
string sql ="select * from info where username='"+name+"' and password='"+pwd+"'";
//out.println(sql);
statement stm= null;
resultset rs =null;
try
{
stm = conn.createstatement();
rs = stm.executequery(sql);
if(rs.next())
{
session.setattribute("username",name);
response.sendredirect("index.html");
}
else
{
response.sendredirect("index1.html");
}
}
catch(sqlexception e)
{
e.printstacktrace();
}
%>
<!--登錄的表單-->
<form name="form1" method="post" action="login.jsp">
<p>
<label for="username"></label> 用戶名
<input type="text" name="username" id="username">
</p>
<p>
<label for="passwrod"></label> 密碼
<input type="text" name="passwrod" id="passwrod">
</p>
<p>
<input type="submit" name="button" id="button" value="提交">
</p>
</form>
2、用戶信息表,存放用戶名和密碼:
user_info 表
create table if not exists `test` (
`id` int(8) not null auto_increment,
`username` char(150) default null,
`password` varchar(32),
`times` int(4) not null,
primary key (`id`)
) engine=myisam default charset=utf8 auto_increment=1 ;