`
billxiatian
  • 浏览: 26264 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

redirect 和 orward 的区别

    博客分类:
  • Java
 
阅读更多

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



 
 

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



 
 

 下面是自己的代码:

             

/**
 * 商品请求处理类
 * @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;
		
	}
}

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

 

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE mapper  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"  
			"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.carshop.mapper.GoodsTypeMapper">
	<!-- 预编译sql语句,提高重用-->
	<sql id="findgoodstype">
		select * from e_goods_type  
	</sql>
	
	<!-- 获取商品类型-->
	<select id="getGoodsTypeList" resultType="goodsType">
		<include refid="findgoodstype"/>
		order by code asc
	</select>
	<!-- 根据code删除商品-->
	<select id="deleteGoodsType">
		delete from e_goods_type where code = #{code}
	</select>
	<!-- 根据code查询商品 -->
	<select id="getGoodsTypeByCode" resultMap="goodstype">
		<include refid="findgoodstype"/>
		<where>
			code = #{code}
		</where>
	</select>
	<!-- 更新修改商品 -->
	<update id="updateGoods">
		update e_goods_type set name=#{name},remark=#{remark} where code=#{code}
	</update>
	
	<!-- 定义ResultMap -->
	<resultMap type="GoodsType" id="goodstype" autoMapping="true">
		<!-- 定义列和java对象属性的对应关系 -->
		<!-- 映射:column是数据库列名 property是dto的定义名; 我们经常使用定义名来方便获取数据 -->
		<result column="code" property="code"/>
		<result column="name" property="name"/>
		<result column="remark" property="remark"/>
	</resultMap>
</mapper>

 

  • 大小: 10.8 KB
  • 大小: 12.6 KB
分享到:
评论

相关推荐

    译文TLD:Forward-Backward Error Automatic Detection of Tracking Failures翻译

    3. **误差计算**:比较前向轨迹和验证轨迹,如果它们之间的差异显著,则表明前向跟踪存在错误。 这种方法的优点在于它可以独立于特定的跟踪器,并且实现相对简单。通过比较两个方向上的轨迹一致性,可以有效地评估...

    在Jsp Servlet中页面重新定向总汇

    1. RequestDispatcher.forward() 是在服务器端起作用, 当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()...

    matlab中inv的函数代码-Dynamic-Scheduler-with-Production-Schedule:带有生产计划的动态计划程

    根据与PDX和FORCAM的讨论,“当前”格式显示倒数时间To(“订单放置”)和Tm(“维护性能”),矢量包含当前时间和orward的风险,矢量包含对应于订单中每个订单的风险。生产程序。 #1。 输入输出 输入信息输入数据...

    matlab中inv的函数代码-DMDI-Project:DMDI项目

    根据与PDX和FORCAM的讨论,“当前”格式显示倒数时间To(“订单放置”)和Tm(“维护性能”),矢量包含当前时间和orward的风险,矢量包含对应于订单中每个订单的风险。生产程序。 #1。 输入输出 输入信息输入数据...

    网页FLASH播放器代码

    // delay 毫秒后再次执行 orward() 函数,以实现不断快进的效果 setTimeout("Forward()",delay) } else state=null //快进完成后设置状态变量 state 为 null } function GoToEnd(){ movie.GoToFrame...

Global site tag (gtag.js) - Google Analytics