redirect 和 orward 的区别

阅读更多

forward(直接请求转发)是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址,他是不会改变Request的值,如果你需要在下一个页面中能从中获取新的信息的话,你可以Request.setAttribute()来放置一些标志,这样从下一个页面中获取。


redirect 和 orward 的区别_第1张图片
 
 

redirect(间接请求转发)是完全的跳转,浏览器将会得到跳转的地址, 并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用Request Dispatcher.forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。


redirect 和 orward 的区别_第2张图片
 
 

 下面是自己的代码:

             

/**
 * 商品请求处理类
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/admin/goodstype/")
public class GoodsTypeAction {
	GoodsTypeDao goodsTypeDao = null;
	/**
	 * 删除商品
	 * @param code
	 * @return
	 */
	@RequestMapping("/delete")
	public String deletegoodsType(int code){
		goodsTypeDao = new GoodsTypeDao();
		goodsTypeDao.deleteGoodsType(code);
		return "forward:/admin/goodstype/goodstypeList";
		
	}

	/**
	 * 更新修改保存商品
	 * @param goodstype
	 * @return
	 */
	@RequestMapping("/update")
	public String updateGoodsType(GoodsType goodstype){
		goodsTypeDao = new GoodsTypeDao();
		goodsTypeDao.updateGoodsType(goodstype);
		return "redirect:/admin/goodstype/goodstypeList";
	}
}	 

-------------------------------------------------------------------------------------------------------------------------------------

public class GoodsTypeDao extends BaseDao {
	private static final String NAMESPACE_NAME = "com.carshop.mapper.GoodsTypeMapper.";
	/**
	 * 删除指定商品code
	 * @param code
	 * @return
	 */
	public int deleteGoodsType(int code){
		SqlSession session = getSqlSession();
		int count = session.delete(NAMESPACE_NAME+"deleteGoodsType",code);
		session.commit();
		closeSqlSession();
		return count;
	}
	/**
	 * 通过code获取商品详情
	 * @param code
	 * @return
	 */
	public GoodsType getGoodsTypeByCode(String code){
		SqlSession session = getSqlSession();
		GoodsType Goodstype = session.selectOne(NAMESPACE_NAME+"getGoodsTypeByCode",code);
		closeSqlSession();
		return Goodstype;
	}
	/**
	 * 更新修改商品
	 * @param code
	 * @return
	 */
	public int updateGoodsType(GoodsType goodstype){
		SqlSession session = getSqlSession();
		int count = session.update(NAMESPACE_NAME+"updateGoods",goodstype);
		session.commit();
		closeSqlSession();
		return count;
		
	}
}

-------------------------------------------------------------------------------------------------------------------------------

 

 



	
	
		select * from e_goods_type  
	
	
	
	
	
	
	
	
	
	
		update e_goods_type set name=#{name},remark=#{remark} where code=#{code}
	
	
	
	
		
		
		
		
		
	

 

  • redirect 和 orward 的区别_第3张图片
  • 大小: 10.8 KB
  • redirect 和 orward 的区别_第4张图片
  • 大小: 12.6 KB
  • 查看图片附件

你可能感兴趣的:(redirect 和 orward 的区别)