国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Servlet方法
1.Servlet是JSP的底層實(shí)現(xiàn),而且JSP也是通過轉(zhuǎn)譯成Servlet后才能執(zhí)行的。
2.Servlet其實(shí)就是一個(gè)Java類,所以其創(chuàng)建方法和創(chuàng)建Java類完全相同(但注意:它沒有main()方法),所有的Servlet類都必須繼承HttpServlet類。HttpServlet接口包含很多方法,除了init()和destroy()方法用來處理Servlet初始化和銷毀。還包括一些常用方法,如doGet方法、doPost以及Service方法。
3.Servlet的生命周期 
  Servlet也是一個(gè)普通的Java類,所以其一樣具有生命周期。Servlet從生成到銷毀必須進(jìn)過如下幾個(gè)步驟。
 (1)生成Servlet,加載到Servlet Engine(Web容器)中,并通過調(diào)用其init()方法來進(jìn)行初始化。
 (2)通過提供的響應(yīng)方法來處理客戶端的請(qǐng)求。
 (3)調(diào)用destroy()方法進(jìn)行銷毀,并通過垃圾收集器進(jìn)行收集清理。
 
————————————————————————————————————————
————————————————————————————————————————
 
doGet方法:doGet方法用來處理客戶端瀏覽器直接訪問和表單get方式提交的表單。

  實(shí)例如下(本頁(yè)面是JSP頁(yè)面,雖然還沒有學(xué)到JSP,但我覺得在用Servlet時(shí)用JSP已經(jīng)不是什么

  難題,況且下面這個(gè)JSP是很簡(jiǎn)單的):USERFORM.JSP

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<html>

<head>

   <title>用戶表單</title>

</head>

<body>

   <form action="DoGetDemo" method="get">

      用戶名:<input type="text" name="username"/><br>

      密碼:<input type="password" name="password"/><br>

      <input type="submit" value="提交"/>

      <input type="reset" value="重置"/>

   </form>

</body>

</html>

OK,接下來相對(duì)應(yīng)的Servlet代碼如下:

package com.javaweb.ch10;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class DoGetDemo extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              response.setContentType("text/html;charset=gb2312");

              PrintWriter out = response.getWriter();

              request.setCharacterEncoding("gb2312");

              String username = request.getParameter("username");

              String password = request.getParameter("password");

              out.println("<html>");

              out.println("<body>");

              out.println("用戶名:" + username + "<br>");

              out.println("密碼:" + password);

              out.println("</body>");

              out.println("</html>");

       }

}

好了,現(xiàn)在我來解釋一下上面代碼的意思:

  第一個(gè)JSP文件是用于客戶端向服務(wù)端提交表單的文件,這個(gè)JSP文件很簡(jiǎn)單,和一個(gè)HTML文件大同小異,我們雖然還沒有學(xué)到JSP,但對(duì)如此簡(jiǎn)單的JSP應(yīng)該還是會(huì)寫的,本文件相對(duì)于一個(gè)HTML文件來講只有第一行是新東西,第一行一看就知道是什么意思,它無(wú)非就是一個(gè)JSP的腳本指令,此腳本指令定義了本腳本的使用語(yǔ)言為java,腳本的編碼類型及規(guī)范為text/html和GB2312,OK!到此為止其余的諸如表單一類的東西都是已經(jīng)接觸過的了,不用再多費(fèi)口舌。

  第二個(gè)文件是一個(gè)Servlet類,這幾天都在學(xué)這個(gè)東西,應(yīng)該對(duì)他不會(huì)陌生,它用來處理客戶端動(dòng)態(tài)頁(yè)面請(qǐng)求,因?yàn)榭蛻舳颂峤坏恼?qǐng)求是DoGetDemo,所以服務(wù)端必須要有此Servlet才能做出正確響應(yīng),否則客戶端將拋出404錯(cuò)誤,好了,接下來因?yàn)榭蛻舳耸且詆et方式提交表單,所以服務(wù)端需要用doGet方法來處理這類請(qǐng)求信息,至于處理的過程及結(jié)果大家都能看懂,我就不多說了。

