将参数放入webservlet的url中

2024-04-09

我正在使用 Webservlet,我想在 url 本身中传递参数。就像是

@WebServlet("/profile/{id}")
public class ProfileServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse res) {
        String idstr = req.getParameter("id");
        int id = idstr == null ? (int)req.getSession().getAttribute("userid") : Integer.parseInt(idstr);
        Profile profile = ProfileDAO.getForId(id);
        req.setAttribute("profile",profile);
        req.getRequestDispatcher("/WEB-INF/profile.jsp").forward(req,res);
    }
}

但我似乎在文档中找不到任何允许我执行此操作的内容。我知道我能做到/profile?idstr=1234或者其他什么,但是有没有办法可以使用 WebServlet 将其放入 URL 中?或者我需要一个不同的框架来做到这一点......


我自己寻找了足够长的时间,并找到了解决方案。 您可以尝试获取当前放入浏览器 url 中的 url,例如:

../个人资料/this_id

你无法得到这个

this_id

以一种简单的方式,但由于内部 servlet 前向调度,这并不总是绑定。有时request.getRequestURI()根据需要工作,您可以检查它:

String url = null;
url = (String) request.getAttribute("javax.servlet.forward.request_uri");
url = url == null ? ((HttpServletRequest) request).getRequestURI() : url;

or

request.getAttribute("javax.servlet.include.request_uri")

如果你使用<jsp:include tag>如果您的网址是

www.example.com/profile/Ted

结果将是

简介/特德

这样您就可以轻松获得所需的东西。 欲了解更多信息,请看这里Java HttpServletRequest 获取浏览器 URL 栏中的 URL https://stackoverflow.com/questions/1256562/java-httpservletrequest-get-url-in-browsers-url-bar

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将参数放入webservlet的url中 的相关文章

随机推荐

  • 想要在 dojo 中创建一个组合框,其中下拉菜单和自动完成功能仅在用户输入 4 个字符后才启动

    我想在 dojo 中创建一个组合框 其中下拉菜单和自动完成功能仅在用户输入 3 个字符后才会启动 当前的默认设置将开始显示下拉菜单 并在用户输入第一个字符时自动完成 是否有任何属性可以实现此行为 我可以重载某些函数吗 或者我应该自己编写一个
  • GlassFish 3 + Maven + 远程部署

    我找不到任何关于如何通过 Maven 将简单的基于 Maven 的项目部署到远程 GlassFish 服务器的明确答案 mvn package xxx deploy 我认为只有 Cargo 插件支持 GlassFish 3 对吧 我在配置方
  • 为什么在 git reset (--mixed) 之前显式调用 git reset --soft

    在 git 文档 以及许多 SO 线程 中 建议使用这种重置方法 git reset soft HEAD go back to WIP state lt 2 gt git reset lt 3 gt 2 这将从提交历史记录中删除 WIP 提
  • UTF-8 格式的 JAVA Http POST 请求

    我的 J2EE 应用程序能够从 JSP 页面接收 POST 请求 这没有问题 但是如果我使用另一个java应用程序发送POST请求 收到的参数不是UTF 8字符串 这是我的代码 URL url new URL http localhost
  • 使用 std:fstream 如何拒绝对文件的访问(读和写)

    如何拒绝访问使用 fstream 打开的文件 我想在使用 fstream 读取 写入文件时无法访问该文件 您无法使用标准 fstream 来做到这一点 您必须使用特定于平台的函数 在 Windows 上 您可以使用创建文件 http msd
  • 创建 Android 锁屏应用程序。

    如何创建一个锁屏应用程序作为 Android 手机的锁 我确实找到了一个 但它的代码构造很差 如果我按下物理主页键 它就会解锁 使应用程序毫无意义 我确实遇到过一个论坛 指出 Android 4 x 中删除了一些阻止 home 按钮功能的方
  • Google 日历 API - 设计用于?

    我想使用 FullCalendar Javascript 实现 Google Calendar API 在开始编码之前 我有一些问题需要了解 Google Calendar API 的主要用途 如您所知 在创建和启用 API 之前有一些身份
  • 如何在nextjs中添加字体ttf文件

    我是 Nextjs 的新手 我想将自定义字体添加到我的项目中 我完全不知道如何做到这一点 我的字体位于 public fonts 中 我的 global css 文件是这样的 html body padding 0 margin 0 fon
  • 如何在jquery中向FormData添加变量?

    实际上我正在使用以下脚本来发布我的表单 var formData new FormData form driver information 0 ajax type POST url data formData success functio
  • C 中的三重指针:这是风格问题吗?

    我觉得 C 中的三重指针被视为 坏 对我来说 有时使用它们是有意义的 从基础开始 单指针有两个目的 创建数组 并允许函数更改其内容 通过引用传递 char a a malloc or void foo char c means I m go
  • 我如何解密签名并添加到目标 c 中的 YouTube 提取 URL?

    我正在尝试在我的应用程序中播放 YouTube 视频 一切正常 但是当我尝试观看包含 YouTube 内容的视频时 它失败 我研究发现有人认为你应该加密和解密签名并将其添加到 URL 中 我不知道该怎么做decrypt signature
  • 在多个文件上循环一个函数

    我写了一个简单的函数 myfunction lt function fileName stringsAsFactors TRUE check names FALSE skip 1 Data lt read delim fileName sk
  • 更新 Microsoft Dynamics 365 CRM 中的多个记录的 Soap 请求

    我们试图在 CRM 中一次更新多个记录 但基于 wsdl 没有直接的方法可以做到这一点 一种方法是通过传递要更新的记录的 CRM ID 来更新 CRM 中的每条记录 然而 通过阅读文档 我们发现有一种方法可以运行 ExecuteMultip
  • System.IO.FileSystemWatcher 监视网络服务器文件夹 - 性能注意事项

    我想查看网络服务器上的文件夹树的更改 这些文件都有特定的扩展名 树中大约有 200 个文件夹和大约 1200 个带有我正在查看的扩展名的文件 我无法编写在服务器上运行的服务 禁止 因此解决方案必须位于客户端本地 及时性并不是特别重要 我可以
  • 键监听器与键绑定? [复制]

    这个问题在这里已经有答案了 可能的重复 比较 KeyListener 和 Key Bindings 之间的功能 https stackoverflow com questions 8664250 comparing functionalit
  • WCF路由——如何以编程方式正确添加过滤表

    我正在使用 WCF 4 路由服务 并且需要以编程方式配置该服务 而不是通过配置 我见过的这样做的例子很少见 创建一个 MessageFilterTable 如下 var filterTable new MessageFilterTable
  • 如何在 Android 中的列表视图中显示联系人(适用于 Android api 11+)

    如果这看起来像同一个问题一百万次 我很抱歉 但是谷歌搜索没有提供任何结果 只是一堆过时的教程使用managedQuery以及其他已弃用的解决方案 我经历了用于检索联系人列表的 Android 开发人员培训 http developer an
  • 有没有办法将operator.itemgetter与切片表示法一起使用?

    我在 python 列表中有一堆 numpy 数组lst 我可以对这些数组之一进行切片 通过使用以下命令对其进行索引来获取特定视图 1 例如 我需要将此切片操作应用于所有 numpy 数组lst 使用生成器理解 我可以这样做 my arra
  • Terraform - 迭代模板中的对象列表

    我在迭代由 解释的模板内的对象列表时遇到问题templatefile功能 我有以下变量 variable destinations description A list of EML Channel Destinations type li
  • 将参数放入webservlet的url中

    我正在使用 Webservlet 我想在 url 本身中传递参数 就像是 WebServlet profile id public class ProfileServlet extends HttpServlet Override publ