校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > JSP實現添加功能和分頁顯示實例分析

JSP實現添加功能和分頁顯示實例分析

熱門標簽:杭州ai語音電銷機器人功能 電銷機器人好賣么 電銷機器人是有一些什么技術 地圖標注線上教程 四川保險智能外呼系統商家 北票市地圖標注 商洛電銷 杭州語音電銷機器人軟件 高德地圖標注樣式

本文實例講述了JSP實現添加功能和分頁顯示的方法。分享給大家供大家參考。具體如下:

學習目標:

① 進一步掌握MVC設計模式;
② 掌握添加功能的實現;
③ 掌握分頁顯示功能的實現。

主要內容:

① 通過用戶信息添加功能進一步介紹MVC模式;
② 通過用戶信息的分頁顯示介紹分頁顯示功能的原理和實現。

1、如何采用MVC模式完成用戶添加?

首先考慮與人如何交互:應該有一個輸入用戶信息的界面,包含用戶名和口令,另外需要一反饋的界面。

然后考慮功能如何實現:需要在User類中添加一個方法,完成用戶信息的添加。
最后考慮控制器:獲取信息;調用JavaBean;傳值;選擇界面響應。

2、添加用戶的界面

實際應用中的信息項比較多,并且需要對用戶輸入信息進行驗證。這里重點強調添加過程,所以對問題進行簡化。可以在登錄界面的基礎上修改,參考代碼如下:

%@ page contentType="text/html;charset=gb2312"%>
添加用戶br>
form name="form1" method="post" action="addUser">
  用戶ID:input type="text" name="username">br>
  口令:input type="password" name="userpass">br>
    input type="submit" value="添加">input type="reset" value="重置">
/form>
%@ include file="contact.jsp"%>

3、在User中增加方法

public boolean addUser()
{
   Connection con = null;
   Statement stmt = null;
   boolean b; // 表示添加成功與否
   try{
     // 指出連接數據庫所需要的驅動程序
     Class.forName("oracle.jdbc.driver.OracleDriver");
    // 建立與數據庫之間的連接
// 需要把myserver修改為自己的數據庫服務器的IP地址
// 把mydb修改成自己的數據庫)
    con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
    // 編寫查詢數據庫信息的SQL語句
    String sql="insert into usertable(username,userpass) values('"+username+"','"+userpass+"')";
    // 創建語句對象,用于執行SQL語句
    stmt = con.createStatement();
    // 執行沒有結果集返回的語句,返回的是影響數據庫表中記錄的個數
    int n = stmt.executeUpdate(sql);   
    if(n>0)
      b = true;
    else
      b = false;
   }catch(Exception e){
     b = false;
   }
   finally{
    // 關閉相關對象
    if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
    if(con!=null) try{ con.close(); }catch(Exception ee){}
   }   
   return b;
}

4、使用Servlet進行控制

參考代碼如下:

package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javabean.*;
import java.util.*;
public class AddUser extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response)
   throws IOException,ServletException
  {
   request.setCharacterEncoding("gb2312");
   // 第一步:獲取用戶的輸入信息
   String username = request.getParameter("username");
   String userpass = request.getParameter("userpass");
   // 第二步:調用JavaBean
   User user = new User();
   user.setUsername(username);
   user.setUserpass(userpass);
   boolean b = user.addUser();
   // 第三步:傳值
   String info;
   if(b)
     info="添加成功!";
   else
     info="添加失敗!";
   request.setAttribute("addinfo",info);
   // 第四步:選擇一個界面對用戶進行響應
   String forward="getAllUser";
   RequestDispatcher rd = request.getRequestDispatcher(forward);
   rd.forward(request,response);
  }
  public void doPost(HttpServletRequest request,HttpServletResponse response)
   throws IOException,ServletException
  {
   doGet(request,response);
  }
}

此處添加完成之后跳轉到userlist.jsp文件處理,但是在顯示之前需要獲取數據,所以需要先執行Servlet,所以專向了getAllUser控制器。

5、修改配置文件

  servlet>
   servlet-name>addUser/servlet-name>
   servlet-class>servlet.AddUser/servlet-class>
  /servlet>
  servlet-mapping>
   servlet-name>addUser/servlet-name>
   url-pattern>/addUser/url-pattern>
  /servlet-mapping>

6、在列表界面顯示提示信息

修改userlist.jsp代碼如下,紅色部分為增加的內容:

%@ page contentType="text/html;charset=gb2312"%>
%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
font color="red">
  ${addinfo}
/font>
br>
c:forEach var="user" items="${users}">
  用戶名:${user.username} 口令:${user.userpass} br>
/c:forEach>

7、運行測試

輸入正確的用戶名和口令測試;
輸出已經存在的用戶名進行測試。

8、 添加分頁顯示