另外說明一下,doGet方法只能用來處理get方式提交上來的表單,不能處理post方式提交的表單。
 
————————————————————————————————————————————
————————————————————————————————————————————

doPost方法是用來處理表單post方式提交的表單,不能處理客戶端瀏覽器直接訪問。

實(shí)例如下:USERFORM2.JSP

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<html>

<head>

       <title>用戶表單</title>

</head>

<body>

       <form action="DoPostDemo" method="post">

              用戶名:<input type="text" name="username"/><br>

              密碼:<input type="password" name="password"/><br>

              <input type="submit" value="提交"/>

              <input type="reset" value="重置"/>

       </form>

</body>

</html>

接下來,相對(duì)應(yīng)的Servlet代碼如下(DOPOSTDEMO.JAVA)

package com.javaweb.ch10;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class DoPostDemo extends HttpServlet {

    public void doPost(HttpServletRequest request, HttpServletResponse response)

                     throws ServletException, IOException {

              response.setContentType("text/html;charset=gb2312");

              PrintWriter out = response.getWriter();

              request.setCharacterEncoding("gb2312");

              String username = request.getParameter("username");

              String password = request.getParameter("password");

              out.println("<html>");

              out.println("<body>");

              out.println("用戶名:" + username + "<br>");

              out.println("密碼:" + password);

              out.println("</body>");

              out.println("</html>");

       }

}

解釋一下上面代碼的意思:

實(shí)例代碼DOPOSTDEMO.JAVA的主體代碼與前面的doGet方法的主體代碼相似,只是將代碼寫在了doPost中,doPost方法能處理Post方式提交的表單,但無(wú)法處理瀏覽器的直接訪問。實(shí)際上,我這樣寫的目的就是想說不論是doGet方法還是doPost方法都能處理各自的提交方式,但兩個(gè)方法之間對(duì)同一種請(qǐng)求的處理則是不允許混用。如果要想用一種方法來同時(shí)處理客戶端的get及post請(qǐng)求請(qǐng)關(guān)注下周博文中的service方法。
 
————————————————————————————————————
————————————————————————————————————

service方法用來處理客戶端瀏覽器直接訪問和表單以get方式提交以及表單以post方式提交的情況。

首先說表單的寫法(這里說的是常規(guī)寫法):

<form action="ServiceDemo" method="post">

用戶名:<input type="text" name="username"/><br>

密碼:<input type="password" name="password"/><br>

<input type="submit" value="提交"/>

<input type="reset" value="重置"/>

</form>

相對(duì)應(yīng)的Servlet寫法(因?yàn)槠鶈栴},我省略了包導(dǎo)入語(yǔ)句):

public class ServiceDemo extends HttpServlet {

  protected void service(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

request.setCharacterEncoding("gb2312");

String username = request.getParameter("username");

String password = request.getParameter("password");

out.println("<html>");

out.println("<body>");

out.println("用戶名:" + username + "<br>");

out.println("密碼:" + password);

out.println("</body>");

out.println("</html>");

}

}

其實(shí),這個(gè)service方法的用法與前面的doGet與doPost方法的用法完全一樣,它實(shí)現(xiàn)了對(duì)這兩種提交方式的處理,只要在代碼中實(shí)現(xiàn)了這個(gè)方法,具體的調(diào)用過程由Web容器去處理。

  需要說明的是現(xiàn)在很多人都不這樣寫,而是直接寫兩個(gè)方法,即:doGet與doPost,在其中任意一個(gè)方法中調(diào)用上一種方法來完成對(duì)兩種提交方式的處理,這種做法除了增加代碼的可讀性之外其余我還沒有看到有什么優(yōu)點(diǎn)可言。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Java編程中Servlet簡(jiǎn)介與常用方法_Servlet_Java中文網(wǎng)
處理表單數(shù)據(jù)
京淘項(xiàng)目總結(jié)
java web開發(fā)入門-request對(duì)象
JSP亂碼雜談
JSP: 調(diào)用servlet 顯示圖片
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服