从一个jsp到另一个jsp的转发请求

问题描述 投票:0回答:1

我有一个带有按钮的jsp页面“ one.jsp”。在单击按钮时,我想使用相同的请求对象调用“ two.jsp”。我尝试了几种选择:-1)单击按钮后,将请求发送到servlet,该servlet在请求分配器的帮助下将请求转发到“ two.jsp”,但无法使用“ one.jsp”使用的请求对象参数。2)建立活动链接并使用response.sendredirect(),但这会创建一个新请求。我在互联网上搜索并获得了<jsp:forward page="two.jsp">,但我不知道如何在单击按钮时向前执行jsp。

jsp java-ee servlets jsp-tags
1个回答
0
投票

one.jsp

   <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="servletToJsp">
<input type="submit"></button>
</form>
</body>
</html>

two.jsp

 <html>
<body bgcolor="white">
<h1> I have been invoked by 
<% 
out.print(request.getAttribute("servletName").toString());
%>
Servlet
</body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WebPrj</display-name>
  <servlet>
    <description></description>
    <display-name>servletToJsp</display-name>
    <servlet-name>servletToJsp</servlet-name>
    <servlet-class>com.servletToJsp</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servletToJsp</servlet-name>
    <url-pattern>/servletToJsp</url-pattern>
  </servlet-mapping>
</web-app>

com包内的servletToJsp.java

package com;

 import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
public class servletToJsp extends HttpServlet {

  public void doGet(HttpServletRequest request, HttpServletResponse response){
    request.setAttribute("servletName", "servletToJsp");

    try {
      getServletConfig().getServletContext().getRequestDispatcher(
        "/two.jsp").forward(request,response);

    } catch (ServletException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

}
© www.soinside.com 2019 - 2024. All rights reserved.