經過不斷的添加,數據庫表中已經有大量的記錄。當記錄比較多的時候就應該進行分頁顯示。分頁顯示可以采用多種方式:

① 在SQL中進行控制,只查詢需要的記錄;
② 在遍歷結果集的時候,只封裝相關的記錄;
③ 在顯示的時候進行控制。

第一種方式對開發人員的SQL水平要求比較高,第三種方式傳遞的數據量比較大,所以我們介紹第二種。

要完成分頁顯示,需要做3個方面的修改:

① 界面上增加分頁顯示的超鏈接;
② 修改User.java,在遍歷結果集的時候進行控制,另外需要增加獲取頁碼數的方法;
③ 在控制器中傳遞需要的頁碼和總頁碼。

9、 在界面上增加分頁顯示功能

%@ page contentType="text/html;charset=gb2312"%>
%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
font color="red">
  ${addinfo}
/font>
br>
 a href="getAllUser?pageNo=1">第一頁/a>
 a href="getAllUser?pageNo=${pageNo-1}">上一頁/a>
 a href="getAllUser?pageNo=${pageNo+1}">下一頁/a>
 a href="getAllUser?pageNo=${pageCount}">最后一頁/a>
br>
c:forEach var="user" items="${users}">
  用戶名:${user.username} 口令:${user.userpass} br>
/c:forEach>

其中,pageNo表示當前頁碼,pageCount表示總頁數。

10、在User.java中增加獲取總頁碼的方法

public int getPageCount()
{
   Connection con = null;
   Statement stmt = null;
   ResultSet rs = null;
   try{
     // 指出連接數據庫所需要的驅動程序
     Class.forName("oracle.jdbc.driver.OracleDriver");
    // 建立與數據庫之間的連接
    con = DriverManager.getConnection("jdbc:oracle:thin:@myserver:1521:mydb","scott","tiger");
    // 編寫查詢數據庫信息的SQL語句
    String sql="select count(*) from usertable";
    // 創建語句對象,用于執行SQL語句
    stmt = con.createStatement();
    // 執行SQL語句得到結果集
    rs = stmt.executeQuery(sql);   
    rs.next();
    // 得到總的記錄數
    int number = rs.getInt(1);
    return (number-1)/10+1; 
   }catch(Exception e){
     return 0;
   }
   finally{
    // 關閉相關對象
    if(rs!=null) try{ rs.close(); }catch(Exception ee){}
    if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
    if(con!=null) try{ con.close(); }catch(Exception ee){}
   }   
}

11、增加按照頁碼獲取信息的方法

public ArrayList getUserByPage(int pageNo)
{
   int number=10;
   // 每一頁顯示的記錄數
   int begin = (pageNo * number) - 9;
   int end = pageNo * number;
   int index=1;
   Connection con = null;
   Statement stmt = null;
   ResultSet rs = null;
   ArrayList users = new ArrayList();
   try{
     // 指出連接數據庫所需要的驅動程序
     Class.forName("oracle.jdbc.driver.OracleDriver");
    // 建立與數據庫之間的連接
    con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.170:1521:fhdn","scott","tiger");
    // 編寫查詢數據庫信息的SQL語句
    String sql="select * from usertable";
    // 創建語句對象,用于執行SQL語句
    stmt = con.createStatement();
    // 執行SQL語句得到結果集
    rs = stmt.executeQuery(sql);   
    // 遍歷結果集
    while(rs.next())
    {
      // 在begin之前的記錄是不顯示的
      if(indexbegin){
        index++;
        continue;
      }
      // 在end之后的記錄也不顯示
      if(index>end)
        break;
      index++;
      String username = rs.getString(1);
      String userpass = rs.getString(2);
      // java.util.Date birthday = rs.getDate(3);
      // int age = rs.getInt(4);
      User user = new User();
      user.setUsername(username);
      user.setUserpass(userpass);
      users.add(user);
    }
   }catch(Exception e){
     System.out.println(e.getMessage());
   }
   finally{
    // 關閉相關對象
    if(rs!=null) try{ rs.close(); }catch(Exception ee){}
    if(stmt!=null) try{ stmt.close(); }catch(Exception ee){}
    if(con!=null) try{ con.close(); }catch(Exception ee){}
   }   
   return users;
}

12、修改控制器

