? 我的第一个测试servlet
package com.xueye.TestRequestford;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class TestFord extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ PrintWriter out = response.getWriter(); out.println(\用户登录\ out.println(\ out.println(\用户名:
\ out.println(\密 码:
\ out.println(\登录'>\ out.println(\ out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
? 处理我们提交的数据的servlet
package com.xueye.TestRequestford;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class ForWordCl extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ request.setCharacterEncoding(\ PrintWriter out = response.getWriter(); String name=request.getParameter(\ String pwd=request.getParameter(\ System.out.println(\ System.out.println(\ request.setAttribute(\ //request.getRequestDispatcher(\ response.sendRedirect(\ } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }
}
? 第三个servlet
package com.xueye.TestRequestford;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
public class Ok extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
}
}
throws ServletException, IOException {
response.setContentType(\request.setCharacterEncoding(\PrintWriter out = response.getWriter();
out.println(\我的名字是:\out.println(\我的密码是:\
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
this.doGet(request, response);
注意:使用转发不能访问web应用外的url,forward发生在web服务器,所以在上面的ForwardCl和Ok这两个servlet用的是同一个request和response ? 1 sendRedirect和forward的区别是什么?
答:1 sendRedirect叫做重定向,forward叫做转发 2 他们发生的位置不一样sendRedirect发生在浏览器而forward发生在服务器 3 用法不一样
request.getRequestDispatcher(\
// response.sendRedirect(\名/路径\4 能够去的url不一样 重定向可以访问任何url而转发只能访问当前的web资源
Servlet的会话技术
? 什么是会话
指的是用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管用户点击了多少个超链接,访问了多少资源,知道该用户关闭了该浏览器,整个过程我们称为一个会话 比如:打电话
? 会话过程中要解决的一些问题?
每个用户在使用浏览器与服务器进行会话的过程中,不可避免的会产生各自的一些数据,服务器要想办法为每个用户保存这些数据。
例如:多个用户点击超链接通过一个servlet各自购买商品,服务器应该想办法将每个用户购买的商品保存到一个地方,以便用户的结账
Cookie
为什么需要cookie?
思考:
1 我们登陆一个网站,想要显示你上次登陆的时间,我们该怎么完成? 2 如何显示用户曾经浏览的商品 3 还有在我们等了网站的时候,发现用户名和密码已经给你填进去了,不用我们重新
填写
解决之道:cookie技术
Cookie是客户端技术,服务器把每个用户的数据以cookie的形式写给用户各自的浏览器,当用户再次使用浏览器访问服务器中的web资源的时候,就会带着各自的数据去,这样web资源处理的就是用户自己的数据了。 ? 创建cookie
package com.xueye.testCookie;
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 TestCookie extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
response.setContentType(\request.setCharacterEncoding(\PrintWriter out = response.getWriter(); //创建我们的cookie
Cookie ck=new Cookie(\
ck.setMaxAge(3600);//设置生命周期为一个小时3600秒 //把我们创建的cookie返回给我们的浏览器 response.addCookie(ck); out.println(\已经发送\
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
this.doGet(request, response);
}
? 读取cookie
package com.xueye.testCookie;
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 ReadCookie1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ request.setCharacterEncoding(\ PrintWriter out = response.getWriter(); //读取kookie信息