文章目录
数据共享
针对同一用户不同页面之间
1. cookie
客户端保存用户的信息,比如登录名,密码等
- 保存用户名、密码,在一定时间不用重新登录
- 记录用户访问网站的喜好
- 网站个性化
2. sendRedrect()
将信息传送给下一个页面
格式:sendRedrect(“<?><传递变量名=变量值&传递变量名=…>”)
——url和变量之间有?;变量和变量之间有&;传递中文会得到乱码,需要处理;
3. 隐藏表单
不可见的< form … >< /form >
格式:
< form action=url >
< input type=hidden name=a value=b >
4. Session
存储特定用户会话所需的属性及配置信息,在一定时间内会一直存在
应用:
- 网页购物车
- 保存登录用户信息
- 将数据放入到session中供同一用户各个页面使用
- 防止非法登录
注意事项:
- 属性默认存在时间为30min
- 浏览器访问网站时服务器会给浏览器分配一个唯一的Session ID,区分不同的浏览器(客户端)
- Session的各个属性会占用服务器的内存
程序
package com.yyxx.simpleone;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.*;
public class Login extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
// super.doGet(req, resp);
try {
//中文显示
resp.setContentType("text/html;charset=gbk");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>");
pw.println("<title>Insert title here</title>");
pw.println("</head>");
pw.println("<body>");
pw.println("<h1><font size=12>");
pw.println("登录界面");
pw.println("</h1></font>");
pw.println("<form action=logincl method=get>");
pw.println("用户名:<input type=text name=username><br>");
pw.println("密 码:<input type=password name=password><br>");
pw.println("<input type=submit value=login><br>");
pw.println("</form>");
String info=req.getParameter("info");
if(info!=null){
pw.println("你的用户名或密码错误,请重新输入");
}
pw.println("</body>");
pw.println("</html>");
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
// super.doPost(req, resp);
}
}
package com.yyxx.simpleone;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.*;
public class LoginCl extends HttpServlet {
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
// super.doGet(req, resp);
try {
//中文显示
resp.setContentType("text/html;charset=gbk");
PrintWriter pw = resp.getWriter();
//接受用户名和密码
String u=req.getParameter("username");
String p=req.getParameter("password");
//验证
if(u.equals("yangxiao")&&p.equals("123456")) {
//合法