request

request封装了用户请求页面时所提交的信息,该对象调用相应的方法可以获取封装的信息,即request对象可以获取用户提交的信息

getParameter

request.getParameter(“parameterName”)
用于得到表单和超链接所提交的参数值(得到访问请求参数),表单提交时,得到的是name属性的表单的参数。
返回string类型的数据。

setAttribute()

在进行请求转发时(),需要把一些数据传递到转发后的页面进行处理。
在转发过程中,可以通过request对象的setAttribute()方法将数据保存到request范围内的变量中,此后只要是请求转发(因为使用的是同一request对象),都可以使用该变量。
存储:request.setAttribute(String name, Object object);
name为变量名,Object为变量类型和值

获取:request.getAttribute(String name);

request.getParameter() request.getAttribute()
无set方法 有set方法
用于获取客户端的参数 方法用于在Web容器内部传递参数
方法返回String型数据 返回Object类型的数据(因此别忘了强制类型转换)
应用于页面的链接关系 应用于页面的转发关系

getCookies()

cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器的,可以标识用户身份,记录用户名和密码,跟踪重复用户等
request.getCookies()可获取到所有Cookie对象的集合,返回Cookie对象;

Cookie对象方法

通过cookie对象的getName()可以获取到指定名称的cookie。
通过cookie对象的getValue()方法即可获取到cookie对象的值。

response.addCookie(cookie)来保存cookie

  1. <body>
  2. <%
  3. Cookie[] cookies = request.getCookies();//从request中获得Cookie对象的集合
  4. String user = ""; //登录用户
  5. String date = ""; //注册的时间
  6. if (cookies != null) {
  7. for (int i = 0; i < cookies.length; i++) { //遍历cookie对象的集合
  8. if (cookies[i].getName().equals("mrCookie")) {//如果cookie对象的名称为mrCookie
  9. user = URLDecoder.decode(cookies[i].getValue().split("#")[0]);//获取用户名
  10. date = cookies[i].getValue().split("#")[1];//获取注册时间
  11. }
  12. }
  13. }
  14. if ("".equals(user) && "".equals(date)) {//如果没有注册
  15. %>
  16. 游客您好,欢迎您初次光临!
  17. <form action="6.2_6_jump.jsp" method="post">
  18. 请输入姓名:<input name="user" type="text" value="">
  19. <input type="submit" value="确定">
  20. </form>
  21. <%
  22. } else {//已经注册
  23. %>
  24. 欢迎[<b><%=user %></b>]再次光临<br>
  25. 您注册的时间是:<%=date %>
  26. <%
  27. }
  28. %>
  29. </body>
<script type="text/javascript">window.location.href="6.2_6.jsp"</script>
<body>
<%
    request.setCharacterEncoding("utf-8");
    java.util.Date date = new java.util.Date();
    java.text.SimpleDateFormat dtf = new java.text.SimpleDateFormat("h:m:s");

    String user=URLEncoder.encode(request.getParameter("user"),"utf-8");
    Cookie cookie = new Cookie("mrCookie", user+ "#" + dtf.format(date));
    cookie.setMaxAge(60*60*24*30);        //设置cookie有效期30天
    response.addCookie(cookie);    //保存cookie
%>

</body>

setCharacterEncoding()

在获取request中的信息时,信息的中文有可能会乱码,因此要设置表单编码。
在request.getParameter()方法之前,先设置表单编码方式。如request.setCharacterEncoding(“gb2312”);


<%@ page contentType="text/html;charset=GB2312" %>
<html><body>
获取文本框提交的信息:
<%  
    request.setCharacterEncoding("gb2312");
    String textContent=request.getParameter("user")
%>
<%=textContent%> 
</body>
</html>

response对象

与request相对应,response对象用来提供给客户端浏览器的参考信息。

sendRedirect()

用于重定向网页。由浏览器来做重定向,转到指定的页面
response.sendRedirect(String path);

setHeader()

response.setHeader(String name, String value);

<% //禁用缓存
    response.setHeader("Cache-Control","no-store");
    response.setHeader("Expires",0);
%>
<% //自动刷新
    response.setHeader("refresh","10");
%>
<% //定时跳转网页
    response.setHeader("refresh","5;URL=http://www.163.com");
%>

session对象

在web页面间进行跳转时,可以用session对象,来保存特定用户的会话信息。
session对象表示”会话”
session对象在客户端向该页面发出请求时建立,在session到期或者关闭浏览器时撤销。

原理机制:
服务端生成session对象并存储,仅返回sessionid并写入Cookie中,用于和服务器的响应session对应。
客户首次访问服务器的一个页面时,服务器就会为该客户分配一个session对象,同时为该session对象指定一个唯一的ID,并将该ID号发送到客户端并写入到Cookie中,使得客户端与服务器的session建立一一对应关系。session和相关内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session当客户继续访问服务上的其他资源时,不再为该客户分配新的session,直到客户端浏览器关闭、超时或调用session的invalidate()方法使其失效,客户端与服务器的会话结束。当客户端重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,重新分配session id。

session.setAttribute(String name, Object obj)
session.getAttribute(String name)
session.setAttribute(“item”,“钢笔”);(购买页面)
String 商品=(String)session.getAttribute(“item”); (结账页面)
out.println(“<%=商品%>”);
session.removeAttribute(String name) 移除属性
session.invalidate() 销毁

application对象

在服务器启动时自动创建,在服务器停止时销毁

out对象

用于向浏览器输出数据,并且管理应用服务器上的缓冲区
两种方法:out.println(); out.print();