servlet就像:

String rootJspPath = "/WEB-INF/jsp"
String page = request.getParameter("pageName")!=null?request.getParameter("pageName").toString();

String forwardPage = rootJspPath + "/" + page ;
request.getRequestDispatcher(forwardPage).forward(request, response); 

在Web.xml中

<servlet>
    <servlet-name>ForwardServlet</servlet-name>
    <display-name>ForwardServlet</display-name>
    <servlet-class>common.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ForwardServlet</servlet-name>
    <url-pattern>/page</url-pattern>
</servlet-mapping>

现在使用Servlet控制器进行呼叫转移

<a href="/page/common/Welcome.jsp">click here</a>

请提出一种方便的呼叫方式。

#1楼 票数:0 已采纳

我建议:

<servlet>
    <servlet-name>ForwardServlet</servlet-name>
    <display-name>ForwardServlet</display-name>
    <servlet-class>common.ForwardServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ForwardServlet</servlet-name>
    <url-pattern>/page/*</url-pattern>
</servlet-mapping>

用于您的映射,以及

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(req.getPathInfo());

    dispatcher.forward(req,resp);
}

然后创建common文件夹,并将Welcome.jsp放入其中。

问题不是最清楚的:这是您想要的吗?

编辑:另外,您可能应该在req.getPathInfo()上进行一些路径验证,以避免人们尝试使用..字符进行目录跳转,尽管就我所知,较新的Java应用程序服务器会自动捕获此类缺陷。

#2楼 票数:0

根据您的Servlet的工作情况:

<a href="/page/common/Welcome.jsp">click here</a>

应该

<a href="/page?pageName=common/Welcome.jsp">click here</a>

它将在WEB-INF/jsp/common文件夹中查找Welcome.jsp。

  ask by Sweety translate from so

未解决问题?本站智能推荐:

3回复

jsp页面(视图)和servlet(控制器)之间的事务排序

我正在使用servlet一段时间,并试图弄清楚视图如何与Servlet通信,更准确地说,我在谈论HttpSession,HttpServletRequest和HttpServletResponse类的实例。 1)在我的jsp文件中,我有以下代码行: <% CategorieFor
1回复

使用控制器servlet过滤使用情况

对于带有JSP和servlet的非常简单的MVC,过滤器的功能是什么? 下面的示例中有一个控制器servlet,然后,我想每个JSP都会呈现一个不同的视图。 Servlet主要与模型交互,模型是具有用户列表的属性文件。 但是, login.jsp将使令牌(会话Bean)突变。 我
2回复

Servlet 控制器 - 使用参数重定向

我正在使用 Spring MVC Web 应用程序:Servlet + JSP + Hibernate。 这是我的CustomerController.java的一部分 这是要显示的CustomerList.jsp文件中的代码: 我想重定向到/CustomerList并包含参数error +
1回复

从带有参数的控制器调用servlet

我正在编写一个jsp文件,以使用一些参数来调用控制器。 从这个控制器,我想通过传递来自控制器的值来调用servlet。 在servlet中,我应该可以访问参数。 是否可以通过控制器将值从jsp转发到servlet?
3回复

多个servlet,或仅一个主控制器

考虑一个Web应用程序,它具有一些主要功能,例如注册功能,登录功能,并且一旦用户登录,就具有CRUD操作功能。 我的问题是,我有多个处理每个特定任务的servlet,还是将它们全部分组到一个与数据访问对象通信的主Controller servlet中。 我不想使用任何预先存在的框架,也不
1回复

如何使用RequestDispatcher从Servlet转发到内部页面链接

我有一个jsp页面,在页面中间有一个下拉控件。 当用户更改下拉菜单的选择时,页面将提交给Servlet,然后转发回同一页面,其中包含有关要显示的用户选择的详细信息。 我希望页面自动导航回下拉菜单,而用户不必自己滚动回去。 在检索适当数据的代码之后的servlet中,我具有: 我
2回复

在HTML div中从Servlet转发页面

我试图使我的页面更高效,所以出现了如下问题: 是否可以将带有RequestDispatcher的新Jsp页面转发到Servlet的HTML div中? 像这样: someServlet.java page.jsp
1回复

如何使用请求分派器多次将数据从Servlet转发到jsp。

如何使用请求分派器多次将数据从Servlet转发到jsp。 我已经尝试在servlet中使用带有请求调度程序的计时器将更新的数据从数据库转发到jsp页面以显示结果。