当前位置: 首页 > 面试题库 >

转发到JSP时如何检测Java Servlet中的URL?

司徒宏远
2023-03-14
问题内容

我有一个看起来像这样的servlet:

public class ExampleServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().println(request.getPathInfo());
    }
}

使用web.xml映射,例如:

<servlet>
    <servlet-name>example</servlet-name>
    <servlet-class>com.example.ExampleServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>example</servlet-name>
    <url-pattern>/example/*</url-pattern>
</servlet-mapping>

它确实提供了我所期望的…如果我访问http:// localhost:8080 / example / foo,它将显示“ / foo”。但是,如果我将servlet更改为转发到JSP文件:

public class ExampleServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // do something here to check the value of request.getPathInfo()
        request.getRequestDispatcher("whatever.jsp").forward(request, response);
    }
}

然后,当我检查getPathInfo()的值时,它现在报告“ whatever.jsp”而不是“ foo”。

为什么在将其转发给JSP之前进行了更改?
如何检测用户正在寻找的URL?
编辑:以防万一,这是在Google App Engine上。不要以为应该。


问题答案:

这个问题模棱两可(这个servlet是否再次在每个转发中都调用它?),但这听起来很像您所需要的request.getAttribute("javax.servlet.forward.request_uri")



 类似资料:
  • viewServlet.java: 我的目标是将'viewservlet.java'中的html代码编写为'result.jsp'中的纯html代码。 我所期望的是,如果我用jsp编写纯html代码,那么所有的记录都将从“MySQL”中检索,将显示在viewservlet.java中。如果我想要编辑,那么删除将发生在“viewservlet.java”中 我尝试了Request.GetAttrib

  • 如何在jsp中获得确认异常类型。我已经使用ex.printStackTrace(response.getWriter())方法打印了,但向用户显示异常不是专业的方式。 假设我得到了连接表达式。它到达异常,但会直接将异常写入HTML文档。它不会给出/返回值。我想向用户显示专业错误,比如,但不要显示太多行代码。

  • 我正在做一个简单的表单验证。我无法转发到jsp页面。请参阅下面的代码。行B和行C工作正常,但行A产生错误 行B和行C成功地转到请求的页面,但行A产生此错误

  • 问题内容: 我对此一无所知,我试图在JSP中转义一个引号。我有一些数据直接输出到JS字符串中,单引号似乎引起了问题。 这是我的代码: 这是我得到的输出: 但这是错误的,我只需要或根本不需要单引号! 编辑 :还是我实际上需要用反斜杠转义引号? 问题答案: 正斜杠不是转义字符。那是反斜杠。 (是的,它已经被介绍过两次了,因为这 也是 Java中的转义字符!) 但是,你不要只需要repace的,你还需要

  • 我有显示iBeacon信息的文本视图(例如uuid、major、minor等)和一个用于启动/停止扫描的检测/停止按钮。当我在iBeacon关闭的情况下按下按钮开始扫描时,应用程序没有显示预期的内容。但是,当我在iBeacon打开时开始扫描,然后在扫描时关闭iBeacon时,应用程序仍会显示信息,就好像它仍在检测iBeacon一样。当应用程序在信标打开的情况下扫描BLE时,它会给出 D/Bluet

  • 我有一个小应用程序(HTML表单、servlet作为控制器和jsp文件),我试图弄清楚为什么我不能将请求从servlet转发到jsp文件。 问题是从html提交后,显示“HTTP状态404” null 谢谢! 项目层次结构:http://s23.postimg.org/kgt7r7lwb/capture.jpg main.html: 更新:问题可能出在Controller.java。当我尝试下面的