day_6 在sevlet网页程序中显示图片、数据库表格,居中排版,分页算法以及上一页下一页
2014-04-13 20:14
435 查看
在之前编写的servlet文件下进行改进:
成果图如下:
注:在数据库中自我复制自身表格的语句为insert into 表命(列名1,列名2,列名3,列名4...) select 列名1,列名2,列名3,列名4 from 表名
//登录界面的servlet package test1; import java.io.*; import javax.servlet.http.*; public class Login extends HttpServlet{ public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); } public void doGet(HttpServletRequest req,HttpServletResponse res){ //res:页面向控制台回应,页面发出信息。req:控制台向页面要求,控制台接收页面信息。 try { res.setContentType("text/html;charset=gbk");//中文防止乱码 PrintWriter pw = res.getWriter(); pw.println("<html>");//html文件体 pw.println("<body><center>");//body体,让html文字在网页中间显示 pw.println("<hr />");//分割线 pw.println("<h1>登陆界面<h1>"); pw.println("<form action = logincl method=post>");//该段组件体和logincl体进行关联 pw.println("用户名:<input type = text name = username><br />");//用户名组件体 pw.println("密码:<input type = password name = passwd><br />");//密码组件体 pw.println("<input type = submit value = '登录'><br />"); pw.println("<hr />"); pw.println("<form>"); //得到error信息 String info = (String)req.getParameter("info"); if(info.equals("error1") ) { pw.println("<h/>您的名或密码输入错误<h/>"); } if(info.equals("error2") ) { pw.println("<h/>您的cookie超时请重新登录<h/>"); } pw.println("</center></body>");//body体,让html文字在网页中间显示 pw.println("</html>");//html文件体 } catch(Exception ex) { ex.printStackTrace(); } } } //登录控制文件的servlet package test1; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class LoginCl extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){ this.doPost(req,res); } public void doPost(HttpServletRequest req,HttpServletResponse res){ Connection ct = null; ResultSet rs = null; Statement sm = null; try{ //服务器接收login页面发来的用户名和密码,要用到req。 String u = req.getParameter("username");//此处填写组件名 String p = req.getParameter("passwd");//此处填写组件名 //连接到数据库 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //得到链接 ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=rvdb","sa","2887005"); //创建Statrment sm=ct.createStatement(); rs=sm.executeQuery("select top 1 passwd from users where username ='"+u+"'"); if(rs.next()) { //说明用户是存在的 String dbPasswd=rs.getString(1); if(dbPasswd.equals(p))//密码和数据库中的一致 { HttpSession hs = req.getSession(true); //得到和req相关联的session,如果没有就创建session hs.setMaxInactiveInterval(20); //hs.setAttribute("pass","ok"); hs.setAttribute("pass",u); //连接登录后的欢迎界面 //sendRedirect的作用是跳转界面 res.sendRedirect("wel?username="+u+"&passwd="+p);//该处填写域名 } else res.sendRedirect("login?info=error1"); } else { //说明连用户名都没有输对,跳转 res.sendRedirect("login?info=error1"); } } catch(Exception ex){ ex.printStackTrace(); } finally { try { if(rs!=null) { rs.close(); } if(sm!=null) { sm.close(); } if(ct!=null) { ct.close(); } } catch (Exception ex) { ex.printStackTrace(); } } } } //登入后界面 package test1; import javax.servlet.http.*; import java.io.*; import java.sql.*; public class Wel extends HttpServlet{ public void doGet(HttpServletRequest req,HttpServletResponse res){ this.doPost(req,res); } public void doPost(HttpServletRequest req,HttpServletResponse res){ //打开操作数据库必要的变量 Connection ct = null; ResultSet rs = null; PreparedStatement ps = null; Statement sm = null; try{ //得到session res.setContentType("text/html;charset=gbk");//中文防止乱码 PrintWriter pw = res.getWriter(); HttpSession hs = req.getSession(true); String valu = (String)hs.getAttribute("pass");//得到键值取对值(用户名) String u = req.getParameter("username"); String p = req.getParameter("passwd"); if(valu == null) { res.sendRedirect("login?info=error2"); return ; } else { //在sevlet中显示图片 pw.println("<body><center>");//body体,让html文字在网页中间显示 pw.println("<img src=imgs/welcome.gif><br />");//在tomcat/webapps/自己的网页文件夹 创立imgs文件夹,放入图片然后在html语句中插入图片路径即可 pw.println("<h1>欢迎光临!用户"+valu+"</h1><br />"); //pw.println("<p>您的密码是"+p+"</p><br />"); pw.println("<a href='http://localhost:8080/RevenWebsite/login'>返回重新登录</a><br />"); pw.println("<a href='http://www.baidu.com'>不懂?百度一下!</a><br />"); //==================分页功能==============// int pageSize = 3; //一页显示3条记录 int pageNow = 1;//当前显示页数 int rowCount = 0;//一共有几条记录(查表) int pageCount = 0;//一共有几页 int pageSize2 = 5; //动态地接受pageNow String sPageNow = req.getParameter("pageNow"); if(sPageNow != null) { pageNow = Integer.parseInt(sPageNow); } //得到rowCount //操作数据库 //连接到数据库 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //得到链接 ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=rvdb","sa","2887005"); ps = ct.prepareStatement("select count(*) from users"); rs = ps.executeQuery();//得到结果集的方法 if(rs.next()) { rowCount = rs.getInt(1); } //计算pageCount if(rowCount % pageSize == 0) { pageCount = rowCount/pageSize; } else { pageCount = rowCount/pageSize+1; } ps = ct.prepareStatement("select top "+pageSize+" * from users where userId not in (select top "+pageSize*(pageNow-1)+" userId from users)"); rs = ps.executeQuery(); //表格 pw.println("<table border = 1"); pw.println("<tr><th>id</th><th>账户名</th><th>密码</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("<td>"+rs.getString(4)+"</td>"); pw.println("<td>"+rs.getInt(5)+"</td>"); pw.println("</tr>"); } pw.println("</table>"); //显示超链接 //显示上一页 if(pageNow!=1) pw.println("<a href=wel?pageNow="+(pageNow-pageSize2)+">上一页</a>"); for(int i = pageNow;i <= pageNow+pageSize2-1;i++) { pw.println("<a href=wel?pageNow="+i+">"+i+"</a>"); } //显示下一页 if(pageNow!=pageCount) pw.println("<a href=wel?pageNow="+(pageNow+pageSize2)+">下一页</a>"); } pw.println("</center></body>");//body体,让html文字在网页中间显示 } catch(Exception ex){ ex.printStackTrace(); } } }
成果图如下:
注:在数据库中自我复制自身表格的语句为insert into 表命(列名1,列名2,列名3,列名4...) select 列名1,列名2,列名3,列名4 from 表名
相关文章推荐
- Latex 表格图片公式跨双栏显示并使标题居中以及表格图片注释技巧
- 用JSP从数据库中读取图片并显示在网页上
- 从数据库获取流文件,网页显示图片的方法~~
- C#打开WORD文档内容并显示(未完善表格图片等排版显示的处理)
- 关于使用了QtWebKit的PyQt程序打包后无法显示网页图片的问题(Mac0S和windows)
- 在JSP程序中我用新图片替换掉了原图片(名字,格式相同),为什么打开网页显示的还是以前的图片呢
- C#打开WORD文档内容并显示(未完善表格图片等排版显示的处理)
- Android在TextView中显示html标签以及异步加载网页图片
- Asp.net中图片存储数据库以及页面读取显示通用方法详解
- 关于Qt显示Jpg图片程序的移植和数据库的setfilter函数的问题
- php上传图片到数据库与网页无法显示的问题
- C#后台制作之数据库(二、如何清除显示以及将数据库数据导出到excel表格文件中)
- [转帖]如何将一张图片写入数据库SQL,并能正确在C#网页中显示
- web中,如何读取Word内容(包含表格,但不包含图片)并且显示在页面中或保存进数据库中
- 在html页面用ajax的简单应用通过javascript得到数据库中的图片路径并在表格中显示出来
- 图片根据数据库的时间(开始时间与结束时间)与本地时间相比,在网页上显示。
- 图片的base64编码实现以及网页上显示
- Asp.net中图片存储数据库以及页面读取显示通用方法详解
- 郁闷了半天,原来是这个问题:关于C#中关于图片保存到数据库以及将数据库中的图片显示到PictureBox。
- 用JSP从数据库中读取图片并显示在网页上