jsp我們學完也有好長一段時間間了,過程中總結的一點點基礎知識,拿來與初學者分享,直到最后做我們一個小小的項目,寵物醫院,也是用我們最簡單的工具jcreater4.0來做的,呵,到了ecliplse下才發現,開發速度如此之快,不過這樣也打好了我們的基礎....不多說了,把所學到的小小總結發來至此吧,愿給初學者帶來便利,同時愿高人給以指點不足之處.....
首先來說一下我們jsp的課程:第一部分為servlet技術,包括servelt入門,會話跟蹤,javamal和servlet.第二部分就是jsp技術,包括:jsp簡介,jsp腳本和指令的使用,jsp隱式對象,javabean與jsp中的標準動作,jsp表達式語言,自定義標簽,jsp自定義表簽庫.第三部分就是過濾器的設計模式,包括過濾器和mvc設計模式.
一.servlet知識及常見錯誤和規律.
1.桌面運行程序與web應用程序在過程實質是一樣的---基于請求與響應的過程.
2.http協議(超文本傳輸協議)
1).無狀態:多次請求信息之間無聯系.
2).用于internet發送請求和響應消息
3).使用端口接收和發送消息,默認為80端口.
端口:為內存緩沖區(多線程接收數據)
windows: 0---65535端口
0---4096為系統端口
3.什么是servlet?
server let服務器端小程序.
用來處理客戶端發送的請求,并由服務器響應給客戶端的java編寫的程序.
servlet只在服務器運行
4.servlet詳解:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
public class myservlet extends httpservlet
{
public void doget(httpservletrequest request,httpservletresponse response)
throws servletexception,ioexception
{
response.setcontenttype("text/html;charset=gb2312");
request.setcharacterencoding("gb2312");
response.sendredirect("login.jsp"); //重定向方法
request.getparameter(""); //讀取客戶端數據
/ /以下方法為轉發,不同于重定向的是:轉發時數據不丟失.
servletcontext context=this.getservletcontext();
requestdispatcher dispatcher=context.getrequestdispatcher("/welcome.jsp");
dispatcher.forward(request,response);
...//以下方法為包含(用得相對較少)
dispatcher.include(request,response);
}
public void dopost(httpservletrequest request,httpservletresponse response)
throws servletexception,ioexception
{
doget(request,response);
}
}
(2).當需要向servlet傳遞參數的時候,src="servlet?name=' ' ";
5.執行servlet時,發生下載提示:
(1).可能性一:text/html;charset=gbk中間分號寫成逗號.
(2).可能性二:xml中配置信息出錯.
(3).可能性三:如定義全局變量時,例:content_typed在以后所用中放在雙引號之中.
(4).可能性四:當上面的text/html,charset中寫錯字符的時候,也會提示下載.
6執行servlet時,發生404錯誤:
(1).多為xml中配置出錯.
(2).可能在servlet通信方法中url出錯.
(3).表單提交時:action路徑.
(4).比較弱智的錯誤就是標記寫錯,請仔細檢查.
7.執行servlet時,發生403錯誤:
(1).tomcat下站點里發生錯誤.
8.執行servlet時,發生405錯誤:
(1).servlet中沒有post提交方法時.
95.執行servlet時,發生500錯誤:
(1).多數為servlet程序代碼中發生異常錯誤.
10.執行時,取出的數據為null.就要根據實際情況對應錯誤提示去找.
11.執行jsp頁時,發生500錯誤提示....
多數為jsp頁面在轉譯過程中發生編譯錯誤! 甚是嚴重錯誤,可以按提示回頭去找...
二.xml配置
<!--config中的配置信息,當中配置需要在servlet中的xml中-->
<servlet>
<init-param>
<param-name>sess</param-name>
<param-class>com.serv<param-class>
</init-param>
<servlet-name>myservlet</servlet-name>
<servlet-class>com.myservetl</servlet-class>
</servlet>
<!--此為對myservlet進行映射-->
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<servlet-class>/url</servlet-class>
<servlet-mapping>
<!--context中配置信息-->
<context-param>
<param-name>ses</param-name>
<param-class>com.ser</param-class>
</context-param>
注意:配置信息只能讀取,并且config是在單個servlet中能訪問,context是全局訪問
三.
========================會話跟蹤技術總結========================
用戶授權.
隱藏表單域
url重寫
cookie使用
--------------------------------------------------------------------------------------------
1.會話:是同一客戶端和服務器之間在同一段時間的多次請求和響應.
2.session使用(重點)
httpsession session=request.getsession();
session.setattribute("name",object); //附值
session.getattribute(); //取值
session.removeattributer();
3.cookie(類)
1).cookie是什么?
cookie是一段字符串,由http支持,在客戶端可以永久保存.寫入(硬盤).
每次請求,響應中都會為cookie留有空間.
2).用法:
cookie cookie=new cookie("name",cookie); //必須指定cookie的鍵與值,且必須為字符串.
response.addcookie(cookie);
cookie.setmaxage(3600); //以秒為單位.
//讀取客戶端發送過來的cookie,返回值類型為: cookie數組
request.getcookies();
//循環讀取鍵與值.
使用過程:(1).生成cookie, new cookie("","")
(2).設置生存周期 >0,setmaxage(秒).
(3).發送到客戶端:response.addcookie(cookie);
小常識:(1).一個網站最多向一個客戶端寫20個cookie.
(2).一個客戶端最多接收300個cookie.
4.session與cookie這間的關系:
session的id作為cookie的值在客戶端與服務器之間進行傳遞.
--------------------------------------------------------------------------------------------
四.構建實體bean的原則:
/*
* 1.bean類為公有
* 2.類成員為私有
* 3.必有一個無參構造
* 4.有set()和get()方法
* 5.方法命名為setxxx()或getxxx()方法
*/
五.mvc實現數據封裝
此數據封裝標準按mvc總結.
所需內容: 1.servlet 2.javabean 3.operbean(dbconnection) 4.jsp
由servlet提取前臺數據,然后將數據封裝于javabean中,再實例化operbean,調用operbean中方法,
將javabean對象以參數的形式傳過去,并進行一系列的操作后,返回數據存入arraylist中或者其它集合內,并將集合對象封裝session對象中,便于在前臺取值.
servlet控制:
........
arraylist lis=new arraylist();
string name=request.getparameter("username");
javabean bean=new javabean();
bean.setname(name);
operbean oper=new operbean();
lis=oper.opermethod(bean);
httpsession session=request.getsession();
session.setattribute("list",lis);
operbean邏輯:
...
public arraylist opermethod(javabean bean)
{
arraylist lis=new arraylist();
string usr=bean.getname("name");
string sql="select * from student where name='"+usr+"'";
dbconnection db=new dbconnection();
...//操作數據業務
return lis;
}
前臺業務:
...
arraylist list=(arraylist)session.getattribute("lis");
iterator ite=list.iterator();
while(ite.harnext()) //遍歷輸出
{
javabean bean=(javabean)ite.next();
.
//取bean中值
}
//由此可以進行"用戶登陸","數據的增刪改查","注銷登陸"等操作.....
以上所有jsp技術都是沒有與struts等框架相關的,只是簡單的mvc思想,只有懂得以上簡單的思想,才可以進一步的對框架這些高層次的東西鉆研,我感覺是如此,畢竟我也是個初學者,還有好多知識不懂,也在不停的學習之中,如果有哪個朋友有好的見意或者好的學習方法,請多多指教!
國內最大的酷站演示中心!新聞熱點
疑難解答