首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Servlet 同一用户在不同页面中共享数据的四种步骤

2013-11-08 
Servlet同一用户在不同页面中共享数据的四种方法1.Cookie(小甜饼)2.sendRedirect()3.session技术4.隐藏表

Servlet 同一用户在不同页面中共享数据的四种方法
1.Cookie(小甜饼)

2.sendRedirect()

3.session技术

4.隐藏表单提交

以下逐一介绍:

1.(1)Cookie是小甜饼的意思,是关于服务器和客户端浏览器而言的,当用户在登录时会以表单的方式将自己的用户名,密码等信息发送的服务器,等服务器验证成功后,我们才能进入我们想要进入的页面进行各种操作。而Cookie就是在“登录”——“跳转”的这个点上由服务器根据相关设置自动进行的一项操作,比如:在我们的登录界面上经常会有“是否下次自动登录”“记住我的登录状态”“Cookie选项—  即时  一天  一周   一月   一年”等这样的选项,如果我们进行了这样的选择,在下一次我们登录该网站时该网站会自动进行以我们的用户名和密码进行登录,这是为什么呢,这就是这里所说的Cookie的作用,当我们第一次登录时如果进行了设置,服务器就会把我们提交的这些信息以字符串的形式(服务器在客户端保存的用户信息比如登录名,密码等数据量并不大,所以叫小甜饼)回写到我们的浏览器,服务器在需要时可以从客户端读取,一般保存在客户端的C:/documents and settings目录下。

(2)Cookie可以用来做什么

a.保存用户名,密码,在一定时间不用重新登录。

b.记录用户访问网站时的喜好,比如有无背景音乐,网页的背景色是什么等。

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

2.sengRedirect()方法,通过该方法将信息传送给下一个页面:比如sendRedirect("welcome?username=hll");

该方法的优点是:传送信息的速度比较快

确定是:它只能传送字符串,而不能传送一个对象。

该方法的重难点:1。welcome代表我们要跳转到的那个Servlet的URL

                2.Servlet URL名和变量之间有?号间隔

                3.如要传递两个以上的值,它们间要用地址符&分开,比如:sendRedirect("welcome?username=hll&password=123")

                4.如果传递的是中文,那我们将会得到乱码。需要进行设置。

该方法的应用案例:通过sendRedirect()我们可以将一个页面信息,传递给另外的页面。比如在wel页面中显示用户的姓名,就可以使用该方法。如下在Validate.java 中添加语句(加红加粗的字体,注意uname的一致性):

【package com.servlettest;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Validate extends HttpServlet { private static final long serialVersionUID = 1L;             public Validate() {        super();        // TODO Auto-generated constructor stub    }  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  // TODO Auto-generated method stub  String w=request.getParameter("uname");//传递两个值时,要加String p =request.getParameter(""upass);  try{   //用来接受用户名和密码   String u=request.getParameter("username");   String p=request.getParameter("passwd");   //验证   //if((u.equals("hll"))&&(p.equals("123"))){   if(u!=null&&p!=null){   //合法 ,跳转到welcome page       response.sendRedirect("Wel?uname=+u"); //若为两个值则为括号中卫"Wel?uname="+w+"upass="+p   }else{                                //uname和upass不能写错,写错的话会出现值为空的现象。    //不合法,跳转    response.sendRedirect("Login");//写将要到的Servlet的url   }  }catch(Exception e){e.printStackTrace();} }  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  // TODO Auto-generated method stub  this.doGet(request, response); }}】

热点排行