Servlet基础学习二(共享数据,操作数据库)

   一、共享数据

       (1)cookie技术:

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

            cookie的作用:

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

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

               c.网站的个性化

       (2)sendRedirect():

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

               中文需要处理乱码情况。

       (3)隐藏表单 <input type=hidden>

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

               如购物车/登录用户的信息/用户权限    多组键值对 session默认存在时间是30min


//得到session
HttpSession hs=request.getSession(true);
//添加属性
hs.setAttribute(String name,Object val);
//得到属性
String att=hs.getAttribute(String name);
//删除属性
hs.removeAttribute(String name);

       



       操作数据库:(验证用户信息)


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注入漏洞:

select * from users where username="admin" and password="admin" or 1="1"

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

       解决方法:通过用户名查找数据库中匹配的密码,然后与输入的密码比较,判断是否相同。

       

Servlet基础学习二(共享数据,操作数据库)

上一篇:windows下npm安装vue


下一篇:Winrm 设置https