JSP(5):cookie技术
来源:互联网 发布:电脑设置闹钟软件 编辑:程序博客网 时间:2024/06/16 03:20
1、cookie有点像一张表,分两列,一个是名字,一个是值,数据类型都是String
2、如何创建一个Cookie(在服务端创建的)
Cookie c=new Cookie(String name,String val);
3、如何将一个Cookie添加到客户端
response.addCookie(c);
4、如何读取Cookie(从客户端读到服务器)
request.getCookie();
//创建Cookiepackage com.tsinghua; import java.io.*;import javax.servlet.http.*;public class CookieTest1 extends HttpServlet{public void doPost(HttpServletRequest req,HttpServletResponse res){this.doGet(req,res);}public void doGet(HttpServletRequest req,HttpServletResponse res){try{res.setContentType("text/html;charset=gbk");//中文防止乱码PrintWriter pw = res.getWriter();//当用户访问该servlet时,就将信息创建到该用户的Cookie中//1、现在服务器端创建一个Cookie Cookie myCookie=new Cookie("color1","red"); //2、该Cookie存在的时间 myCookie.setMaxAge(30); //如果你不设轩存在时间,那么该Cookie将不会保存 //3、将该Cookie写回到客户端 res.addCookie(myCookie); pw.println("已经创建了Cookie");}catch(Exception ex){ex.printStackTrace();}}}
//如何读取Cookiepackage com.tsinghua; import java.io.*;import javax.servlet.http.*;public class CookieTest2 extends HttpServlet{public void doPost(HttpServletRequest req,HttpServletResponse res){this.doGet(req,res);}public void doGet(HttpServletRequest req,HttpServletResponse res){try{res.setContentType("text/html;charset=gbk");//中文防止乱码PrintWriter pw = res.getWriter();//从客户端得到所有的CookieCookie [] allCookies=req.getCookies();int i=0;//如果allCookies不为空……if(allCookies!=null){ //从中取出Cookie for(i=0;i<allCookies.length;i++){ //依次取出Cookie Cookie temp=allCookies[i]; if(temp.getName().equals("color1")){ //得到Cookie的值 String val=temp.getValue(); pw.println("color1="+val); break; } } if(allCookies.length==i){ pw.println("Cookie过期"); } }else{ pw.println("不存在color1这个cookie或是过期了!"); } }catch(Exception ex){ex.printStackTrace();}}}
//创建Cookiepackage com.tsinghua; import java.io.*;import javax.servlet.http.*;public class CookieTest3 extends HttpServlet{public void doPost(HttpServletRequest req,HttpServletResponse res){this.doGet(req,res);}public void doGet(HttpServletRequest req,HttpServletResponse res){try{res.setContentType("text/html;charset=gbk");//中文防止乱码PrintWriter pw = res.getWriter();//从客户端得到所有Cookie信息Cookie [] allCookies=req.getCookies();int i=0;//如果allCookies不为空if(allCookies!=null){//从中取出Cookiefor(i=0;i<allCookies.length;i++){//依次取出Cookie temp=allCookies[i];if(temp.getName().equals("color1")){//将该Cookie删除temp.setMaxAge(0);pw.println("删除了color这个Cookie");break;} }}}catch(Exception ex){ex.printStackTrace();}}}
//登录界面package com.tsinghua; 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){try{res.setContentType("text/html;charset=gbk");//中文防止乱码PrintWriter pw = res.getWriter();//返回登录界面pw.println("<html>");//html文件体pw.println("<body>");//body体//得到error信息String info=req.getParameter("info");if(info!=null){ pw.println("<hl>你的用户名或是密码错误!</hl>");}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=checkbox name=keep value=2>两周内不再重新登录<br>");//1、Cookiepw.println("<input type = submit value = loging><br />");pw.println("<form>");pw.println("</body>");//body体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","tiger"); //创建Statrment sm=ct.createStatement(); rs=sm.executeQuery("select top 1 * from users where username ='"+u+"'and passwd='"+p+"'"); if(rs.next())//帐号密码符合要求{//存在该用户名//存在该用户名和密码String dbPasswd=rs.getString(1);//看看数据库的密码和用户输入的密码是否相同 if(dbPasswd.equals(p)){ //1、=========产生Cookie============//主要看有没有选中String keep=req.getParameter("keep");//不等于空说明选中了if(keep!=null){//1将用户名和密码保存在客户端(cookie)//创建Cookie name=new Cookie("myname",u);Cookie pass=new Cookie("mypasswd",p);//设置时间name.setMaxAge(14*24*3600);pass.setMaxAge(14*24*3600);//回写到客户端res.addCookie(name);res.addCookie(pass);} HttpSession hs = req.getSession(true);hs.setMaxInactiveInterval(20);hs.setAttribute("pass","ok");//连接登录后的欢迎界面 //sendRedirect的作用是跳转界面 res.sendRedirect("wel?username="+u+"&passwd="+p);//该处填写域名 }}else{//返回登录页面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();}}}}
//欢迎界面//登录界面package com.tsinghua;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; PreparedStatement ps=null; ResultSet rs=null; try{//得到session防止非法登录HttpSession hs = req.getSession(true);String myname = (String)hs.getAttribute("pass");String u = req.getParameter("username");String p = req.getParameter("passwd");//1、================//读取Cookie==================String name="";String passwd="";if(myname == null){//如果session中没有用户信息,再看看有没有cookie信息//从客户端得到所有的CookieCookie [] allCookies=req.getCookies();int i=0;//如果allCookies不为空……if(allCookies!=null){ //从中取出Cookie for(i=0;i<allCookies.length;i++){ //依次取出Cookie Cookie temp=allCookies[i]; if(temp.getName().equals("myname")){ //得到Cookie的值 name=temp.getValue(); } else if(temp.getName().equals("mypasswd")){ passwd=temp.getValue(); } } if(name.equals("")&&!passwd.equals("")){ //到loginCl中验证 res.sendRedirect("logincl?username="+name+"&passwd="+passwd); return; } } //返回登录界面 res.sendRedirect("login?info=error1"); return; }res.setContentType("text/html;charset=gbk");//中文防止乱码PrintWriter pw = res.getWriter();pw.println("<body><center>");//显示图片 pw.println("<img src=imgs/2.jpg ><br>"); pw.println("wellcome! "+u+" your password="+p); pw.println("你的用户名是:"+u);//=========分页功能===============int pageSize=3;//一页显示几条记录int pageNow=1;//希望显示第几页int rowCount=0;//共有几条记录(查表)int pageCount=0;//共有几页(计算)//动态的接收pageNowString sPageNow=req.getParameter("pageNowok");if(sPageNow!=null){pageNow=Integer.parseInt(sPageNow);}//连接到数据库 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //得到链接 ct = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=spdb","sa","tiger"); ps = ct.prepareStatement("select count(*) from users"); rs= ps.executeQuery(); //返回一个结果集,如果增加,删除,更改的话用update 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)"); //给?赋值 // ps.setInt(1,pageSize); //ps.setInt(2,pageSize*(pageNow-1)); //执行查询 rs=ps.executeQuery(); //设置表头 pw.println("<table border=1>"); pw.println("<tr><th>id</th><th>name</th><th>passwd</th><th>mail</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>"); //做个超链接 pw.println("<br><a href=login>返回重新登陆</a></br>"); //上一页 if(pageNow!=1) pw.println("<a href=wel?pageNowok="+(pageNow-1)+">上一页</a>"); //显示超链接 for(int i=pageNow;i<=pageNow+4;i++){ pw.println("<a href=wel?pageNowok="+i+">"+i+"</a>"); } //下一页 if(pageNow!=pageCount) pw.println("<a href=wel?pageNowok="+(pageNow+1)+">下一页</a>"); pw.println("</center></body>");}catch(Exception ex){ex.printStackTrace();}}}
0 0
- JSP(5):cookie技术
- jsp的cookie技术整理
- jsp的cookie技术整理
- 会话技术cookie和session,JSP,EL,JSTL
- jsp cookie
- jsp cookie
- Jsp cookie
- jsp:Cookie
- jsp cookie
- jsp cookie
- JSP cookie
- JSP Cookie
- jsp cookie
- jsp--cookie
- [JSP]Cookie
- Cookie技术
- Cookie技术
- Cookie技术
- 全局宏定义
- 黑马程序员-------IO流
- 线性表、栈、队列的链式存储结构
- VC打印机编程之两篇有用的文章获取打印机与打印作业的状态和设置打印机模式并预览打印
- 【Win7旗舰版系统下载 官方MSDN原版】无第三方软件 纯净32&64位安装教程
- JSP(5):cookie技术
- 2014-04-12 i2c总线驱动程序__
- springmvc注解配置例子的实例代码下载
- IOS推送通知实现步骤
- c标签导入问题
- 1048576玩转 百万数据POI导出
- 解决网络会计中存在问题的对策
- 两个脑残的对话
- 2018