Cookie的写入和读取:
先写一个HTML页面,在HTML表单提交后,action = “cookie_demo1/hello”
提交到servlet,servlet获取到表单内容,并且设置cookie给浏览器,同时跳转到注册页面2.html,
在2.html填写相应的内容后action=“cookie_demo1/hello1”
servlet1获取2.html中的内容并且获取到浏览器中的cookie
最后将两次表单提交的数据打印到屏幕上:
java代码 ----hello
package com.demo.wgg;
import java.io.IOException;
import java.io.PrintWriter;
import javax.jms.Session;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Demo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置相应编码,防止中文乱码
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//没有设置cookie是获取HTML中的属性
String username = request.getParameter("name");
String password = request.getParameter("password");
System.out.println(username);
System.out.println(password);
//创建cookie对象
Cookie cookie = new Cookie("userpass", username + "," +password);
//把cookie写入到浏览器中:
response.addCookie(cookie);
//跳转到另一个页面
request.getRequestDispatcher("/3.html").forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
1.html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Welcome you ! </h1>
<form action="/cookie_demo1/hello" method="post">
姓名<input name="name" type="text"><br><br>
密码:<input name="password" type="password"><br><br>
<br><br>
提交:<input name="submi" type="submit"><br><br>
</form>
</body>
</html>
2.html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Welcome you ! </h1>
<form action="/cookie_demo1/hello1" method="post">
职业:<input name="job" type="radio" value="1">teacher
<input name="job" type="radio" value="2">student
<br><br>
提交:<input name="submi" type="submit"><br><br>
</form>
</body>
</html>
hello1的代码:java
package com.demo.wgg;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class Demo1 extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String job = request.getParameter("job");
System.out.println(job);
//设置编码方法
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html ;charset=UTF-8");
//从浏览器中读取cookie
Cookie [] cookies = request.getCookies();
String userpass = null;
//循环遍历cookie找到需要的cookie
for(Cookie cookie :cookies){
String ckname = cookie.getName();
if("userpass".equals(ckname)){
//拿到第一步写入cookie的值
userpass = cookie.getValue();
}
}
String username = null;
String password = null;
//分割userpass
String [] ck = userpass.split("," );
//把从cookie中拿到的姓名和密码赋值
username = ck[0];
password = ck[1];
String printName = "姓名是:" + username + "<br>";
String printPassword = "密码是:" + password + "<br>";
String printJob = "工作是:" + job + "<br>";
//打印到屏幕上:
response.getWriter().print(printName);
response.getWriter().print(printPassword);
response.getWriter().print(printJob);
}
}