package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javabean.*;
import java.util.*;
public class GetAllUser extends HttpServlet
{
  public void doGet(HttpServletRequest request,HttpServletResponse response)
   throws IOException,ServletException
  {
   // 第一步:獲取用戶的輸入信息
   String pageNo=request.getParameter("pageNo");
   int iPageNo=1;
   if(pageNo!=null)
   {
     iPageNo = Integer.parseInt(pageNo);
   }
   // 第二步:調用JavaBean
   User user = new User();
   ArrayList users=null;
   users = user.getUserByPage(iPageNo);
   int pageCount=user.getPageCount();
   // 第三步:傳值
   request.setAttribute("users",users);
   request.setAttribute("pageNo",new Integer(iPageNo));
   request.setAttribute("pageCounter",new Integer(pageCount));
   // 第四步:選擇一個界面對用戶進行響應
   String forward="userlist.jsp";
   RequestDispatcher rd = request.getRequestDispatcher(forward);
   rd.forward(request,response);
  }
  public void doPost(HttpServletRequest request,HttpServletResponse response)
   throws IOException,ServletException
  {
   doGet(request,response);
  }
}

13、之后再進行測試運行

14、增加對第一頁和最后一頁的控制

如果已經在第一頁,就不能再點擊第一頁或者首頁。如果已經在最后一頁,就不能再點擊最后一頁或者下一頁。修改userlist.jsp中代碼如下(部分代碼):

c:if test="${pageNo!=1}">
 a href="getAllUser?pageNo=1">第一頁/a>
 a href="getAllUser?pageNo=${pageNo-1}">上一頁/a>
/c:if>
c:if test="${pageNo!=pageCounter}">
 a href="getAllUser?pageNo=${pageNo+1}">下一頁/a>
 a href="getAllUser?pageNo=${pageCounter}">最后一頁/a>
/c:if>

這里設置為不顯示,也可以設置為不添加超鏈接。

15、增加對異常的處理

如果用戶按照這樣的方式訪問:http://127.0.0.1:8080/ch8/getAllUser?pageNo=aaa,將產生異常。因為頁碼不是數字,所以需要進行異常處理。修改:

復制代碼 代碼如下:
iPageNo = Integer.parseInt(pageNo);

為:
復制代碼 代碼如下:
try{ iPageNo = Integer.parseInt(pageNo); }catch(Exception e){}

希望本文所述對大家的JSP程序設計有所幫助。

您可能感興趣的文章:
  • JSP實現的簡單分頁示例
  • JSP+EXt2.0實現分頁的方法
  • jsp分頁顯示完整實例
  • JSP自定義分頁標簽TAG全過程
  • jsp分頁顯示的實現代碼
  • json實現jsp分頁實例介紹(附效果圖)
  • JSP分頁顯示的實例代碼
  • jsp讀取數據庫實現分頁技術簡析
  • 一個通用的jsp分頁PageBean
  • jsp hibernate的分頁代碼
  • 一個實用的JSP分頁代碼
  • JSP實現的簡單分頁顯示效果代碼

標簽:西藏 紅河 丹東 云浮 貴州 青島 江西 宿州

