国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

Jsp基礎(chǔ)知識總結(jié)

2024-09-05 00:19:51
字體:
供稿:網(wǎng)友

   jsp我們學(xué)完也有好長一段時(shí)間間了,過程中總結(jié)的一點(diǎn)點(diǎn)基礎(chǔ)知識,拿來與初學(xué)者分享,直到最后做我們一個(gè)小小的項(xiàng)目,寵物醫(yī)院,也是用我們最簡單的工具jcreater4.0來做的,呵,到了ecliplse下才發(fā)現(xiàn),開發(fā)速度如此之快,不過這樣也打好了我們的基礎(chǔ)....不多說了,把所學(xué)到的小小總結(jié)發(fā)來至此吧,愿給初學(xué)者帶來便利,同時(shí)愿高人給以指點(diǎn)不足之處.....

    首先來說一下我們jsp的課程:第一部分為servlet技術(shù),包括servelt入門,會話跟蹤,javamal和servlet.第二部分就是jsp技術(shù),包括:jsp簡介,jsp腳本和指令的使用,jsp隱式對象,javabean與jsp中的標(biāo)準(zhǔn)動作,jsp表達(dá)式語言,自定義標(biāo)簽,jsp自定義表簽庫.第三部分就是過濾器的設(shè)計(jì)模式,包括過濾器和mvc設(shè)計(jì)模式.

    一.servlet知識及常見錯(cuò)誤和規(guī)律.

1.桌面運(yùn)行程序與web應(yīng)用程序在過程實(shí)質(zhì)是一樣的---基于請求與響應(yīng)的過程.
2.http協(xié)議(超文本傳輸協(xié)議)
  1).無狀態(tài):多次請求信息之間無聯(lián)系.
  2).用于internet發(fā)送請求和響應(yīng)消息
  3).使用端口接收和發(fā)送消息,默認(rèn)為80端口.
端口:為內(nèi)存緩沖區(qū)(多線程接收數(shù)據(jù))
windows: 0---65535端口
  0---4096為系統(tǒng)端口
3.什么是servlet?
  server let服務(wù)器端小程序.
  用來處理客戶端發(fā)送的請求,并由服務(wù)器響應(yīng)給客戶端的java編寫的程序.
  servlet只在服務(wù)器運(yùn)行

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("");  //讀取客戶端數(shù)據(jù)

                       / /以下方法為轉(zhuǎn)發(fā),不同于重定向的是:轉(zhuǎn)發(fā)時(shí)數(shù)據(jù)不丟失.
                      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).當(dāng)需要向servlet傳遞參數(shù)的時(shí)候,src="servlet?name=' '  ";

5.執(zhí)行servlet時(shí),發(fā)生下載提示:

(1).可能性一:text/html;charset=gbk中間分號寫成逗號.
(2).可能性二:xml中配置信息出錯(cuò).
(3).可能性三:如定義全局變量時(shí),例:content_typed在以后所用中放在雙引號之中.
(4).可能性四:當(dāng)上面的text/html,charset中寫錯(cuò)字符的時(shí)候,也會提示下載.

6執(zhí)行servlet時(shí),發(fā)生404錯(cuò)誤:

(1).多為xml中配置出錯(cuò).
(2).可能在servlet通信方法中url出錯(cuò).
(3).表單提交時(shí):action路徑.
(4).比較弱智的錯(cuò)誤就是標(biāo)記寫錯(cuò),請仔細(xì)檢查.

7.執(zhí)行servlet時(shí),發(fā)生403錯(cuò)誤:

(1).tomcat下站點(diǎn)里發(fā)生錯(cuò)誤.

8.執(zhí)行servlet時(shí),發(fā)生405錯(cuò)誤:

(1).servlet中沒有post提交方法時(shí).

95.執(zhí)行servlet時(shí),發(fā)生500錯(cuò)誤:

(1).多數(shù)為servlet程序代碼中發(fā)生異常錯(cuò)誤.

10.執(zhí)行時(shí),取出的數(shù)據(jù)為null.就要根據(jù)實(shí)際情況對應(yīng)錯(cuò)誤提示去找.

11.執(zhí)行jsp頁時(shí),發(fā)生500錯(cuò)誤提示....
  
        多數(shù)為jsp頁面在轉(zhuǎn)譯過程中發(fā)生編譯錯(cuò)誤! 甚是嚴(yán)重錯(cuò)誤,可以按提示回頭去找...


