亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

幾個實用的Servlet應用例子-入門、cookie、session及上傳文件

2019-11-18 15:07:39
字體:
來源:轉載
供稿:網友

  Servlet可以被認為是服務端的applet,它被WEB服務器加載和執行,前端可以顯示頁面和獲得頁面數據,后臺可以操縱數據庫,能完成javaBean的很多功能。在這里我較為具體的說說Servlet在Cookie,session和上傳文件上的應用,在說明時我給出一些能編繹運行的小例子,最后給出一個文件上傳例子以加深印象。
  我們先來看看SERVLET程序的基本構架:
式1:
  package test;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  public class test extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
  super.init(config);
}
  public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  int f =1; switch(f){
  case 1:firstMothed(request,respponse);break;
}
}
  public void firstMothed(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("text/Html");
  OutputStreamWriter osw = new
  OutputStreamWriter(response.getOutputStream());
  PRintWriter out = new PrintWriter (response.getOutputStream());
  out.println("< html>");
  out.println("< head>< title>Servlet1< /title>< /head>");
  out.println("< body>你好!");
  out.println("< /body>< /html>");
  out.close();
}
}
式2:
  package test;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  public class test extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
  super.init(config);
}
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("text/html");
  OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream());
  PrintWriter out = new PrintWriter (response.getOutputStream());
  out.println("< html>");
  out.println("< head>< title>Servlet1< /title>< /head>");
  out.println("< body>你好!");
  out.println("< /body>< /html>");
  out.close();
}
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  response.setContentType("text/html");
  OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream());
  PrintWriter out = new PrintWriter (response.getOutputStream());
  out.println("< html>");
  out.println("< head>< title>Servlet1< /title>< /head>");
  out.println("< body>你好!");
  out.println("< /body>< /html>");
  out.close();
}
}
  式1適合于作總控模塊,此SERVLET作中間調度,根據不同的f值調用不同的SERVLET或方法。
式2適合于對html的get和post有不同要求的情況。
  但這并不是絕對的,式2就完全可以代替式1,只要在doGet()方法中寫上doPost就與式1完全一樣。
在init方法中執行的語句,只要這個servlet被啟動了就一直有效,比如,我們在init()中new了一個對象,那么這個對象的內存空間就永遠存在,除非顯式地把這個對象賦為null,或重啟服務。
  HttpServletRequest和HttpServletResponse兩個對象實現http請求,它們有很多有用的方法,在下面的cookie和session治理中會細加描述。
  1, cookie治理 cookie用于在客戶端保存個人所特有的信息,它采取在客戶機寫臨時文件的機制。
  package test;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  public class test extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
  super.init(config);
}
  public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  //寫cookie
  String CookieName ="js79"; //若是漢字則需編碼
  String CookieValue = "yesky";//若是漢字則需編碼
  Cookie cookie = new Cookie(CookieName,CookieValue);
  cookie.setMaxAge(age); // age = Integer.MAX_VALUE 永不過期
  cookie.setPath("/");
  //讀cookie
  String value = null;
  Cookie[] cookies = request.getCookies();
  if (cookies != null) {
  for (int i=0; i< cookies.length; i++) {
  if (cookies[i].getName().equals(CookieName))
  value = cookies[i].getValue();
  break;
}
}
}
  response.setContentType("text/html");
  OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream());
  PrintWriter out = new PrintWriter (response.getOutputStream());
  out.println("< html>");
  out.println("< head>< title>test< /title>< /head>");
  out.println("cookie鍵:"+CookieName+"< br>");
  out.println("cookie值: "+value);
  out.println("< /body>< /html>");
  out.close();
}
}
  2,session治理
  Session在Servlet中是很有用的,它比cookie安全可靠靈活,但是治理起來有點麻煩,用得不好會造成服務器的開銷很大,浪費資源。下面是一個基于Session治理一個對象的簡單例子。
