繁体   English   中英

Servlet / JSP中的URL重写

[英]URL rewriting in Servlet/JSP

我知道response.sendRedirect()破坏了请求/响应对象,并且新请求被发送到资源。 因此,如果先前的请求/响应对象已被破坏,那么request.getParameter("")如何获取值。

NewFile.HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action ="MyServlet">
<label>Username</label>
<input type="text" name="textbox1"/><br>
<label>Password</label><input type="password" name="textbox2"/>
<input type="submit"/>    
</form>
</body>
</html>

Servlet

/**
 * Servlet implementation class MyServlet
 */
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String user = request.getParameter("textbox1");
String password = request.getParameter("textbox2");
if (user.equals("abc")&&password.equals("123"))
{
response.sendRedirect("NewFile.jsp?name="+user);
}
    }

        }

Newfile.jsp

<%= "hi there"+request.getParameter("name")  %>

我在这里重复了评论,所以您可以将您的问题标记为答案已解决:D

如果您正在谈论jsp获取参数“名称” ...,这仅仅是因为您已将请求直接放在url中(NewFile.jsp?name = xuser)。 如果没有,我不明白您的问题,请尝试更清楚

这是因为在第一个请求时,您将获得参数,然后发送重定向响应,如果您将在重定向页面或servlet上执行相同的操作,则将无法获得任何信息。 在您的情况下,您将发送带有值的参数名称,因此您将能够获取它。

转到您的“ NewFile.jsp”页面,在该页面的<%=request.getParameter("name")>. 它只会获取您在URL("NewFile.jsp?name="+user).传递的值URL("NewFile.jsp?name="+user).

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM