jsp页面跳转续问,请高手作答

来源:百度知道 编辑:UC知道 时间:2024/05/18 15:36:30
我懂得页面什么时候加 “../”,什么时候不加。但是在做简单的购物车而时(没有数据库),add.jsp页面的信息通过setadd.jsp页面封装,setadd代码片段:<jsp:useBean id="pbean" scope="request" class="com.bean.ProductBean"></jsp:useBean>
<jsp:setProperty property="*" name="pbean"/>
<jsp:forward page="servlet/AddServlet"></jsp:forward>跳转到servlet/AddServlet,其部分代码如下:

HttpSession session=request.getSession(true);
//获取session中的集合对象
Vector vc=(Vector) session.getAttribute("vccart");
if(vc==null){
vc=new Vector<ProductBean>();
}
//获取界面传递的商品对象
ProductBean pb=(ProductBean) request.getAttribute("pbean");
//判断购物车集合中的商品是否存在用户请求的商品对象
ProductBean pb1=null;
boolean bl=false;
int index=0;
for(int i=0;i<vc.size();i++){
pb1=(ProductBean) vc.get(i);
if(pb1.getPname().equals(pb.getPname())){
bl=true;
index=i;
b

你可以在浏览器中查看当前地址。。。
还有就是你对服务器端跳转和客户端跳转没有完全理解的原因!!服务器端跳转后地址是不会变的,只有可客户端跳转的地址才会变!!

下面给你解释
打个比方:
你现在的路径是
http://localhost:8080/test/A.jsp
现在是A.jsp在你的根目录/中但是B.sp是在
/B/中,所以B.jsp在A.jsp的下一级目录中
你要跳转到
B/B.jsp

现在用两种方式
1:
request.getRequestDispatcher("B.jsp").forward(request,response);
因为是服务器端跳转,所以虽然执行的是B/B.jsp但是你的地址栏路径依然是
http://localhost:8080/test/A.jsp
那么也就意味着你现在的所有文件依然是在/目录中查找。
2:
但是如果你你在A.jsp中用response.sendRedirect("B/B.jsp"),那么你的地址栏地址是http://localhost:8080/test/B/B.jsp
那么也就意味着你现在要找文件的话都是从/B目录中开始.所以用不同的方式转会存在不同的路径问题.
现在假如你的目录结构为
/A.jsp
/B/B.jsp
/client/login.jsp
假设你