一個簡單的bean對象TestObject
  package test;
  public class TestObject extends Object {
  int id = 0; public String cur="";
}
  package test;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  public class TestMan extends HttpServlet {
  public void init(ServletConfig config) throws ServletException {
  super.init(config);
}
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  int f = 1;
  if(request.getParameter("f")!=null)
  f =
  Integer.parseInt(request.getParameter("f"));
  switch(f){
  case 1: this.getResult(request,response);
  break;
  case 2:
  this.setSession(request,response);
  break;
}
}
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  doGet(request,response);
}
  public void getResult(HttpServletRequest request, HttpServletResponse response)   throws ServletException, IOException {
  TestObject testObject = null;
  testObject = getStatus(request,response);
  String html = testObject.id; doWrite( response,html);
}
  public void setSession(HttpServletRequest request, HttpServletResponse response)  throws ServletException, IOException {
  HttpSession session = request.getSession();
  TestObject testObject = null;
  testObject = getStatus(request,response);
  String tmp = null;
  tmp = request.getParameter("id");
  if(tmp != null) testObject.id = tmp;
  session.putValue("testObject ",article);
  getResult(request,response);
}
  private TestObject getStatus(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  HttpSession session = request.getSession();
  TestObject testObject = null;
  if(session!=null){
  if(session.getValue("testObject ")!=null){
  testObject = (TestObject)session.getValue("testObject ");
}
  else{
  testObject = new TestObject ();
}
}
  else{
  testObject = new TestObject ();
}
  return testObject;
}
  private void doWrite(HttpServletResponse response,String html) throws   ServletException, IOException {
  PrintWriter out = response.getWriter();
  out.println(html);
  out.close();
}
  /////////////////////////////////////////////////////////
}
  若能輕松搞定上面的例子,相信讀者對SERVLET已有了較為深刻的理解。
