如果那個(gè)網(wǎng)站是你自己做的,你可以把登錄的用戶名和密碼保存到Cookie里面或者放到Appliction里面保存起來(lái)都可以。下次打開(kāi)的時(shí)候你只呀看看Appliction或者Cookie又不有值就好了
目前創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、泉州網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
你得先了解網(wǎng)站做什么。比如它第一次返回時(shí)是不是寫(xiě)了cookie?你在請(qǐng)求相冊(cè)內(nèi)容的時(shí)候,要不要在請(qǐng)求里面加上SESSIONID等信息?對(duì)于GET類型的請(qǐng)求,你可以從地址欄看到請(qǐng)求地址,對(duì)于POST類型,你可以通過(guò)一些工具分析HTTP包,查看請(qǐng)求體里面的內(nèi)容,以及是否帶有COOKIE,時(shí)間值等等信息。
如果服務(wù)器要求HTTPS連接的話,你還需要在java代碼里面指針keystore和證書(shū)名稱等。如果LZ會(huì)有很多情況使用代碼訪問(wèn)網(wǎng)頁(yè)的話,可以看看APACHE的HTTPClient開(kāi)源項(xiàng)目,它就類似一個(gè)瀏覽器,只不過(guò)沒(méi)有js解釋和標(biāo)記語(yǔ)言渲染而已,只是請(qǐng)求的網(wǎng)頁(yè)源碼。
或者,如果LZ只要測(cè)試一下可行性的話,可以先在瀏覽器里登錄校內(nèi),然后通過(guò)上面說(shuō)的找到請(qǐng)求地址。再用java代碼訪問(wèn)該地址(請(qǐng)求時(shí),不要登出校內(nèi))。否則,你不登錄訪問(wèn)的話,服務(wù)器直接將你的請(qǐng)求轉(zhuǎn)發(fā)到了登錄頁(yè)面,這樣你每次請(qǐng)求的返回都是登錄頁(yè)。
當(dāng)然,你也可以多敲幾行代碼,在代碼里實(shí)現(xiàn)登錄,再在代碼里訪問(wèn)地址。...祝你好運(yùn)!
頁(yè)面將登錄名
密碼傳到后臺(tái),后臺(tái)將登錄名密碼進(jìn)行查詢數(shù)據(jù)庫(kù)比對(duì),如果正確就將用戶保存到session中做個(gè)標(biāo)記。下次訪問(wèn)時(shí)
如果session中有用戶就說(shuō)明登錄了,沒(méi)有就需要重新登錄。
概述
具體框架使用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寫(xiě)成,所以同Java本身一樣可以跨平臺(tái)運(yùn)行,這一點(diǎn)不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統(tǒng)默認(rèn)的特有主題),然而不是真的使用原生平臺(tái)提供的設(shè)備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺(tái)上使用JAVA支持的任意面板。輕量級(jí)組件的缺點(diǎn)則是執(zhí)行速度較慢,優(yōu)點(diǎn)就是可以在所有平臺(tái)上采用統(tǒng)一的行為。
概念解析:
JFrame?– java的GUI程序的基本思路是以JFrame為基礎(chǔ),它是屏幕上window的對(duì)象,能夠最大化、最小化、關(guān)閉。
JPanel?– Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進(jìn)行嵌套,功能是對(duì)窗體中具有相同邏輯功能的組件進(jìn)行組合,是一種輕量級(jí)容器,可以加入到JFrame窗體中。。
JLabel?– JLabel 對(duì)象可以顯示文本、圖像或同時(shí)顯示二者??梢酝ㄟ^(guò)設(shè)置垂直和水平對(duì)齊方式,指定標(biāo)簽顯示區(qū)中標(biāo)簽內(nèi)容在何處對(duì)齊。默認(rèn)情況下,標(biāo)簽在其顯示區(qū)內(nèi)垂直居中對(duì)齊。默認(rèn)情況下,只顯示文本的標(biāo)簽是開(kāi)始邊對(duì)齊;而只顯示圖像的標(biāo)簽則水平居中對(duì)齊。
JTextField?–一個(gè)輕量級(jí)組件,它允許編輯單行文本。
JPasswordField?– 允許我們輸入了一行字像輸入框,但隱藏星號(hào)(*) 或點(diǎn)創(chuàng)建密碼(密碼)
JButton?– JButton 類的實(shí)例。用于創(chuàng)建按鈕類似實(shí)例中的 "Login"。
利用javax.net.*類庫(kù),寫(xiě)個(gè)訪問(wèn)程序。利用GET方式訪問(wèn)域名帶參數(shù)username password,如果有驗(yàn)證碼,使用“圖片解析器”將jpg數(shù)據(jù)流在內(nèi)存分析出驗(yàn)證碼一并提交的URL地址。
-------------------------------
沒(méi)有驗(yàn)證碼舉例:
假如:
首先查看登陸頁(yè)面的源代碼:
如下:
form action="left_login.do" method="post" name="form2"
id="form2" onsubmit="return checkForm()"
input id="url" name="url" type="hidden" value=""
input id="usbcert" name="usbcert" type="hidden" value=""
input id="certsign" name="certsign" type="hidden" value=""
tbody
tr style="padding-top: 10px;"
td width="34%" align="right" height="35"
用戶名:?
/td
td width="66%" height="35"
input id="userName" name="userName" class="cssstyle"
style="width: 114px; height: 20px;" type="text" /
/td
/tr
tr
td align="right" height="30"
密 碼:?
/td
td height="30"
input id="password" name="password" class="cssstyle"
style="width: 114px; height: 20px;" type="password" /
/td
/tr
發(fā)現(xiàn)表單action:
left_login_do.jsp
需要參數(shù):
userName password
于是:你可以寫(xiě)
。。。
URL url=new URL(";password=123456");
Scanner s=new Scanner(u.openStream());
while(s.hasNextLine()){
System.out.println(new String(s.nextLine().getBytes("ISO-8859-1"),"GBK"));
}
s.close();
...
就登陸了哇