day_6 在sevlet网页程序中显示图片、数据库表格,居中排版,分页算法以及上一页下一页
来源:互联网 发布:猜数游戏java编程界面 编辑:程序博客网 时间:2024/04/30 01:40
在之前编写的servlet文件下进行改进:
//登录界面的servletpackage 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();}}}//登录控制文件的servletpackage 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,如果没有就创建sessionhs.setMaxInactiveInterval(20);//hs.setAttribute("pass","ok");hs.setAttribute("pass",u);//连接登录后的欢迎界面 //sendRedirect的作用是跳转界面 res.sendRedirect("wel?username="+u+"&passwd="+p);//该处填写域名}elseres.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{//得到sessionres.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;//动态地接受pageNowString 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 表名
0 0
- day_6 在sevlet网页程序中显示图片、数据库表格,居中排版,分页算法以及上一页下一页
- 万能分页显示上一页下一页
- sqlserver上一页,下一页以及高效分页查询语句
- 分页(上一页,下一页)
- dede 分页 上一页 下一页
- servlet+mysql分页(上一页,下一页)
- asp.net显示第一页、上一页、下一页和最后一页的分页显示数据表的数据
- 点击上、下一页显示图片
- 分页实现-----首页、上一页、下一页、最后一页
- 关于MVC中使用JqGrid插件分页时无法显示分页按钮(首页、上一页、下一页、最后一页)的原因
- Shop项目--4. 分页显示商品的,与分页跳转,上一页,下一页product_list.jsp
- 安卓分页显示数据(上一页和下一页)
- 简单分页(只有第一页、上一页、下一页、末一页)
- 使用分页模板完成,显示上一页,下一页,第一页,最后一页,和当前第x页,共y页 。
- java实现的分页方法(上一页下一页)
- php mysql 上一页 下一页 分页代码片段
- js上一页/下一页真分页的页码生成
- dedecms分页样式修改 内容页 上一页 下一页
- 关于Tomcat安装的一些问题
- c++ hash_map 详细介绍
- 目前关于排序的理解
- HDU Assignment(KM变形好题!!!!)
- CVPR 2013 录用论文(目标跟踪部分)
- day_6 在sevlet网页程序中显示图片、数据库表格,居中排版,分页算法以及上一页下一页
- netbeans8.0 中文乱码问题
- javascript学习之随机数
- windows下安装python模块
- MySQL存储过程编写
- 大足石刻千手观音主尊像开始修复
- hark others by kalilinux
- 前端miniui学习(4.13)
- 世界之大,无不分层