内置对象有:
request
response
session
application
out
config
pagecontext
page
exception
request
只能在客户端跳转
Request对象的作用:
口获取客户端可通过HTML表单或在网页地址后
面提供参数的方法提交的数据
口在作用域中管理属性
口获取客户信息
口获取cookie
request 对象:
口request对象常用方法
口String getParameter(String name)
根据页面表单组件名称获取请求页面提交数据
口String[ ] getParameterValues (String name)
获取页面请求中一个表单组件对应多个值时的用户的请求数据
表单及常用标签:
口<form> 标签的作用:
<form>标签用于定义表单以及如何提交表单中的数据,主要的提交方法有POST和GET两种。
<form method="POST" action="search.jsp"> ... </form>
口<input> 标签的作用:
<input>标签通常用来存储和捕获表单数据,它们可以分成以下两类:
口基本类型的<input>,例如:
<input type="text" name="xx" value="yy">
<input type="password" name="xxx" value="yyy">016
<input type="radio" name="Xx" value="yyy">
口提交类型的<input>,例如:
<input type="submit" value="提交”>
get和post方法的区别:
口get请求将表单内容作为URL的一部分发送。
口post请求将表单内容附加到HTTP请求的末尾发送
口大多数Web服务器将get请求查询字符串限定在1024个字符以
下,为避免这一限制,请用post请求
口包含许多字段的表单通常使用post请求。密码等敏感表单字段通
常用post请求发送。
中文乱碣処理:
post请求:
request. setCharacterEncoding (“gb2312");
対请求迸行統一
的编码
get请求:
String name=new String ( request. getParameter(“name") . getBytes (“IS08859-1"),“UTF-8")
request对象实例:
口使用request对象进行JSP编程
需求:某网站注册时,需要输入注册信息,请编写JSP页面供用户输入,并获取用户输入的数据。注册信息包括用户名、密码
确认密码、性别、 爱好、学历和个人简介等主题。分析:
1、编写一个JSP页面,提供用户输入的表单组件。
2、编写另一个JSP页面,获取用户提交的请求数据,并
显示出来。
response
Response对象的作用:
口重定向网页
口设置HTTP响应报头
口向客户端写Cookie
//客户端跳转
response.sendRedirect("request-getAttribute.jsp");
contentType属性
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<meta http-equiv="refresh" content="1">
<title>Insert title here</title>
/* 第一步:创建cookie对象 */
Cookie cookie1=new Cookie("username",name);
Cookie cookie2=new Cookie("password",password);
/* 第二部 设置有效期 */
cookie1.setMaxAge(7*24*60*60);
response.addCookie(cookie1);
response.addCookie(cookie2);
<!-- 读取cookie -->
<%
String username="";
String pwd="";
Cookie[] cookies=request.getCookies();
for(Cookie cookie:cookies){
if("username".equals(cookie.getName())){
username=cookie.getValue();
}
if("password".equals(cookie.getName())){
pwd=cookie.getValue();
}
}
%>
sessions
对象
getid()方法
setAttribute(“name”,value);
getAttribute(“name”) 返回值object
removeAttribute(name);
setMoaxlnactiveInterval();最长不活跃时间
invalidate()失效
session:多个商品:集合类 List Set HashMap
ArrayList 篮子
第一次购物:
ArrayList car=new ArrayList();
Car.add(good);
Session.setAttribute(“car”,car);
第>=1次购物:
car=session.getAttribute(“car”);
car.add(good);
session.setAttribute(“car”,car);
if(car=null){
}else{
}
<body>
<%
request.setCharacterEncoding("utf-8");
String good=request.getParameter("goodname");
ArrayList car=null;
car=(ArrayList)session.getAttribute("car");
if(car==null){
car=new ArrayList();
if(good!=null&&!good.isEmpty()){
car.add(good);
}
session.setAttribute("car", car);
}else{
if(good!=null&&!good.isEmpty()){
car.add(good);
}
session.setAttribute("car", car);
}
car=(ArrayList)session.getAttribute("car");
if(car!=null){
for(int i=0;i<car.size();i++){
out.print(car.get(i)+"<br>");
}
}
%>
<a href="buy.jsp">继续购物</a>
</body>
application
实现网站计数器:
Application+
+
Intx= =0;
X++;
Application.setAttribute(“count”,x);
第一个用户:
if((Integer) Application.getAttribute(“count”)==null){
X++;
Application.setAttribute(“count”,x);
}
当有一个新用户的时候: +
Int x=(Integer) Application.getAttribute(“count”);
X++;
Application.setAttribute(“count”,x);
<body>
<%
request.setCharacterEncoding("utf-8");
int count=0;
if(application.getAttribute("count")==null){
count++;
session.setAttribute("count", count);
}else{
count=((Integer)application.getAttribute("count")).intValue();
//刷新页面不加1,只有新用户才加1
if(session.isNew()){
session.setAttribute("count", ++count);/* 先加1后使用 */
}
}
out.print("第"+count+"个用户");
%>
</body>