2008年10月16日
摘要: <!
DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"
>
<%
@?page?language
=
"
...
閱讀全文
摘要: 首先,先用DAO把數據業務邏輯部分分離開來,因為我只用到MySQL,所以就省略了工廠類,定了一個業務邏輯的接口及實現它的類。?????MessageDAO.java??????
package?DAO.iface;import?java.util.List;/**?*//**?*?進行數據操作的業務邏輯類接口的DAO?*?@author?Administrator?*?*/public?int...
閱讀全文
2008年10月9日
摘要: MySQL 存儲過程參數有三種類型:in、out、inout。它們各有什么作用和特點呢?
閱讀全文
2008年9月28日
摘要: 步驟1.一個簡單的XML文檔:???XML代碼:<?xml?version="1.0"?encoding="GBK"?>??<StudentInfo>??????<student>??????????<name>趙海波</name>??????????<sex>男</sex>??????????<lesson...
閱讀全文
摘要: 當使用DOM解析XML文檔時,使用的是DOM的思想,因而不可避免需要將XML文檔轉換成DOM樹。DOM解析器在裝入XML文檔時,已經在內存中將XML文檔的每個元素轉換成DOM樹的每個節點了。
對于下面的一個簡單XML文檔:
xml代碼:
閱讀全文
2008年9月15日
摘要: 在Java中,可以獲得總的物理內存、剩余的物理內存、已使用的物理內存等信息,本例講解如何取得這些信息,并且獲得在Windows下的內存使用率。???? 首先編寫一個MonitorInfoBean類,用來裝載監控的一些信息,包括物理內存、剩余的物理內存、已使用的物理內存、內存使用率等字段,該類的代碼如下:package?com.amigo.performance;/**?*//**?*?監視信息的J...
閱讀全文
摘要: CharServer.javaimport?java.net.*;import?java.util.*;import?java.io.*;public?class?ChatServer{????ServerSocket?server?=?null;????ArrayList<ClientConn>?clients?=?new?ArrayList<ClientConn>();...
閱讀全文
2008年9月9日
摘要: 每每涉及到數據庫時,總是死板的硬套那四個步驟,一直對數據庫如果封裝成類感到疑惑,晚上看了點資料,有了點感悟,就記下來了。
將一些增刪改查的基本操作都封裝起來,其他類直接調用方法名,進行數據的操作,省了一堆無謂的聲明,實例化等。。
閱讀全文
2008年9月8日
摘要: 簡單分欄式變換加密技術:
(1)將明文消息一行一行寫入預定長度的矩形中
(2)一列一列讀消息,但不一定按1、2、3列的順序,也可以按隨機順序,如2、3、1
(3)得到的消息就是密文消息
注:密鑰為字符的話,就根據ASII碼的大小進行組合。
閱讀全文
2008年9月4日
摘要: 在Java中關于時間的處理有很多種方法,在API中也有好幾個關于時間處理的類,如 Date、Canlendar、GregorianCalendar、SimpleDateFormat、timestamp等...貌似很雜,現在一一整理~
各種時間類的關系如下:
閱讀全文
摘要: 設計原則:
#找出應用中可能需要變化之處,把它們獨立出來,不要和不需要變化的代碼混在一起(即使是行為)
#針對接口編程,而不是針對實現編程。(實例化對象時使用多態)
#多用組合,少用繼承
策略模式:定義了算法族,分別封裝起來,讓他們可以互相替換,此模式讓算法的變化獨立與使用算法的客戶
閱讀全文
凱撒加密法:消息中每個字母換成向后三個字母的字母,例如,明文ATUL變成密文DWXO。
MainKaisa.java
1 import javax.swing.JFrame;
2
3 public class MainKaisa {
4
5 /**
6 * @param nonles
7 */
8 public static void main(String[] args) {
9 //實例化一個窗體
10 KaisaFrame kaisaFrame = new KaisaFrame();
11 kaisaFrame.setVisible(true);
12 kaisaFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
13
14 }
15
16 }
Kaisa.java
1 mport java.awt.event.ActionEvent;
2 import java.awt.event.ActionListener;
3 import javax.swing.*;
4
5 public class KaisaFrame extends JFrame {
6
7 JLabel jlDackText = new JLabel();
8 JButton btnBrightText = new JButton();
9 JPasswordField jpf = new JPasswordField();
10 JTextField jtf2 = new JTextField();
11 char[] buf;
12
13
14 public KaisaFrame() {
15 this.setSize(300,200); //設置窗體大小
16 this.setTitle("凱撒加密法");
17 this.setResizable(false);
18
19 jbInit();
20 }
21
22 private void isLetter() {
23 //判斷輸入的內容是否為字母
24 buf = jpf.getPassword();
25 for(char c:buf) {
26 if(Character.isLetter(c) == false) {
27 JOptionPane.showMessageDialog(this, "不能為非字符", "Error", JOptionPane.ERROR_MESSAGE);
28 jpf.setText("");
29 jtf2.setText("");
30 return;
31 } else {
32 makeBrightText();
33 }
34 }
35 }
36
37 private void makeBrightText() {
38 // 產生明文
39 char[] arr = new char[buf.length];
40 int index=0,temp;
41 for(char c:buf) {
42 temp = c+3; //字母后移三位
43 if( (temp>90 && temp<97) || temp>122 ) {
44 //若ASCII碼在此區間則減去26(使字符XYZ,xyz循環到XAB,xab)
45 temp = temp - 26;
46 arr[index++] = (char)temp;
47 } else {
48 arr[index++] = (char)temp;
49 }
50 }
51
52 String str = new String(arr);
53 jtf2.setText(str);
54
55 }
56
57 private void jbInit() {
58 // 設置窗體內容
59 this.setLayout(null);
60 jlDackText.setText("輸入密文:");
61 jlDackText.setBounds(30, 20, 80, 30);
62 btnBrightText.setText("生成明文:");
63 btnBrightText.setBounds(30, 90, 100, 30);
64 jpf.setBounds(160, 20, 80, 30);
65 jpf.setEchoChar('*');
66 jtf2.setBounds(160, 90, 80, 30);
67 jtf2.setEditable(false);
68
69 this.add(jlDackText);
70 this.add(jpf);
71 this.add(btnBrightText);
72 this.add(jtf2);
73
74 btnBrightText.addActionListener(new ActionListener(){
75
76 @Override
77 public void actionPerformed(ActionEvent e) {
78 isLetter(); //判斷輸入的內容是否為字母
79 }
80
81 });
82 }
83
84 }
85
現實圖解:
往文本框中輸入密文(只限字符),點擊按鈕,即生成相應密文。
若輸入為非字符,則彈出錯誤框~
簡單的一個程序,說明都不用了。。。
Rail Fence Technique:變換加密技術一種。
??????????????????? 1、將明文消息寫成對角線序列
??????????????????? 2、將第一步寫出的明文讀入序列
?? RailFence.java
?1?import?java.io.BufferedReader;
?2?import?java.io.FileWriter;
?3?import?java.io.IOException;
?4?import?java.io.InputStreamReader;
?5?import?java.io.PrintWriter;
?6?
?7?public?class?RailFence?{
?8?
?9?????public?static?void?main(String[]?args)?{????????
10?????????char[]?buf;
11?????????String?str?=?new?String("");
12?????????StringBuffer?sb1?=?new?StringBuffer("");
13?????????StringBuffer?sb2?=?new?StringBuffer("");
14?????????
15?????????BufferedReader?in?=?new?BufferedReader(new?InputStreamReader(System.in));
16?????????try?{
17?????????????PrintWriter?out?=?new?PrintWriter(new?FileWriter("d:""czl.txt"));
18?????????????while((str=in.readLine())!=?null)?{
19?????????????????if(str.equalsIgnoreCase("exit"))?break;????//退出操作
20?????????????????System.out.println("明文:"+str);????????//將輸入的字符串打印到控制臺
21?????????????????out.println("============柵欄加密技術=============");
22?????????????????out.println("明文:"+str);
23?????????????????buf?=?str.toCharArray();????//將輸入的字符串轉變為字符數組
24?????????????????for(int?i=0;i<buf.length;i++)?{
25?????????????????????//將位置為0、2、4..放在sb1中,單數放sb2中
26?????????????????????if(i%2?==?0)????
27?????????????????????????sb1.append(buf[i]);????????????
28?????????????????????else
29?????????????????????????sb2.append(buf[i]);
30?????????????????}
31?????????????????out.println("密文:"+sb1.append(sb2));????//合并兩個數組????
32?????????????}
33?????????????out.flush();
34?????????????out.close();
35?????????}?catch?(IOException?e)?{
36?????????????e.printStackTrace();
37?????????}
38?????????
39?????}
40?
41?}
???
在成功安裝JDK的前提下,安裝tomcat6.0(假設安裝路徑為C:,一般選擇FULL安裝,4.0以上版本不用配置環境變量)系統變量中添加以下環境變量(假定你的j2sdk安裝在c:"jdk1.6):?
JAVA_HOME=c:"jdk1.6。接著可以啟動tomcat,在IE中訪問http://localhost:8080,如果看到tomcat的歡迎頁面的話說明安裝成功了。
??? 然后對tomcat進行配置:
???
第一步:建立自己的jsp?app目錄:
??????? 1.在webapps目錄下新建一個目錄,起名叫myapp;?
????? ? 2.myapp下新建一個目錄WEB-INF,注意,目錄名稱是區分大小寫的;?
??????? 3.WEB-INF下新建一個文件web.xml,內容如下:?
???
?1?<?xml?version="1.0"?encoding="ISO-8859-1"?>
?2?
?3?<!DOCTYPE?web-app
?4?PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"
?5?"http://java.sun.com/dtd/web-app_2_3.dtd">
?6?
?7?<web-app>
?8?<display-name>My?Web?Application</display-name>
?9?<description>
10?A?application?for?test.
11?</description>
12?</web-app>
??
? ?
4.在myapp下新建一個測試的jsp頁面,文件名為index.jsp,文件內容如下
? 1?<html>
2?<body>
3?<center>
4?Now?time?is:?<%=new?java.util.Date()%>
5?</center>
6?</body>
7?</html>
??? 5.重啟Tomcat?
???? ?? 6.打開瀏覽器,輸入http://localhost:8080/myapp/index.jsp看到當前時間的話說明就成功了
??? 第二步:建立自己的Servlet:
??? 寫入你的第一個Servlet:
??? 在你新建的Application myapp/WEB-INF/classes/test目錄下新建HelloWorld.java
??? ?1?package?test;
?2?
?3?import?java.io.*;
?4??import?javax.servlet.*;
?5??import?javax.servlet.http.*;
?6??public?class?HelloWorld?extends?HttpServlet
?7???{
?8?????public?void?doGet(HttpServletRequest?request,HttpServletResponse?response)throws ServletException,IOException
?9????{
10?????response.setContentType("text/html");
11?????PrintWriter?out?=?response.getWriter();
12?????out.println("<html><head><title>");
13?????out.println("This?is?my?first?Servlet");
14?????out.println("</title></head><body>");
15?????out.println("<h1>Hello,World!</h1>");
16?????out.println("</body></html>");
17????
18????}
19????}
??? 把Tomcat中lib里面的servlet-api.jar文件拷貝到C:"JDK"jre"lib"ext中,編譯
HelloWorld.java
??? Servlet必須使用C:"Tomcat"webapps"myapp"WEB-INF這個目錄下面的web.xml文件進行注冊,用EditPlus打開這個web.xml文件,在<web-app></web-app>添加下面這段程序:
???
?1?package?test;
?2?public?class?TestBean
?3?{
?4?????private?String?name?=null;
?5?????public?TestBean(String?nameInit){
?6?????????this.name?=?nameInit;
?7?????}
?8?????public?void?setName(String?newName){
?9?????????this.name=newName;
10?????}
11?????public?String?getName(){
12?????????return?this.name;
13?????}
14?}
?????? 然后照樣用javac TestBean.java來編譯這個文件。
????? 2.然后在你新建的應用程序目錄myapp下新建一個新的jsp文件:testBean.jsp
?????? ?1?<%@?page?import="test.TestBean"?%>
?2?<html>
?3?<head>
?4?<title>Test?Bean</title>
?5?</head>
?6?<body>
?7?<center>
?8?<%
?9????TestBean?testBean?=?new?TestBean("Http://czl.cn");
10??%>
11?Java?Bean?Test:
12?????The?author's?blog?address?is<%=testBean.getName()%>
13?</center>
14?</body>
15?</html>
????? 確定各個文件的位置,如下
????? myapp"index.jsp
myapp"testBean.jsp
myapp"WEB-INF"web.xml
myapp"WEB-INF"classes"test"HelloWorld.class
myapp"WEB-INF"classes"test"TestBean.class
?????? ???? 3.重啟Tomcat如果需要的話,在瀏覽器輸入:http://localhost:8080/myapp/testBean.jsp?幸運的話就會看到:
???? Java Bean Test: The author's blog address isHttp://czl.cn
????
這樣就完成了整個Tomcat下的jsp、servlet和javabean的配置。
??? ?? 第四步:配置虛擬目錄
????? 打開 Tomcat6.0"conf"server.xml 文件,在 <Host> 和 </Host> 之間加入????
<Context?path="/myapp"?docBase="D:"myapp"?debug="0"?reloadable="true"?crossContext="true"?/>
摘要: String是一個特殊的包裝類數據。即可以用String str = new String("abc");的形式來創建,也可以用String str = "abc";的形式來創建。前者是規范的類的創建過程,即在Java中,一切都是對象,而對象是類的實例,全部通過new()的形式來創建。Java 中的有些類,如DateFormat類,可以通過該類的getInstance()方法來返回一個新創建的類,似乎違反了此原則。其實不然。該類運用了單例模式來返回類的實例,只不過這個實例是在該類內部通過new()來創建的,而getInstance()向外部隱藏了此細節。那為什么在String str = "abc";中,并沒有通過new()來創建實例,是不是違反了上述原則?其實沒有。
閱讀全文