2.41.JSP的内置对象及方法
参考答案:
JSP有9个内置对象:request,response,out,session,pageContext,application,config,page,exception.
1.request表示javax.servlet.http.HttpServletRequest对象.用于获取客户端提供的数据,包括头信息,客户端地址,请求方式等.主要方式如下:
1)getCookies():返回客户端所有Cookies对象,结果是一个Cookies数组.
2)getSession():返回与请求相关的session.
3)setAttribute(String key,Object obj):设置属性的属性值.
4)getAttribute(String name):返回指定属性的属性值
5)request.getParameter(String name):获取客户端传送给服务器端的参数值.
6)getCharacterEncoding():返回字符编码方式.
7)getContentType():得到请求体的MIME类型.
2.response表示javax.servlet.http.HttpServletResponse对象,用于对客户端的请求作出动态的响应,向客户端发送数据.主要方法有:
1)addCookie(Cookies c):添加一个Cookie对象,用来保存客户端的用户信息.
2)sendRedirect(String location):把响应发送到另一个位置进行处理.
3)sendError(int):向客户端发送错误的信息.
4)getBufferSize():返回缓冲区的大小.
5)getOutputStream():返回客户端的输出流对象.
6)setContentType(String ContentType):设置响应的MIME类型.
7)setHeader(String name,String Value):设置指定名字的HTTP文件头的值,如果已经存在则将覆盖已经存在的旧值.
8)encodeURL():使用sessionId封装URL.如果没有必要封装URL,返回原值.
3.out对象时javax.servlet.jsp.JspWriter的一个实例,用来向客户端输出各种数据.主要方法入下:
1)print().println():根据参数类型输出各种类型的数据.
2)flush():输出缓冲区的数据.
3)close():关闭输出流.
4)clear():清除缓冲区里的数据,但不会把数据输出到客户端.
5)getBufferSize():获得缓冲区的大小.
6)clearBuffer():清除缓冲区里的数据,并把数据输出到客户端.
7)getRemaining():获得缓冲区中没有被占用的空间的大小.
8)isAutoFlush():返回布尔值,如果AutoFlush为真,返回true;反之,返回false.
4.pageContext表示一个javax.servlet.jsp.PageContext对象.它是用于方便存取所有猚的名字空间的对象,并且包装了通用的servlet相关功能的方法.主要方法如下:
1)getOut():返回当前客户端响应被使用的JspWriter流(Out).
2)getSession():返回当前页中的HttpSession对象(session).
3)getPage():返回当前页的Object对象(page).
4)getRequest():返回当前页的ServletRequest对象(request).
5)getResponse():返回当前页的ServletResponse对象(response).
6)getException():返回当前页的Exception对象(Exception).
7)getServletConfig():返回当前页的ServletConfig对象(Config).
8)getServletContext():返回当前页的ServletContext对象(application).
9)setAttribute(String name,Object attribute):设置属性及属性值.
10)getAttribute(String name,int scope):在指定范围内取属性值.
11)removeAttribute(String name):删除某属性值.
12)release():释放pageContext所占用的资源
13)forward(String relativeUrlPath):使当前页面重导到另一页面.
14)include(String relativeUrlPath):在当前位置包含另一文件.
5.session表示一个请求的javax.servlet.http.HttpSession对象.Session用来保存用户的会话信息和会话状态.主要方法如下:
1)setAttribute(String name,Object obj):设置指定名字的name属性value,并存储在session对象中.
2)getAttribute(String name):获取与指定名字name相联系的属性.
3)invalidate():取消session,使session不可用.
4)getId():返回session创建时JSP引擎为它设的唯一ID号.
5)getCreationTime():返回session创建时间.
6)getLastAccessedTime():返回session里客户端最近一次请求时间.
7)getMaxInactiveInterval():返回两次请求间隔多长时间此session被取消(ms).
8)getValueNames():返回一个包含此session’中所有可用属性的数组.
9)removeValue(String name):删除session中指定的属性.
6.application表示一个javax.servlet.ServletContext对象.用于用户间的数据共享,可以存放全局变量.主要方法如下:
1)getAttribute(String name):返回给定名的属性值.
2)getAttributeNames():返回所有可用属性名的枚举.
3)setAttribute(String name,Object obj):设定属性的属性值.
4)removeAttribute(String name):删除一属性及其属性值.
5)getServerInfo():返回JSP(Servlet)引擎名及版本号.
6)getRealPath(String path):返回一虚拟路径的真实路径.
7)getContext(String uripath):返回指定WebApplication的application对象.
8)getResource(String path):返回指定资源(文件及目录)的URL路径.
9)getRequestDispatcher(String uripath):返回指定资源的RequestDispatcher对象.
7.config表示一个javax.servlet.ServletConfig对象.该对象用于存取servlet实例的初始化参数.主要方法如下:
1)getServletContext():返回含有服务器相关信息的ServletContext对象.
2)getInitParameter(String name):返回初始化参数的值.
&emps;3)getInitParameterNames():返回servlet初始化所需所有参数的枚举.
8.page表示从该页面产生的一个servlet实例,即this.
9.exception用于处理JSP页面发生的错误和异常.主要方法有:
1)getMessage():返回描述异常的消息.
2)toString():返回关于异常的尖端描述消息.
3)printStackTrace():显示异常及其栈轨迹.
4)fillInStackTrace():重写异常的执行栈轨迹.
2.42.JSP的常用指令
参考答案:
JSP指令包括page,include以及taglib.page指令是针对当前页面的指令;include指令用来指定如何包含另外一个文件;taglib指令用来定义和访问自定义标签库.
2.43.简述EL表达式的作用
参考答案:
EL表达式的作用可分为以下三类:
1.访问Bean的属性;
2.输出简单的运算结果;
3.获取请求参数值.
2.44.JSP标签的作用?如何定义?
参考答案:
1.JSP标签的作用如下:
1)分离JSP页面的内容和逻辑;
2)业务逻辑开发者可以创建自定义标签;
3)封装业务逻辑;
4)可重用并且易维护;
5)易于手工修改,易于工具维护;
6)提供简洁的语法/
2.JSP标签的定义:
1)编写标签处理器;
2)编写tld文件;
3)将标签处理器和tld文件放到同一包里面;
4)把JSP页面和标签库配置部署在一起.
2.45.JSP页面中,<% %>,<%! %>,<%= %>,<%– –%>有什么区别?
参考答案:
<% %>内部可直接嵌入Java代码.
<%! %>内部可以声明变量和方法,它们只对当前JSP页面有效.
<%= %>将变量或表达式显示在页面上.
<%– –%>JSP注释,其内部标记的字符会在JSP编译时被忽略掉.
2.46.写出熟悉的JSTL标签
参考答案:
常用的标签:<c:out>
,<c:remove>
,<c:catch>
,<c:set>
迭代标签:<c:foreach>
条件标签:<c:if>
,<c:when>
,<c:choose>
,<c:otherwise>
URL标签:<c:import>
,<c:redirect>
,`
2.47.Java B/S模式,使用Map做数据存储,来实现增加,删除,修改,查询等功能
参考答案:
ShoppingCartItem类:
public class ShoppingCartItem implements java.io.Serializable{
private String id;//唯一表示一条选购商品数据
private String name;//商品名称
private double price;//商品价格
private double quantity;//商品数量
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public double getPrice(){
return price;
}
public void setPrice(double price){
this.price = price;
}
public double getQuantity(){
return quantity;
}
public void setQuantity(){
this.quantity = quantity;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
ShoppingCart类:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.welkin.shop.shop.bean.ShoppingCartItem;
public class ShoppingCart{
protected Map<String,ShoppingCartItem> items = new HashMap<String,ShoppingCartItem>();
//添加
public void addItem(String id,String name,double price,double quantity){
if(items.containsKey(id)){//存在的话数量相加
shoppingCartItem tempSC = (ShoppingCartItem) items.get(id);
//取出已经存在的这个商品
tempSC.setQuantity(quantity + tempSC.getQuantity());
} else {
ShoppingCartItem sc = new ShoppingCartItem();
sc.setId(id);
sc.setName(name);
sc.setPrice(price);
sc.setQuantity(quantity);
items.put(id,sc);//存放到哈希中,模拟一个购物车
}
}
//更新
public void editCart(String id, double quantity){
ShoppingCartItem tempSC = (ShoppingCartItem) items.get(id);
tempSC.setQuantity(quantity);
}
//获取所有
public List getAllCarts(){
ShoppingCartItem sc = null;
List<ShoppingCartItem> list = new ArrayList<ShoppingCartItem>();
Iterator it = items.keySet().iterator();
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
list.add(sc);
}
return list;
}
//获取总数量
public float getTotalQuantity(){
ShoppingCartItem sc = null;
Iterator it = items.keySet().iterator();
float totalPrice = 0;
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
totalPrice += sc.getQuantity();
}
return totalQuantity;
}
//获取总金额
public float getTotalPrice(){
ShoppingCartItem sc = null;
Iterator it = items.keySet().iterator();
float totalPrice = 0;
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
totalPrice += sc.getPrice() * sc.getQuantity();
}
return totalPrice;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
2.48.请在以下a.jsp和b.jsp中补充代码,使得在一次会话中b.jsp能获取到a.jsp中p1变量的值
a.jsp:
<%
String p1="124";
%>
- 1
- 2
- 3
b.jsp
<%
%>
- 1
- 2
- 3
参考答案:
a.jsp:
<%
String p1="124";
session.setAttribute("p1",p1);
%>
- 1
- 2
- 3
- 4
b.jsp:
<%
String p1=(String)session.getAttribute("p1");
%>
- 1
- 2
- 3
2.41.JSP的内置对象及方法
参考答案:
JSP有9个内置对象:request,response,out,session,pageContext,application,config,page,exception.
1.request表示javax.servlet.http.HttpServletRequest对象.用于获取客户端提供的数据,包括头信息,客户端地址,请求方式等.主要方式如下:
1)getCookies():返回客户端所有Cookies对象,结果是一个Cookies数组.
2)getSession():返回与请求相关的session.
3)setAttribute(String key,Object obj):设置属性的属性值.
4)getAttribute(String name):返回指定属性的属性值
5)request.getParameter(String name):获取客户端传送给服务器端的参数值.
6)getCharacterEncoding():返回字符编码方式.
7)getContentType():得到请求体的MIME类型.
2.response表示javax.servlet.http.HttpServletResponse对象,用于对客户端的请求作出动态的响应,向客户端发送数据.主要方法有:
1)addCookie(Cookies c):添加一个Cookie对象,用来保存客户端的用户信息.
2)sendRedirect(String location):把响应发送到另一个位置进行处理.
3)sendError(int):向客户端发送错误的信息.
4)getBufferSize():返回缓冲区的大小.
5)getOutputStream():返回客户端的输出流对象.
6)setContentType(String ContentType):设置响应的MIME类型.
7)setHeader(String name,String Value):设置指定名字的HTTP文件头的值,如果已经存在则将覆盖已经存在的旧值.
8)encodeURL():使用sessionId封装URL.如果没有必要封装URL,返回原值.
3.out对象时javax.servlet.jsp.JspWriter的一个实例,用来向客户端输出各种数据.主要方法入下:
1)print().println():根据参数类型输出各种类型的数据.
2)flush():输出缓冲区的数据.
3)close():关闭输出流.
4)clear():清除缓冲区里的数据,但不会把数据输出到客户端.
5)getBufferSize():获得缓冲区的大小.
6)clearBuffer():清除缓冲区里的数据,并把数据输出到客户端.
7)getRemaining():获得缓冲区中没有被占用的空间的大小.
8)isAutoFlush():返回布尔值,如果AutoFlush为真,返回true;反之,返回false.
4.pageContext表示一个javax.servlet.jsp.PageContext对象.它是用于方便存取所有猚的名字空间的对象,并且包装了通用的servlet相关功能的方法.主要方法如下:
1)getOut():返回当前客户端响应被使用的JspWriter流(Out).
2)getSession():返回当前页中的HttpSession对象(session).
3)getPage():返回当前页的Object对象(page).
4)getRequest():返回当前页的ServletRequest对象(request).
5)getResponse():返回当前页的ServletResponse对象(response).
6)getException():返回当前页的Exception对象(Exception).
7)getServletConfig():返回当前页的ServletConfig对象(Config).
8)getServletContext():返回当前页的ServletContext对象(application).
9)setAttribute(String name,Object attribute):设置属性及属性值.
10)getAttribute(String name,int scope):在指定范围内取属性值.
11)removeAttribute(String name):删除某属性值.
12)release():释放pageContext所占用的资源
13)forward(String relativeUrlPath):使当前页面重导到另一页面.
14)include(String relativeUrlPath):在当前位置包含另一文件.
5.session表示一个请求的javax.servlet.http.HttpSession对象.Session用来保存用户的会话信息和会话状态.主要方法如下:
1)setAttribute(String name,Object obj):设置指定名字的name属性value,并存储在session对象中.
2)getAttribute(String name):获取与指定名字name相联系的属性.
3)invalidate():取消session,使session不可用.
4)getId():返回session创建时JSP引擎为它设的唯一ID号.
5)getCreationTime():返回session创建时间.
6)getLastAccessedTime():返回session里客户端最近一次请求时间.
7)getMaxInactiveInterval():返回两次请求间隔多长时间此session被取消(ms).
8)getValueNames():返回一个包含此session’中所有可用属性的数组.
9)removeValue(String name):删除session中指定的属性.
6.application表示一个javax.servlet.ServletContext对象.用于用户间的数据共享,可以存放全局变量.主要方法如下:
1)getAttribute(String name):返回给定名的属性值.
2)getAttributeNames():返回所有可用属性名的枚举.
3)setAttribute(String name,Object obj):设定属性的属性值.
4)removeAttribute(String name):删除一属性及其属性值.
5)getServerInfo():返回JSP(Servlet)引擎名及版本号.
6)getRealPath(String path):返回一虚拟路径的真实路径.
7)getContext(String uripath):返回指定WebApplication的application对象.
8)getResource(String path):返回指定资源(文件及目录)的URL路径.
9)getRequestDispatcher(String uripath):返回指定资源的RequestDispatcher对象.
7.config表示一个javax.servlet.ServletConfig对象.该对象用于存取servlet实例的初始化参数.主要方法如下:
1)getServletContext():返回含有服务器相关信息的ServletContext对象.
2)getInitParameter(String name):返回初始化参数的值.
&emps;3)getInitParameterNames():返回servlet初始化所需所有参数的枚举.
8.page表示从该页面产生的一个servlet实例,即this.
9.exception用于处理JSP页面发生的错误和异常.主要方法有:
1)getMessage():返回描述异常的消息.
2)toString():返回关于异常的尖端描述消息.
3)printStackTrace():显示异常及其栈轨迹.
4)fillInStackTrace():重写异常的执行栈轨迹.
2.42.JSP的常用指令
参考答案:
JSP指令包括page,include以及taglib.page指令是针对当前页面的指令;include指令用来指定如何包含另外一个文件;taglib指令用来定义和访问自定义标签库.
2.43.简述EL表达式的作用
参考答案:
EL表达式的作用可分为以下三类:
1.访问Bean的属性;
2.输出简单的运算结果;
3.获取请求参数值.
2.44.JSP标签的作用?如何定义?
参考答案:
1.JSP标签的作用如下:
1)分离JSP页面的内容和逻辑;
2)业务逻辑开发者可以创建自定义标签;
3)封装业务逻辑;
4)可重用并且易维护;
5)易于手工修改,易于工具维护;
6)提供简洁的语法/
2.JSP标签的定义:
1)编写标签处理器;
2)编写tld文件;
3)将标签处理器和tld文件放到同一包里面;
4)把JSP页面和标签库配置部署在一起.
2.45.JSP页面中,<% %>,<%! %>,<%= %>,<%– –%>有什么区别?
参考答案:
<% %>内部可直接嵌入Java代码.
<%! %>内部可以声明变量和方法,它们只对当前JSP页面有效.
<%= %>将变量或表达式显示在页面上.
<%– –%>JSP注释,其内部标记的字符会在JSP编译时被忽略掉.
2.46.写出熟悉的JSTL标签
参考答案:
常用的标签:<c:out>
,<c:remove>
,<c:catch>
,<c:set>
迭代标签:<c:foreach>
条件标签:<c:if>
,<c:when>
,<c:choose>
,<c:otherwise>
URL标签:<c:import>
,<c:redirect>
,`
2.47.Java B/S模式,使用Map做数据存储,来实现增加,删除,修改,查询等功能
参考答案:
ShoppingCartItem类:
public class ShoppingCartItem implements java.io.Serializable{
private String id;//唯一表示一条选购商品数据
private String name;//商品名称
private double price;//商品价格
private double quantity;//商品数量
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public double getPrice(){
return price;
}
public void setPrice(double price){
this.price = price;
}
public double getQuantity(){
return quantity;
}
public void setQuantity(){
this.quantity = quantity;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
ShoppingCart类:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.welkin.shop.shop.bean.ShoppingCartItem;
public class ShoppingCart{
protected Map<String,ShoppingCartItem> items = new HashMap<String,ShoppingCartItem>();
//添加
public void addItem(String id,String name,double price,double quantity){
if(items.containsKey(id)){//存在的话数量相加
shoppingCartItem tempSC = (ShoppingCartItem) items.get(id);
//取出已经存在的这个商品
tempSC.setQuantity(quantity + tempSC.getQuantity());
} else {
ShoppingCartItem sc = new ShoppingCartItem();
sc.setId(id);
sc.setName(name);
sc.setPrice(price);
sc.setQuantity(quantity);
items.put(id,sc);//存放到哈希中,模拟一个购物车
}
}
//更新
public void editCart(String id, double quantity){
ShoppingCartItem tempSC = (ShoppingCartItem) items.get(id);
tempSC.setQuantity(quantity);
}
//获取所有
public List getAllCarts(){
ShoppingCartItem sc = null;
List<ShoppingCartItem> list = new ArrayList<ShoppingCartItem>();
Iterator it = items.keySet().iterator();
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
list.add(sc);
}
return list;
}
//获取总数量
public float getTotalQuantity(){
ShoppingCartItem sc = null;
Iterator it = items.keySet().iterator();
float totalPrice = 0;
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
totalPrice += sc.getQuantity();
}
return totalQuantity;
}
//获取总金额
public float getTotalPrice(){
ShoppingCartItem sc = null;
Iterator it = items.keySet().iterator();
float totalPrice = 0;
while(it.hasNext()){
String key = (String) it.next();
sc = (ShoppingCartItem) items.get(key);
totalPrice += sc.getPrice() * sc.getQuantity();
}
return totalPrice;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
2.48.请在以下a.jsp和b.jsp中补充代码,使得在一次会话中b.jsp能获取到a.jsp中p1变量的值
a.jsp:
<%
String p1="124";
%>
- 1
- 2
- 3
b.jsp
<%
%>
- 1
- 2
- 3
参考答案:
a.jsp:
<%
String p1="124";
session.setAttribute("p1",p1);
%>
- 1
- 2
- 3
- 4
b.jsp:
<%
String p1=(String)session.getAttribute("p1");
%>
- 1
- 2
- 3