
2009年9月25日
從頭開始學(xué)jsp,對(duì)它有興趣是第一要事。以下幾個(gè)案例非常的簡(jiǎn)單,不需要用到別的知識(shí)。用來先對(duì)jsp有所感知是個(gè)不錯(cuò)的注意。
案例1 :displace.jsp
<%@ page contentType="text/html; charset=GB2312" %>
<form name="form1" action="displace.jsp" method="post">
<br><br>
<input type="text" name="Vals"><input type="text" name="Amount">
<input type="submit" name="Submit" value="Submit">
</form>
<%
int intLocal_Vals, intLocal_Amount;
if(request.getParameter("Vals")!=null && request.getParameter("Amount")!=null)
{
intLocal_Vals = Integer.parseInt(request.getParameter("Vals"));
intLocal_Amount = Integer.parseInt(request.getParameter("Amount"));
//下面進(jìn)行位移操作
intLocal_Vals=intLocal_Vals>>intLocal_Amount;
out.print("<br>位移后的值為:" +intLocal_Vals);
}else{
out.print("位移值或位移量不能為空!");
}
%>
案例1的所有操作都在一個(gè)頁面內(nèi)完成,一般不會(huì)出現(xiàn)什么問題,主要用來認(rèn)識(shí)一下jsp頁面的組成結(jié)構(gòu)。
案例2 :準(zhǔn)備工作:在d:盤建立一個(gè)名為count.txt的空文本文檔。
<%@ page language="java" contentType="text/html; charset=gb2312"%>
<html>
<head>
<title>文字計(jì)數(shù)器</title>
</head>
<body bgcolor="#ffffff">
<%@page import="java.io.*" %>
<%
BufferedReader file;
//BufferedReader 對(duì)象用于讀取文件數(shù)據(jù)
String countFile="d:/count.txt";
//標(biāo)示文件的地址
file=new BufferedReader(new FileReader(countFile));
//將file(BufferedRead的對(duì)象)指向文件的地址
String readStr=null;
//來存取文件的內(nèi)容
int writeStr=1;
//寫入文件的變量 如果文件中訪問是0 則寫入為1
try
{
readStr=file.readLine();//讀取文件內(nèi)容
}
catch(IOException e){
System.out.println("read wrong");
}
if(readStr==null) readStr="no record";
else {
writeStr=Integer.parseInt(readStr)+1;//讀取的內(nèi)容+1
}
try{
PrintWriter pw;
//PrintWriter用于寫文件的一個(gè)類
pw=new PrintWriter(new FileOutputStream(countFile));
//指定文件
pw.println(writeStr);
//寫入變量writeStr的值
pw.close();
}
catch(IOException e){
out.println(e.getMessage());
}
%>
<p align="center">
<h1>文字計(jì)數(shù)器</h1>
<h3>你是本站第</h3>
<font color="ff0000" size="7">
<%=readStr%></font>
<h3>個(gè)讀者</h3>
</body>
</html>
案例2主要是和外部文件進(jìn)行了簡(jiǎn)單的通訊,用到的主要是java代碼。
案例3:準(zhǔn)備工作:安裝mysql;將mysql的JDBC驅(qū)動(dòng)器拷貝到Tomcat\common\lib和Tomcat\shared\lib 下。
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page language="java" import="java.sql.*"%>
<%
Connection conn = null; //連接
Class.forName("org.gjt.mm.mysql.Driver"); //驅(qū)動(dòng)
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/db","root","8"); //建立連接
if(conn==null){
out.println("get Conn Error");
}
Statement stmt=conn.createStatement();
ResultSet RS_result=null;
%>
<html>
<head>
<title>學(xué)習(xí)</title></head>
<body>
<%
RS_result=stmt.executeQuery("select * from user");
String Name,Password;
while(RS_result.next())
{
Name=RS_result.getString("name");
Password=RS_result.getString("password");
%>
<P><%=Name%>
<%=Password%></p>
<%
}
stmt.close();
conn.close();
%>
</body>
</html>
案例3里其實(shí)只是用java實(shí)現(xiàn)了一個(gè)數(shù)據(jù)庫連接。
案例4:
login.jsp
<%@ page contentType="text/html; charset=GB2312" %>
<html>
<head>
<title>login</title>
</head>
<body>
<form name="Sayhi" method="post" action="Jsp2.jsp">
<p>請(qǐng)輸入用戶信息:</p>
<p>姓名 <input type="text" name="name" size="12"></p>
<p>密碼 <input type="password" name="password" size="12"></p>
<input type="submit" value="確認(rèn)">
<input type="reset" value="取消">
</body>
</html>
handle.jsp
<%@page import="java.sql.*" contentType="text/html;charset=gb2312" %>
<html>
<head>
<title>認(rèn)證</title>
</head>
<body>
<%
String Name=request.getParameter("name");
String Password=request.getParameter("password");
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url="jdbc:mysql://localhost:3306/db";
String user="root";
String password="8";
Connection conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from user where name='"+Name+"' and password='"+Password+"'";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
out.print("恭喜你,登陸成功!");
}
else{
out.print("抱歉!登陸不成功!");
}
rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
案例4是jsp最常用的功能,實(shí)現(xiàn)用戶登陸的問題。
案例5:
CountTest.java
package Test;
public class CountTest {
private static int count = 0;
public CountTest() {
}
public static int getCount() {
count++;
return count;
}
public static void setCount(int a) {
count =a;
}
}
counter.jsp
<%@page import="Test.*"%>
<HTML>
<HEAD>
<TITLE>
counter
</TITLE>
</HEAD>
<BODY>
<H1>
JBuilder Generated JSP
</H1>
<jsp:useBean id="bean0" scope="application" class="Test.CountTest" />
<%
out.println("The Counter is : " + bean0.getCount() + "<BR>");
%>
</BODY>
</HTML>
案例5是在java完成處理,在jsp里完成顯示的例子。
posted @
2009-09-25 09:07 達(dá)飛Plus 閱讀(149) |
評(píng)論 (0) |
編輯 收藏
下個(gè)星期要考數(shù)據(jù)庫,現(xiàn)把基本知識(shí)稍做整理:
sql的概念:
SQL (Structured Query Language結(jié)構(gòu)化查詢語言)是目前使用最廣的并且是標(biāo)準(zhǔn)的數(shù)據(jù)庫語言。
sql語言的構(gòu)成:
SQL語言包括約30條語句,每條語句請(qǐng)求DBMS完成一個(gè)動(dòng)作.
每條SQL語句都以一個(gè)動(dòng)詞開頭,這是描述該語句功能的關(guān)鍵字.接著是一個(gè)或幾個(gè)子句.
子句指定該語句所作用的數(shù)據(jù),或該語句行為的更詳細(xì)說明.
每個(gè)子句都以一個(gè)關(guān)鍵字開頭.有包含表名和列名,有含有附加關(guān)鍵字,常數(shù)或表達(dá)式.
sql的命名:
數(shù)據(jù)庫中的對(duì)象都有一個(gè)唯一名字標(biāo)識(shí).
SQL語句中用名字標(biāo)識(shí)該語句作用的數(shù)據(jù)庫對(duì)象.
ANSI/ISO SQL標(biāo)準(zhǔn)規(guī)定的名字有表名(標(biāo)識(shí)表),列名(標(biāo)識(shí)列)和用戶名(標(biāo)識(shí)數(shù)據(jù)庫的用戶)
許多SQL實(shí)現(xiàn)支持附加命名對(duì)象
sql的數(shù)據(jù)類型:
定長(zhǎng)字符串.(CHAR(LEN),CHARACTER(LEN)
整數(shù).(NUMBER(P,S) ,SMALLINT,INTEGER)
小數(shù).(NUMBER(P,S) ,DECIMAL(P,S))
浮點(diǎn)數(shù).(NUMBER(P,S),FLOAT(P),REAL)
可變長(zhǎng)字符串.(VARCHAR2(N),VARCHAR(N))
金額.(NUMBER(P,S),MEONEY))
日期和時(shí)間.(DATE,DATETIME,TIMESTAMP)
長(zhǎng)文字.(LONG,LONG VARCHAR)
無結(jié)構(gòu)字節(jié)流.(RAW,LONG RAW)
sql的表達(dá)式
在SQL語言中,表達(dá)式用于計(jì)算從數(shù)據(jù)庫中檢索的值以及用于搜索數(shù)據(jù)庫的值.
ANSI/ISO SQL標(biāo)準(zhǔn)規(guī)定表達(dá)式中可用四種算術(shù)運(yùn)算:+,-,*,/.還可以用括號(hào)組成更復(fù)雜的表達(dá)式.
ANSI/ISO標(biāo)準(zhǔn)還規(guī)定,在必要的時(shí)候整數(shù)可自動(dòng)轉(zhuǎn)換成小數(shù),小數(shù)可自動(dòng)轉(zhuǎn)換為浮點(diǎn)數(shù).
有的產(chǎn)品還支持日期運(yùn)算表達(dá)試.
ORACLE中的字符連接運(yùn)算使用‘||’ 運(yùn)算符
sql的內(nèi)部構(gòu)造函數(shù)
大多數(shù)SQL實(shí)現(xiàn)都包含一組有用的內(nèi)部函數(shù).
±數(shù)值處理函數(shù).(ABS,ROUND,TRUNC,SQRT)
±字符處理函數(shù).(SUBSTR,TRIM,UPPER)
±日期處理函數(shù).(ADD_MONTHS,MONTHS_BETWEEN)
±轉(zhuǎn)換函數(shù).(CONVERT,TO_DATE,TO_CHAR)
±其它函數(shù).(NVL,USER,USERENV,UID)
內(nèi)部構(gòu)造函數(shù)在SQL表達(dá)式中可用于相同數(shù)據(jù)類型的常數(shù)出現(xiàn)的任何地方.
sql的無數(shù)據(jù)處理(NULL值)
SQL通過空值的概念來處理數(shù)據(jù)不存在,不確定或不能用的情況.
NULL不同于一般的實(shí)際數(shù)據(jù),而是一個(gè)表示數(shù)據(jù)不存在或未知的標(biāo)志.
在許多情況下,NULL要求DBMS特殊處理.±例如在ORACLE中通過NVL內(nèi)部構(gòu)造函數(shù)來處理這種情況.
posted @
2009-09-25 09:02 達(dá)飛Plus 閱讀(159) |
評(píng)論 (0) |
編輯 收藏