解决url传送到Action后无法获得整个url的问题。

博客围绕Action中获取完整URL参数的问题展开。在/u2bmanurl.do里无法取到完整的target参数,最终发现可使用JDK的String URLEncoder.encode(url)方法解决,将代码修改后即可正常获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Action中:
//日志跟踪 url=/u2manageAdvertise.do?id=186&method=detail&usertype=bman
RequestDispatcher rd = request.getRequestDispatcher("/u2bmanurl.do?target=" + url);
rd.forward(request, response);

/u2bmanurl.do是一个Action:如下:
public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
    String target = request.getParameter("target");
    log.info("target=" + target);
    //这里的target=/u2manageAdvertise.do?id=186 ,后面的“&method=detail&usertype=bman”
    //都没有取到
    return mapping.findForward("B0");
}

请问,怎么才能在/u2bmanurl.do里取到完整的target参数?

最终知道了,jdk就有String URLEncoder.encode(url)方法就是干这事的。基础不够好。
修改成

RequestDispatcher rd = request
      .getRequestDispatcher("/u2bmanurl.do?url="+URLEncoder.encode(url));
    rd.forward(request, response);

这样就ok了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值