Welcome to Yumao′s Blog.
Hello Servlet Day02
, 2012年04月23日 , Java Language , 评论 在〈Hello Servlet Day02〉中留言功能已關閉 ,

1、表單的處理
(1)如何獲得表單的參數
1),String request.getParameter(String paraName);
注意:
a,paraName與實際參數名不一致,會返回null值。
b,如果用戶沒有輸入任何的值,大部分的表單域
會返回””字符串。單選和多選會返回null值。
2)String[] request.getParameterValues(String paraName);
注意:
當用多個請求參數名相同的時候,用這個方法。

	(2)中文的處理(表單中有中文參數)
		a,產生亂碼問題的原因
			當表單採用post方式提交時,瀏覽器會將
		表單中的中文按照打開表單所在的頁面的編碼
		來進行編碼。而服務器端在默認情況下,大部分
		服務器會使用iso-8859-1來解碼。
		b,解決方式:
			step1 在html頁面中,添加
			
			step2 表單採用post方式提交
			step3 在servlet類裡面,添加
			request.setCharacterEncoding("utf-8");
2、http協議(了解)
	(1)http是什麼
		hypertext tranfer protocal(超文本傳輸協議),
	定義了瀏覽器(也可以其它客戶端程序)與
	web服務器之間通訊的過程與數據的格式。
	(2)通訊的過程
		a,瀏覽器請求與服務器之間建立連接
		b,瀏覽器將要發送的數據打包(按http協議
		的格式要求)
		c,服務器處理請求,將處理結果打包,發送給
		瀏覽器。
		d,服務器關閉連接。
		一次請求,一次連接,也就是說,瀏覽器與
	web服務器之間,不會建立一種持續的連接。
	這樣做的好處是:服務器可以使用有限的連接為
	多個客戶服務。
	(3)數據的格式
		1)請求數據包
			a,請求行:
				請求方式 get/post
				請求資源路徑(端口號之後的內容)
				協議及版本
			b,消息頭(若干)
				消息頭:w3c定義的一套通訊的規則,瀏覽器
			與服務器都會遵守。
				消息頭一會由瀏覽器與服務器自動生成,我們
			也可以編程生成自己的消息頭。
			c,實體內容
				只有當請求方式是post方式的時候,實體內容
			才會有數據:數據指的是請求參數。
				如果請求方式是get方式,請求參數會添加到
			請求資源路徑後面。
		2)響應數據包
			a,狀態行:
				協議的類型與版本 狀態碼 狀態碼的描述
				常見的狀態碼:
					200: 服務器正常處理了請求。
					500:系統出錯
					404:要訪問的請求資源路徑不存在對應的資源
			b,若干消息頭
					服務器也可以發送一些消息頭給瀏覽器。
				比如content-type消息頭可以告訴瀏覽器返回的
				數據類型及編碼。
			c,實體內容
				返回的處理結果
3、get/post請求
	(1)哪一些是get請求
		a,在瀏覽器地址欄直接輸入一個地址
		b,表單默認的提交方式
		c,鏈接
	(2)get請求的特點
		a, 會將請求參數放到請求資源路徑後面,
	因為請求行最多允許的數據大約是4K左右,所以,
	get方式只適合提交少量的數據。
		b,會將請求參數顯示到瀏覽器地址欄,相對來說,
	不安全。
	(3)哪一些是post方式
		a,表單的method="post"
	(4)post方式的特點
		a,會將請求參數放到實體內容裡面,提交的數據量
	理論上沒有限制。
		b,瀏覽器地址欄不會顯示請求參數,相對安全。

4、訪問數據庫
	(1)mysql數據庫的基本使用
		a,登錄(使用root用戶名登錄)
		mysql -uroot;
		b,查看所有數據庫實例
		show databases;
		c,創建一個數據庫(同時,指定默認的編碼)
		create database jd1202db default
		character set utf8;
		d,使用某個數據庫
		use jd1202db;
		e,查看當前數據庫的所有的表
		show tables;
		f,建表
			create table t_emp(
				id bigint primary key auto_increment,
				name varchar(50),
				salary double,
				age int
			);
			bigint: 8個字節,是一個整數。
			primary key:主健
			auto_increment:自增長列,即主健值由
			數據庫自動生成。

			create table t_user(
				id int primary key auto_increment,
				username varchar(20) unique,
				name varchar(50),
				birthday date,
				registTime datatime,
				gender char(1),
				info text
			);
			unique:唯一性約束
			text:保存大量的字符,相當於clob類型
			blob:保存大量的二進制數據。
		g,插入記錄:
			insert into t_emp(name,salary,age)
			values('zs',10000,23);
		 	select * from t_emp;
	(2)使用jdbc訪問數據庫
		step1  將mysql的jdbc驅動程序拷貝到
		WEB-INFlib下。
		step2 在servlet類裡面,使用jdbc代碼
		訪問數據庫。
	(3)如果發生了系統異常,可以給服務器配置一個
	錯誤處理頁面,將頁面的信息顯示給用戶。
		step1 寫一個錯誤處理頁面
		step2 在web.xml文件當中,添加
			
				500
				/error.html
			

	練習:
		將用戶的註冊信息插入到數據庫。
		create table t_user(
			id int primary key auto_increment,
			username varchar(20) unique,
			pwd varchar(20),
			name varchar(50),
			age int
		);

CodePackage
课堂内容

关键字:, ,

评论已关闭