Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376989
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2469
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-16 23:51
个人简介

活泼开朗是我的特性。

文章分类
文章存档

2014年(27)

2013年(46)

分类: 数据库开发技术

2014-02-20 17:19:38

一、共享数据

       (1)cookie技术:

               服务器在客户端保存用户的信息,数据量不大,保存在C:Documents and Settings。

            cookie的作用:

               a.保存用户登录信息,一定时间不用重新登录

               b.记录用户访问网站的喜好

               c.网站的个性化

       (2)sendRedirect():

               传送信息快,但只能传输字符串。格式sendRedirect(url?"变量1名="+值&"变量2名                    ="+值&...)

               中文需要处理乱码情况。

       (3)隐藏表单

       (4)session技术:当用户提出请求时,服务器会为该用户分配一个独立的内存空间。

               如购物车/登录用户的信息/用户权限    多组键值对 session默认存在时间是30min
1
2
3
4
5
6
7
8
    
//得到session
HttpSession hs=request.getSession(true);
//添加属性
hs.setAttribute(String name,Object val);
//得到属性
String att=hs.getAttribute(String name);
//删除属性
hs.removeAttribute(String name);

       


       操作数据库:(验证用户信息)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    
public void doGet(HttpServletRequest req,HttpServletResponse res)
{
    try{
        //接受用户名和密码
        String u=req.getParameter("username");
        String p=req.getParameter("passwd");
        //连接数据库
        Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver")
        //得到连接
        Connectiong ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:端口号:databaseName=数据库名",用户名,密码);
        //创建Statement
        Statement sm=ct.createStatement();
        ResultSet rs=sm.executeQuery("select top 1 * from users where username="+u+" and passw="+p+"");
        //验证
        if(rs.next()){
         }
        }
        catch(Exception(ex)
         {ex.printStackTrace();}
        finally{
            try
            {    if(rs!=null)//关闭顺序不可变
                    rs.close();
                 if(sm!=null)
                    sm.close();
                 if(ct!=null)
                    ct.close()
             }
              catch{Exception e){
                exprintStackTrace();
            }
        }
 
    }


       需要的jar包1.拷贝到WEB-INF/lib目录下【独用lib库】 2.拷贝到%tomcat%commons/lib目录下【公用lib库】

       sql注入漏洞:
1
    
select * from users where username="admin" and password="admin" or 1="1"

       这样会输出数据库该表的全部内容。

       解决方法:通过用户名查找数据库中匹配的密码,然后与输入的密码比较,判断是否相同。
阅读(2550) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~