前台登陆页面:
/**
* AWT Sample application
*
* @author
* @version 1.00 12/10/21
*/
/**
* AWT Sample application
*
* @author
* @version 1.00 12/10/21
*/
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
public class Hello extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res){
try
{
res.setCharacterEncoding("GBK");
PrintWriter pw=res.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>test</title>");
pw.println("</head>");
pw.println("<body>");
pw.println("<form action=logincookie method=post>");
pw.println("<h1>user+password</h1>");
pw.println("<input type=text name=username /><br>");
pw.println("<input type=text name=password />");
pw.println("<br>");
pw.println("<input type=checkbox name=keep value=2/>2周内不再重复登陆<br>");
pw.println("<input type=submit value=登录 />");
pw.println("</form>");
pw.println("</body>");
pw.println("</html>");
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res){
this.doGet(req,res);
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
中间处理页面:
/**
* AWT Sample application
*
* @author 徐研
* @version 1.00 12/10/21
*/
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Logincookie extends HttpServlet{
//req用于向浏览器请求信息
//res用于向浏览器返回信息
public void doGet(HttpServletRequest req,HttpServletResponse res) {
res.setCharacterEncoding("gbk");
try
{
String username=req.getParameter("username");
String mima=req.getParameter("password");
String keep=req.getParameter("keep");//获取checkbox是否被选中
if(username.equals("admin")&&mima.equals("admin")) //密码相符
{
if(keep!=null){
Cookie name=new Cookie("name",username);
Cookie pswd=new Cookie("pswd",mima);
name.setMaxAge(7*24*3600);
res.addCookie(name); //回写到客户端
pswd.setMaxAge(7*24*3600);
res.addCookie(pswd);
res.sendRedirect("show?posturl="+username);
}
}
else
{
res.sendRedirect("xuyan"); //用户名不存在
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res) {
this.doGet(req,res);
}
}
上面代码为 服务器端制造Cookie 然后 回写带客户端。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Cookie读取页面:
/**
* AWT Sample application
*
* @author 徐研
* @version 1.00 12/10/21
*/
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Cookieread extends HttpServlet{
//req用于向浏览器请求信息
//res用于向浏览器返回信息
String username;//登陆框用户名
String password;//登陆框密码
public void doGet(HttpServletRequest req,HttpServletResponse res) {
try
{
res.setCharacterEncoding("gbk");
PrintWriter pw=res.getWriter();
//从客户端得到所有cookie
Cookie [] allcookies=req.getCookies();
int i=0;//定义标识
if(allcookies!=null)
{
for(i=0;i<allcookies.length;i++)
{
//依次遍历
Cookie temp=allcookies[i];
if(temp.getName().equals("name"))
{
username=temp.getValue();//得到cookie的值 用户名
}
else if(temp.getName().equals("pswd"))
{
password=temp.getValue();
}
}
if(username!=null&&password!=null)
{
res.sendRedirect("Logincookie?username="+username+"&mima="+password);
return;
}
}else
{
res.sendRedirect("xuyan"); //cookie不存在
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res) {
this.doGet(req,res);
}
}
代码主要意思: 依次遍历Cookie 找到所选Cookie 读取用户名 密码 并发送给 登陆页面
其中
//发送页面用户名密码
res.sendRedirect("Logincookie?username="+username+"&mima="+password);
相当于点击登录按钮事件
//发送页面用户名密码
res.sendRedirect("Logincookie?username="+username+"&mima="+password);//发送页面用户名密码
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
登陆成功后跳转页面:
package com.xuyan;
import javax.servlet.http.*;
import java.io.*;
import java.sql.*;
public class Datashow extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res) {
String username=req.getParameter("posturl");
Connection con=null;
Statement sm=null;
ResultSet rs=null;
int pageSize=3;//每页显示多少记录
int pageNow=1;//当前显示第几页
int pageCount=0;//共有多少页
int rowCount=0;//共有多少条记录
//设置中文字体
res.setCharacterEncoding("gbk");
String getPageNow=req.getParameter("spageNow");
if(getPageNow!=null)
{
pageNow=Integer.parseInt(getPageNow);
}
try
{
PrintWriter pw=res.getWriter();
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");//加载驱动
con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=StudentInfo","sa","1234");
sm=con.createStatement();
rs=sm.executeQuery("select count(*) from student");//查询共有多少记录
if(rs.next()) //此处说明有记录
{
rowCount=rs.getInt(1);
if(rowCount%pageSize==0)
{
pageCount=rowCount/pageSize;
}
else
{
pageCount=rowCount/pageSize+1; //int类型 会转化为整数
}
pw.println("<body><center>");
pw.println("欢迎 :"+username+" 进入");
pw.println("<br>");
pw.println("<br>");
pw.println("共有记录数 :" + rowCount);
pw.println("共有页码数:" +pageCount);
//查询
rs=sm.executeQuery("select top "+pageSize+"* from student where ID not in(select top "+pageSize*(pageNow-1)+" ID from student)");
pw.println("<table border=2>");
pw.println("<tr><th>Id</th><th>Name</th><th>Genger</th><th>Age</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.getString(5)+"</td>");
pw.println("</tr>");
}
}
else
{
pw.println("NotFoundSQL");
}
pw.println("</table >");
for(int i=1;i<=pageCount;i++){
pw.println("<a href=show?spageNow="+i+">"+i+"</a>");
}
if((pageNow-1)>0)
{
pw.println("<a href=show?spageNow="+(pageNow-1)+">上一页</a>");
}
if((pageNow)<pageCount)
{
pw.println("<a href=show?spageNow="+(pageNow+1)+">下一页</a>");
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
finally
{
try{
if(rs!=null)
{ rs.close();
}
if(sm!=null){
sm.close();
}
if(con!=null){
con.close();
}
}
catch(SQLException eexx)
{
eexx.printStackTrace();
}
}
}
public void doPost(HttpServletRequest req,HttpServletResponse res) {
this.doGet(req,res);
}
}