Welcome.java

//登录界面
package com.tsinghua; import javax.servlet.http.*;
import java.io.*;
import java.sql.*; public class Welcome extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
{ //业务逻辑
Connection ct = null;
PreparedStatement ps = null;
ResultSet rs = null; try{ //从Session中得到用户名
HttpSession hs = req.getSession(true);
String myName = (String)hs.getAttribute("uname"); if(myName == null)
{
//返回登录界面
res.sendRedirect("login?info=error1");
return; }
//解决中文乱码
res.setCharacterEncoding("gbk");
PrintWriter pw = res.getWriter();
pw.println("<html>");
pw.println("<body><center>");
//在Servlet中显示图片
pw.println("<img src='./imgs/1.GIF' /><br/>"); pw.println("wel,hello");
pw.println("你的用户名是,"+myName);
pw.println("<br><a href=login>返回重新登录</a>"); //==========================分页的功能=====================
int pageSize = 3;//一页显示几条记录
int pageNow = 1;//希望显示第几页
int rowCount = 0;//共有几条记录(查表)
int pageCount = 0;//共有几页(计算出来的) //动态的接收pageNow
String sPageNow = req.getParameter("pageNow");
//用户第一次进入welcome页面,此时spageNow为null,所以不需要去改动pageNow,因为pageNow此时的值默认为1
if(sPageNow != null)
{
pageNow = Integer.parseInt(sPageNow);
} //得到rowCount
//1加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//得到连接
ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb","sa","123456");
//创建一个Statement
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 ? * from users where userId not in (select top ? userId from users)");
//给问号?赋值,preparedStatement会自动的将问号转换成相应的数据类型
//setInt方法第一个Int表示是第几个问号,第二个int表示给问号赋的具体的值
ps.setInt(1,pageSize);
ps.setInt(2,pageSize*(pageNow-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>name</th><th>password</th><th>email</th><th>grade</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-1)+">上一页</a>");
} for(int i = pageNow; i <= pageNow+4; i++)
{
pw.println("<a href=wel?pageNow="+i+">"+i+"</a>");
}
if(pageNow < pageCount)
{
pw.println("<a href=wel?pageNow="+(pageNow+1)+">下一页</a>");
} pw.println("</center></body>");
pw.println("</html>"); }
catch(Exception ex)
{
ex.printStackTrace();
} } //处理get请求
//req用于获得客户端(浏览器)的信息
//res用于向 客户端(浏览器)返回信息
public void doPost(HttpServletRequest req, HttpServletResponse res)
{ this.doGet(req,res); } }

LoginCl.java

//登录界面
package com.tsinghua; import javax.servlet.http.*;
import java.io.*;
import java.sql.*; public class LoginCl extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
{ Connection ct = null;
Statement sm = null;
ResultSet rs = null; //业务逻辑
try{ //接收用户名和密码
String u = req.getParameter("username");
String p = req.getParameter("userpwd"); //连接数据库,三部曲,加载驱动,建立连接
//1加载驱动包
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//得到连接
ct = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=spdb","sa","123456");
//创建一个Statement
sm = ct.createStatement();
//top 1 会提高查询的效率,否则数据库查询完所有再把结果告诉你 rs = sm.executeQuery("select top 1 passwd from users where userName='"+u+"'");
//executeQuery返回的是一个ResultSet执行查询select语句用Query
//executeUpdate返回的是int,因此是执行增加删除和修改
if(rs.next())
{ //这说明用户是存在的
String dbPasswd = rs.getString(1); if(dbPasswd.equals(p))
{
//真的合法
//合法
//将验证成功的信息写入session
//得到session,得到session那张表
HttpSession hs = req.getSession(true);
//默认30分钟,为了展示效果下面修改销毁时间
//该方法是按照秒来算的
hs.setMaxInactiveInterval(30); //写入属性
hs.setAttribute("uname",u); //跳转到welcome
res.sendRedirect("wel?uname="+u); }
}else{
//说明用户名不存在
//不合法
//写你要到的Servlet的那个URL
res.sendRedirect("login"); } }
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();
} } } //处理get请求
//req用于获得客户端(浏览器)的信息
//res用于向 客户端(浏览器)返回信息
public void doPost(HttpServletRequest req, HttpServletResponse res)
{ this.doGet(req,res); } }

Login.java

//登录界面
package com.tsinghua; import javax.servlet.http.*;
import java.io.*; public class Login extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
{ //业务逻辑
try{
//中文乱码
//浏览器默认ISO-8859
res.setContentType("text/html;charset=gbk"); PrintWriter pw = res.getWriter(); //返回登录界面
pw.println("<html>");
pw.println("<body>");
//得到error信息
String info = req.getParameter("info");
if(info != null)
{
pw.println("<h1>你的用户名或是密码错误!</h1>");
}
pw.println("<h1>登录界面</h1>");
pw.println("<form action='loginCl' method=post>");
pw.println("用户名<input type='text' name='username'/><br/>");
pw.println("密码<input type='password' name='userpwd'/><br/>");
pw.println("<input type='submit' value='loing' /><br/>");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>"); }
catch(Exception ex)
{
ex.printStackTrace();
} } //处理get请求
//req用于获得客户端(浏览器)的信息
//res用于向 客户端(浏览器)返回信息
public void doPost(HttpServletRequest req, HttpServletResponse res)
{ this.doGet(req,res); } }