巨人網絡通訊聲明:本文標題《JSP實現添加功能和分頁顯示實例分析》,本文關鍵詞  JSP,實現,添加,功能和,分頁,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP實現添加功能和分頁顯示實例分析》相關的同類信息!
  • 本頁收集關于JSP實現添加功能和分頁顯示實例分析的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    91精品国产一区二区| 蜜桃一区二区三区在线观看| 国产成人午夜精品影院观看视频 | 精品在线视频一区| 欧美一级高清大全免费观看| 久久国产婷婷国产香蕉| 日韩欧美国产高清| 国产成人午夜精品影院观看视频 | 久久91精品国产91久久小草| 欧美三级电影在线看| 一区二区欧美精品| 欧美性xxxxx极品少妇| 日日夜夜一区二区| 精品国产乱码久久久久久免费| 久久国产精品99久久人人澡| 91精品午夜视频| 久久99精品久久只有精品| 欧美成人a视频| 久久99精品视频| 国产日韩一级二级三级| 丁香六月综合激情| av中文字幕一区| 亚洲免费视频中文字幕| 欧美日韩国产三级| 香蕉av福利精品导航| 日韩一区二区在线播放| 国产精品一二二区| 伊人婷婷欧美激情| 欧美三级蜜桃2在线观看| 国产在线国偷精品免费看| 久久久91精品国产一区二区精品| 欧美影片第一页| 激情丁香综合五月| 亚洲自拍另类综合| 精品国产91久久久久久久妲己| 婷婷久久综合九色综合绿巨人| 678五月天丁香亚洲综合网| 丁香婷婷综合网| 日本成人在线不卡视频| 最新久久zyz资源站| 欧美大胆人体bbbb| 777色狠狠一区二区三区| 91在线观看下载| 成人av资源下载| 国内精品不卡在线| 麻豆国产精品一区二区三区 | 亚洲欧美区自拍先锋| 精品91自产拍在线观看一区| 7777精品伊人久久久大香线蕉完整版 | 在线这里只有精品| av在线免费不卡| 高清av一区二区| 国产福利精品导航| 日本在线播放一区二区三区| 久久99精品一区二区三区| 国产成人精品三级麻豆| 欧美亚洲丝袜传媒另类| 日韩欧美一级在线播放| 婷婷激情综合网| 99精品久久只有精品| 宅男噜噜噜66一区二区66| 99久久er热在这里只有精品15| 国产精品一卡二| 国产精品99久久久久久似苏梦涵 | 91精品在线免费观看| 日韩一区二区三区在线| 精品第一国产综合精品aⅴ| 日韩女优av电影| 国产精品国产三级国产普通话蜜臀| 中文字幕在线播放不卡一区| 视频一区欧美日韩| 成人久久18免费网站麻豆| 欧美性猛交一区二区三区精品| 91精品欧美综合在线观看最新| 精品99999| 亚洲一区二区三区精品在线| 国产做a爰片久久毛片| 懂色av中文字幕一区二区三区| 欧美三级三级三级爽爽爽| 久久精品在线观看| 蜜臀av性久久久久蜜臀av麻豆| 成人永久看片免费视频天堂| 久久久五月婷婷| 亚洲成人777| 看电影不卡的网站| 久久99国产乱子伦精品免费| 精品一区二区三区日韩| 日韩中文字幕麻豆| 日本不卡一区二区| 懂色av一区二区三区蜜臀| 香蕉成人伊视频在线观看| 国产一区二区在线电影| 欧美日韩国产天堂| 樱桃视频在线观看一区| 国产传媒一区在线| 精品国产麻豆免费人成网站| 1000精品久久久久久久久| 国内精品在线播放| 久久午夜色播影院免费高清| 免费成人深夜小野草| 在线观看一区不卡| 亚洲欧洲中文日韩久久av乱码| 成人深夜在线观看| 国产精品久久久久四虎| 粉嫩久久99精品久久久久久夜| 久久精品人人爽人人爽| 狠狠色狠狠色合久久伊人| 精品福利一二区| 国产成人日日夜夜| 综合久久给合久久狠狠狠97色| 成人免费看的视频| 亚洲品质自拍视频| 91精品视频网| 成人三级伦理片| 一区二区三区四区在线播放 | 国产99久久久国产精品免费看| 国产色产综合色产在线视频 | 久久成人免费网| 欧美大片一区二区三区| 国产精品影音先锋| 亚洲女与黑人做爰| 久久亚洲一区二区三区明星换脸 | 欧美日韩视频在线观看一区二区三区| 午夜精品福利一区二区蜜股av | 精品久久久久99| 欧美亚洲图片小说| 奇米色一区二区三区四区| 欧美极品xxx| 欧美变态凌虐bdsm| 欧美影院一区二区三区| 久久99精品国产91久久来源| 亚洲免费在线播放| 欧美极品另类videosde| 欧美白人最猛性xxxxx69交| 丰满少妇久久久久久久| 免费在线观看视频一区| 亚洲激情综合网| 国产精品久久久久影视| 国产午夜精品久久| 777色狠狠一区二区三区| 99久久久国产精品| 国产99一区视频免费| 国产盗摄精品一区二区三区在线| 看电影不卡的网站| 91亚洲国产成人精品一区二三| 亚洲一二三区不卡| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲另类在线制服丝袜| 五月天亚洲精品| 精品在线播放午夜| 成人黄色综合网站| 色欧美88888久久久久久影院| 欧美丝袜丝nylons| 制服.丝袜.亚洲.中文.综合| 中文字幕精品一区| 日本成人在线网站| 一道本成人在线| 国产精品热久久久久夜色精品三区| 日本成人在线一区| 日本二三区不卡| 欧美成人a∨高清免费观看| 久久久精品免费观看| 欧美二区三区的天堂| 欧美精品一卡二卡| 91污在线观看| 欧美在线看片a免费观看| 99精品久久99久久久久| 免费观看日韩av| 精品一区二区三区在线播放 | 欧美午夜免费电影| 欧美另类高清zo欧美| 另类欧美日韩国产在线| 国产夜色精品一区二区av| av在线一区二区| 丝袜诱惑亚洲看片| 中文文精品字幕一区二区| 91久久线看在观草草青青| 麻豆91在线观看| 亚洲欧美怡红院| 日韩精品一区二区三区中文不卡 | 26uuu成人网一区二区三区| 91精选在线观看| 久久网这里都是精品| 亚洲国产精品v| 美日韩一区二区| 国产高清不卡二三区| 色综合天天综合网天天狠天天| 91在线精品一区二区| 欧美特级限制片免费在线观看| 欧美色涩在线第一页| 久久综合九色综合欧美98| 国产精品久久久久久久久搜平片| 一区二区三区四区亚洲| 亚洲国产成人高清精品| 国产一区二区三区免费看| av亚洲精华国产精华精华 | 国产日韩欧美a| 久久精品av麻豆的观看方式| 国产成人在线视频网站| 久久人人超碰精品|