servlet小总结3----同一用户的不同页面的共享数据的四种方法,及Servlet中操作数据库时等

1同一用户的不同页面的共享数据的四种方法

(1) cookie技术:即服务器在客户端保存用户的信息,比如登录名,密码等就是cookie,其

作用如下,A保存用户名,密码,在一定时间内不用重新登录

          B记录用户访问网站的喜好(比如有无背景音乐等)

          C网站的个性化,比如定制网站的服务,内容

 

 

(2)sendRedirect()转向,通过此方法可以将一根页面信息,传递给另外的页面,sendRedirect(“welcome?uname=ly”);的形式应该注意的有:

               A  welcom代表的是你要跳转的那个servlet的url

               B  servlet url名和变量之间有个?号

               C  如果要传递两个以上的值,它们之间要用&号分开,比如sendRedirect(welcome?uname=ly&pass=ok);

               D  如果传递的是中文,那将得到乱码,需要处理一下

该方法优缺点:

优点:传送信息的速度比较快

缺点:它只能传送字符串,而不能传送一个对象

 

 

(3)隐藏表单,行如:

<from action=login>

<input type=hidden name=a value=b>

</from>

 

 

(4)Session技术:即当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占,这个空间就是session空间,该空间的数据默认存在时间为30min,你也可以修改(a 修改你所安装的tomcat中的conf文件夹中的web.xml中的<session-config>

        <session-timeout>30</session-timeout>

</session-config>处,单位是分钟,注意如果是用这种方式修改,那个所有web应用的session全部会变成修改的数,如果只是想改一个web应用的话,就把这三行代码复制到你想改时间的那个应用中

b在程序中修改

先获得session

HttpSession ht=req.getSession(true);

ht.setMaxInactiveIterval(20);注意单位是秒,此为20秒,这个时间,以及默认的时间30min都是指的是间隔时间,即如果是默认时间的话,如果在30分钟内没有操作过一次,这个session将消失,但是如果在30分钟内操作过,session将从新开始计时30分钟,从操作那时起

)

 

可以把session看做一张在内存中的表格,这种表格有两列,而表有多少行,理论上没有限制,没一行就是session的一个属性,每个属性包含两个部分,一个是该属性的名字(String),另外一个就是它的值(Object)例如:

名字

String

Object

注意:当某个浏览器访问网站时,服务器会给浏览器分配一个唯一的session id,并以此来区分不同的浏览器(即客户端),因为session的各个属性药占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用

2如何使用Session

    (1)得到session

HttpSession hs=request.getSession(true);

(2)向session中添加属性

     hs.setAttribute(String name,Object val);

(3)session中得到某个属性

String name=hs.getAttribute(String name);

(4)从session中删除某个属性

hs.removeAttribute(String name);

注意,这个session是属于一次请求的,就是属于一个IE浏览器的,一个IE实例的,而不是属于整个的一个机器,可以在机器上打开多个不同的IE,可能就有多个session

3安全性级别比较高的信息最好不要通过sendRedirect(welcome?uname=ly&pass=ok)方法来传输,因为用这个方法传输,传输的信息会在地址栏有所显示,http协议是明文传输,安全性比较高的可以加密,把信息如lyok加密过后再传输,或者是放在session里面去传,但量不要太大

4 Servlet中操作数据库时(应该特别注意sql注入漏洞!!

 

5  servlet操作数据库时需要注意的是:

需要将如下连接数据库的3jar包拷贝到tomcat服务器

msbase.jar

mssqlserver.jar

msutil.jar 

具体有两种方法:

.jar包拷贝到你安装的tomcat中的common文件夹下的lib文件夹

2在你的tomcatwebapps目录的WEB-INF文件夹下建立一个lib文件夹,然后把3jar包拷贝到lib文件夹下

两种方法的区别:

第一种  所有的webapps都可以使用3jar,即公用lib

第二种  只有放jar的那个webapps能使用jar,即独用lib

6在用servlet操作数据库时,应该注意sql注入漏洞,

例如-----sql注入漏洞

Select * from users where username=’ahc’and passwd=’lskj’ or 1=’1’

如果是这样的话,无论输入密码是什么,都会把所有信息列出来

用户名:  密码:  密码输入为lskj’ or 1=’1时就能通过,写程序时,不要用用户名和密码同时查,应该是通过用户输入的用户名去查数据库,返回密码,用数据库返回的密码和用户输入的密码相比较,如果相同说明用户是合法的,这样就可以有效避免它了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值