迅速生成海量数据

insert into users (userName,passwd,email,grade) select userName,passwd,email,grade from users

Servlet课程0426(八)Servlet分页技术的更多相关文章

  1. Servlet课程0426(十二)Servlet MV模式下用户登录及查看用户表中所有用户

    Welcome.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java ...

  2. Servlet课程0426(十一)Servlet Cookie实现两周内不用重复登录

    Welcome.java //登录界面 package com.tsinghua; import javax.servlet.http.*; import java.io.*; import java ...

  3. Servlet课程0426(十)Servlet如何删除cookie

    //如何删除Cookie案例 package com.tsinghua; import javax.servlet.http.*; import java.io.*; public class Coo ...

  4. Servlet课程0426(九)Servlet服务器端创建Cookie和客户端读取Cookie

    服务器端创建Cookie: Win7默认Cookie位置 C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies Cookie ...

  5. Servlet分页技术

    这是看韩顺平老师的servlet视频,自己动手写的,楼主看韩顺平老师的servlet是2006制作的,用的是sql server数据库,自己又用的是oracle数据库,所以怕有的同学遇到同样的问题,不 ...

  6. Javaweb 第7天 Servlet课程

    Servlet课程 三日大纲 ● 网络概念,专业术语 ● Tomcat使用,发布网站,使用Myeclispe发布网站(搭建环境) ● 编写Servlet,Servlet生命周期 ● 用户注册,显示所有 ...

  7. Web---演示Servlet的相关类、下载技术、线程问题、自定义404页面

    Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代表用户的 ...

  8. Servlet的学习之Filter过滤器技术(1)

    本篇将讲诉Servlet中一项非常重要的技术,Filter过滤器技术.通过过滤器,可以对来自客户端的请求进行拦截,进行预处理或者对最终响应给客户端的数据进行处理后再输出. 要想使用Filter过滤器, ...

  9. jsp+servlet实现模糊查询和分页效果

    ---恢复内容开始--- 1.DAO+MVC包 2.DAO接口方法定义 package com.wanczy.dao; import java.math.BigDecimal;import java. ...

随机推荐

  1. 操作Excel导入的问题(转)

    当Excel导入成为需要时,之前的导出Excel为html方式的方法就受阻了,于是,需要开始新的百度与google来解决问题. 前提为OLEDB+Excel. 根据需求,多数是对于表的数据的导入.于是 ...

  2. 【转载】应广大群众的要求,今天开始连载《超容易的Linux系统管理入门书》一书

    学习Linux容易嘛?我说超容易,你肯定不信.那学习Linux最好的学习方法是什么,就是脑子里面一直提问题,不停的提,时时刻刻提,如果你没有问题,那再容易的学习书你也看不懂. <超容易的Linu ...

  3. [java学习笔记]java语言基础概述之函数的定义和使用&函数传值问题

    1.函数 1.什么是函数? 定义在类中的具有特定功能的一段独立小程序. 函数也叫做方法 2.函数的格式 修饰符   返回值类型    函数名(参数类型  形式参数1, 参数类型  形式参数2-) { ...

  4. javascript dom追加内容的例子

    javascript dom追加内容的使用还是比较广泛的,在本文将为大家介绍下具体的使用方法. 例子: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  5. php版获取重定向后地址的代码分享

    如何获取重定向的地址呢?我们用php实现这样的功能,分享下我的代码,有需要的朋友参考下. 代码如下: <?php //取重定向的地址 class RedirectUrl{ //地址 var $u ...

  6. GridView分页排序

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="GridviewPage.asp ...

  7. Spark Streaming揭秘 Day8 RDD生命周期研究

    Spark Streaming揭秘 Day8 RDD生命周期研究 今天让我们进一步深入SparkStreaming中RDD的运行机制.从完整的生命周期角度来说,有三个问题是需要解决的: RDD到底是怎 ...

  8. NFS网络文件共享服务

    NFS-网络文件系统,它的主要功能是通过网络让不同的主机系统之间可以彼此共享文件或目录. NFS在企业中得应用场景 在企业集群架构的工作场景中,NFS网络文件系统一般被用来存储共享视频.图片.附件等静 ...

  9. Python print语句

    1. 输出字符串 >>> strHello = 'Hello World' >>> print (strHello) Hello World 2. 格式化输出整数 ...

  10. 【css】web标准

    网页主要由三部分组成:结构(Structure).表现(Presentation)和行为(Behavior) 结构重点理解: XHTML 1.应用形式 ccs+div  2000 2.基于xml 和x ...