servelt的分页显示数据

做晚看了一篇文章

是专门讲html的历史和前景的 这里我意思到 数据更新很快 时代的更新日异 必须要加快自己的进步 一点是不够的

我写博客的意义就是我自己的入门 从最简单的开始 还有就是编程一法通 万法通

 

接下来就是要分页显示数据的操作了 后面要把业务逻辑改变就可以了

现在代码就是都写到一起了 以便理解 我的命名有些不正规 大家别学我

Login还是不变

LoginC 中代码

response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("gbk");

PringtWriter pw=response.getWriter();

Connection con=null;

Statement stmt=null;

ResultSet rs=null;

//三个对数据库信息的操作和保存

也可以不用try 但是这个可以方便你找到错误的地方

try{

String  name=requset.getParameter("username");

String  pwd=requset.getParameter("password");

Class.forNmae("com.mysql.jdbc.Driver").newInstance();

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstor","root", "");

stmt=con.createStatement();

String sql="select password from user where username="+"'"+name+"'";

rs=stmt.executeQuery(sql);//信息保存到记录集

pw.println("你的输入有误哦");

if(rs.next()){//这是记录指针下移

   String dbpwd=rs.getString(1);//这里只能等于1

  if(dbpwd.equals(pwd)){
  //用户密码也正确,将用户信息存入session

  HttpSession hs=request.getSession(true);  

  hs.setMaxInactiveInterval(20);

  hs.setAttribute("pass","");

  

  reponse.sendRedirect("Wel?uname="+java.net.URLEncoder.encode(name,"gbk"));

  

}else{

response.sendRedirect("One");

}

 

 

Wel中

只需要在我原来的基础上加

Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;

 

String name=request.getParameter("uname");

改为

String name=new String(request.getParment("uname")).getBytes("ISO8859_1"),"GBK");

这里是要显示的行业等 这里也是写死的 

int pageSize=3;//显示的多少行

int pageNow=2;//这是显示页数的第几页

int zh=0;总行数

int zy=0;总页数

 

Class.forName("com.mysql.jdbc.Driver").newInstance();

con=DriverManager.getConnection("jdbc:mysql://localhost:3306/bookstore", "root", "");

ps = con.prepareStatement("select count(*) from user");
rs = ps.executeQuery();

 

//这里设计到了一丁点的算法

if(rs.next()){

  zh=rs.getInt(1);

}

if(zh%pageSize==0){

zy=zh/pageSize;

}else{

zy=zh/pageSize+1;

}

//动态接受pageNow的值

String page=request.getParameter("pageSelected");

if(page!=null){

pageNow=Integer.parseInt(page);

}

ps = con.prepareStatement("select * from user limit " + pageSize
* (pageNow - 1) + "," + pageSize);

rs = ps.executeQuery();
pw.println("<html><body>");

pw.println(name + "恭喜你小伙子 --我也可以没有的哦");

 

pw.println("<table width=50% border=1>");
pw.println("<tr><th>用户ID</th><th>用户名</th><th>密码</th></tr>");
while (rs.next()) {
pw.println("<tr>");
pw.println("<td>" + rs.getInt(1) + "</td>");
pw.println("<td>" + rs.getString(2) + "</td>");
pw.println("<td>" + rs.getString(3) + "</td>");
pw.println("</tr>");
}
pw.println("</table>");

 

//建立多页超链接,因显示位置在表格下方,故代码写在该位置

//pageSelected传递的值用在动态接受pageNow的值

for(int i=1;i>zy;i++){

pw.println("<a href=Wel?uname=" + name + "&pageSelected=" + i

+ ">" + i + "</a>");

}

pw.println("</body></html>");

} catch (Exception e) {
e.printStackTrace();

}

 

即可分页显示数据 这是我自己调式可以跑出来 我才发表的 水平有点低 大神请见谅!

后面就是登录页面用jsp的代码写 到时候我会直接将代码分离和jsp一起写吧

此敬!

 

posted @ 2017-04-13 22:59  在于自己做斗争  阅读(179)  评论(0编辑  收藏  举报