Servlet / JSP中的URL重写

时间:2014-02-01 09:22:19

标签: java jsp servlets

我知道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")  %>

3 个答案:

答案 0 :(得分:1)

我在此重复评论,以便您可以通过以下答案标记您的问题:D

如果你在谈论你的jsp获取参数“name”......那只是因为你已经将请求直接放在url中(NewFile.jsp?name = xuser)。如果没有,我不明白你的问题,请尽量清楚

答案 1 :(得分:0)

  这是因为在第一次请求时,你正在获取参数,之后你发送重定向响应,如果你在重定向页面或servlet上做同样的事情,你将无法得到任何东西。在您的情况下,您将发送带有值的参数名称,因此您将能够获得它。

答案 2 :(得分:-1)

转到你的&#34; NewFile.jsp&#34;页面,在该页面中<%=request.getParameter("name")>. 它只会获得您在URL("NewFile.jsp?name="+user).

中传递的值