下面再介紹一個上傳文件例子,其中汲及到了下載的免費JavaBean (如有感愛好的朋友,可來函索要免費JavaBean源代碼,Email:js79@yesky.com)
  上傳基本原理:由頁面發出一個http請求,服務端得到請求后,解析多媒體協議,讀出文件內容,寫文件內容到服務器,所有的這些功能都封裝到JavaBean中。
  上傳文件的必需條件:Browser端< form>表單的ENCTYPE屬性值必須為 multipart/form-data,它告訴我們傳輸的數據要用到多媒體傳輸協議,由于多媒體傳輸的都是大量的數據,所以規定上傳文件必須是post方法,< input>的type屬性必須是file。
  package upload;
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  public class UpLoadServlet extends HttpServlet {
  public void init(ServletConfig config) throws ServletException{
  super.init(config);
}
  public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  PrintWriter out = response.getWriter();
  out.println("< HTML>< HEAD>< TITLE>UpLoad< /TITLE>"
  +"< meta http-equiv=´Content-Type´ content=´text/html; charset=gb2312´>"
  +"< /HEAD>"
  +"< body>");
  out.println("< div align=´center´ valign=´top´>"
  +"< span class=´nava´>請你選擇上傳的文件(請注重文件大小只能在20K之內)< /span>< BR>"
  +"< form ENCTYPE=´multipart/form-data´ method=post action=´´>"
  +"< input type=´file´ name=´file´>"
  +"< input type=´submit´ value=´發送´>"
  +"< /form>"
  +"< /div>");
  out.println("< /body>< /html>");
  out.close();
}
  ////////
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  PrintWriter out = response.getWriter();
  int tmpID = 1; try {
  MultipartRequest multi = new MultipartRequest(request,"/home/js79/html/", 5 * 1024 * 1024);
}
  catch(Exception e){
  tmpID = -1; System.out.println(e);
}
  if(tmpID == 1){
  out.println("< HTML>< HEAD>< TITLE>UpLoad< /TITLE>"
  +"< meta http-equiv=´Content-Type´ content=´text/html; charset=gb2312´>"
  +"< /HEAD>"
  +"< body>");
  out.println("上傳成功!< /body>< /html>");
}
  else{
  out.println("< HTML>< HEAD>< TITLE>UpLoad< /TITLE>"
  +"< meta http-equiv=´Content-Type´ content=´text/html; charset=gb2312´>"
  +"< /HEAD>"
  +"< body>");
  out.println("上傳不成功!< /body>< /html>");
}
  out.close();
}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久久久国产| 国产精品9999| 国产精品色视频| 92福利视频午夜1000合集在线观看| 人人澡人人澡人人看欧美| 91国产中文字幕| 久久成人精品视频| 成人美女av在线直播| 97在线日本国产| 97av在线视频免费播放| 中文字幕日韩欧美在线视频| 国产精品三级美女白浆呻吟| 在线电影欧美日韩一区二区私密| 日韩美女在线观看一区| 日韩高清欧美高清| 午夜精品三级视频福利| 国产精品极品尤物在线观看| 久久综合久久美利坚合众国| 日韩一区二区三区国产| 国产成人一区二区| 亚洲夜晚福利在线观看| 国产亚洲精品久久久久动| 欧美最近摘花xxxx摘花| 日韩电影在线观看永久视频免费网站| **欧美日韩vr在线| 亚洲自拍欧美色图| xxav国产精品美女主播| 亚洲成人黄色在线观看| 欧美日韩国产丝袜另类| 久久久之久亚州精品露出| 欧美亚洲激情在线| 亚洲中国色老太| 成人a在线视频| 国产精品久久久久久久av电影| 国产日韩欧美视频| 国产精品久久久久久久久久小说| 日韩av一区二区在线观看| 久久国产精品久久久久久久久久| 久久久综合av| 欧美日韩国产中文字幕| 亚洲欧美视频在线| 欧美激情按摩在线| 视频在线观看一区二区| 午夜精品久久17c| 伦伦影院午夜日韩欧美限制| 成人欧美一区二区三区黑人孕妇| www.国产一区| 国产精品久久久久久久久免费看| 日韩成人中文字幕| 亚洲人线精品午夜| 国产精品精品国产| 国产成人av网| 国产97色在线|日韩| 成人免费视频网| 日本成人黄色片| 亚洲欧美www| www.xxxx欧美| 欧美成人精品激情在线观看| 岛国视频午夜一区免费在线观看| 欧洲成人在线视频| 亚洲护士老师的毛茸茸最新章节| 久久精品国产亚洲7777| 欧美高清激情视频| 久久亚洲私人国产精品va| 欧美大片第1页| 136fldh精品导航福利| 欧美性xxxx18| 麻豆国产精品va在线观看不卡| 亚洲欧美一区二区三区久久| 国产成人综合亚洲| 91精品国产沙发| 日本久久久久久| 亚洲第一免费播放区| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲精品午夜精品| 久久视频在线看| 国产成人鲁鲁免费视频a| 亚洲成人av片| 成人在线国产精品| 亚洲国产精品一区二区三区| 高清欧美电影在线| 国内揄拍国内精品少妇国语| 亚洲第一网站免费视频| 91精品国产综合久久香蕉| 欧美性videos高清精品| 日韩专区中文字幕| 91精品国产综合久久男男| 日韩av在线免费观看| 久久亚洲国产精品成人av秋霞| 日韩免费观看网站| 欧美激情中文网| 中文在线资源观看视频网站免费不卡| 久久成人在线视频| 国产精品久久久久久久久久久久| 日韩av片免费在线观看| 91视频国产精品| 热99精品只有里视频精品| 国产精品一区二区三区毛片淫片| 在线精品高清中文字幕| 国产精品中文字幕久久久| 亚洲欧美成人精品| 91中文字幕在线| 欧美成人在线免费视频| 日韩精品视频在线| 日韩av影视在线| www.日本久久久久com.| 色婷婷**av毛片一区| 欧美日韩一二三四五区| 日韩欧美高清在线视频| 亚洲自拍偷拍第一页| 欧美一级在线亚洲天堂| 免费97视频在线精品国自产拍| 亚洲free性xxxx护士hd| 亚洲国模精品一区| 久久久女人电视剧免费播放下载| 久久成人精品电影| 一区二区三区精品99久久| 精品中文字幕乱| 亚洲开心激情网| 欧美午夜丰满在线18影院| 中文字幕亚洲无线码在线一区| 久久青草精品视频免费观看| 成人自拍性视频| 国产婷婷成人久久av免费高清| 国产亚洲欧美日韩美女| 一区国产精品视频| 国产一区二区三区高清在线观看| 俺也去精品视频在线观看| 国产欧美精品一区二区三区-老狼| 中文字幕日韩欧美在线| 日本老师69xxx| 欧美激情视频播放| 国产精品久久一| 国产精品最新在线观看| 97视频在线观看亚洲| 国产精品久久中文| 久久影院中文字幕| 中文字幕在线亚洲| 欧美高清视频免费观看| 美日韩丰满少妇在线观看| 亚洲美女自拍视频| 欧美老少做受xxxx高潮| 国模精品视频一区二区| 7777免费精品视频| 欧美成人一二三| 91精品国产沙发| 国产精品丝袜视频| 亚洲人成电影网站| 一区二区三区四区在线观看视频| 久久视频在线观看免费| 国产主播喷水一区二区| 九九九热精品免费视频观看网站| 欧美裸体xxxx极品少妇| 国产精品色视频| 日韩中文字幕久久| 中文字幕一区二区三区电影| 国产丝袜一区二区三区免费视频| 欧美性猛交xxxx乱大交| 欧美视频不卡中文| 日韩欧美中文在线| 欧美激情女人20p| 久久久久久久久国产| 亚洲a成v人在线观看| 在线观看精品国产视频|