二.xml配置

<!--config中的配置信息,當(dāng)中配置需要在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進(jìn)行映射-->
<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是在單個(gè)servlet中能訪問,context是全局訪問

三.
========================會話跟蹤技術(shù)總結(jié)========================

用戶授權(quán).
隱藏表單域
url重寫
cookie使用
--------------------------------------------------------------------------------------------
1.會話:是同一客戶端和服務(wù)器之間在同一段時(shí)間的多次請求和響應(yīng).

2.session使用(重點(diǎn))

  httpsession session=request.getsession();
  session.setattribute("name",object); //附值
  session.getattribute(); //取值
  session.removeattributer();

3.cookie(類)
 1).cookie是什么?
      cookie是一段字符串,由http支持,在客戶端可以永久保存.寫入(硬盤).
      每次請求,響應(yīng)中都會為cookie留有空間.
 2).用法:
        cookie cookie=new cookie("name",cookie); //必須指定cookie的鍵與值,且必須為字符串.
        response.addcookie(cookie);
        cookie.setmaxage(3600);  //以秒為單位.
 
 //讀取客戶端發(fā)送過來的cookie,返回值類型為: cookie數(shù)組
 request.getcookies();
 //循環(huán)讀取鍵與值.

   使用過程:(1).生成cookie, new cookie("","")
   (2).設(shè)置生存周期 >0,setmaxage(秒).
   (3).發(fā)送到客戶端:response.addcookie(cookie);

小常識:(1).一個(gè)網(wǎng)站最多向一個(gè)客戶端寫20個(gè)cookie.
             (2).一個(gè)客戶端最多接收300個(gè)cookie.

4.session與cookie這間的關(guān)系:
session的id作為cookie的值在客戶端與服務(wù)器之間進(jìn)行傳遞.
--------------------------------------------------------------------------------------------

四.構(gòu)建實(shí)體bean的原則:

/*
 *  1.bean類為公有
 *  2.類成員為私有
 *  3.必有一個(gè)無參構(gòu)造
 *  4.有set()和get()方法
 *  5.方法命名為setxxx()或getxxx()方法
*/


五.mvc實(shí)現(xiàn)數(shù)據(jù)封裝

此數(shù)據(jù)封裝標(biāo)準(zhǔn)按mvc總結(jié).

所需內(nèi)容: 1.servlet 2.javabean 3.operbean(dbconnection) 4.jsp

  由servlet提取前臺數(shù)據(jù),然后將數(shù)據(jù)封裝于javabean中,再實(shí)例化operbean,調(diào)用operbean中方法,
將javabean對象以參數(shù)的形式傳過去,并進(jìn)行一系列的操作后,返回?cái)?shù)據(jù)存入arraylist中或者其它集合內(nèi),并將集合對象封裝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();
  ...//操作數(shù)據(jù)業(yè)務(wù)
 
  return lis;
 }

前臺業(yè)務(wù):
 ...
 arraylist list=(arraylist)session.getattribute("lis");
 iterator ite=list.iterator();
 while(ite.harnext())  //遍歷輸出
 {
  javabean bean=(javabean)ite.next();
  .
  //取bean中值
 }


//由此可以進(jìn)行"用戶登陸","數(shù)據(jù)的增刪改查","注銷登陸"等操作.....

 以上所有jsp技術(shù)都是沒有與struts等框架相關(guān)的,只是簡單的mvc思想,只有懂得以上簡單的思想,才可以進(jìn)一步的對框架這些高層次的東西鉆研,我感覺是如此,畢竟我也是個(gè)初學(xué)者,還有好多知識不懂,也在不停的學(xué)習(xí)之中,如果有哪個(gè)朋友有好的見意或者好的學(xué)習(xí)方法,請多多指教!

國內(nèi)最大的酷站演示中心!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 都兰县| 苍梧县| 双牌县| 商水县| 宣武区| 察哈| 台州市| 紫阳县| 扬州市| 涿州市| 安新县| 仪陇县| 福安市| 凤山市| 衡水市| 广水市| 平和县| 恭城| 肥城市| 荆州市| 四子王旗| 山阳县| 吴川市| 平安县| 德钦县| 双鸭山市| 肇东市| 德惠市| 准格尔旗| 敦煌市| 綦江县| 盱眙县| 玉田县| 确山县| 如皋市| 府谷县| 武陟县| 藁城市| 谷城县| 乌什县| 新巴尔虎右旗|