Java网站:使用RequestDispatcher发送POST数据

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

我在Java Web项目中处于最基本的位置,并停留在登录页面上。我正在使用.jsp进行登录(对于小项目来说,这是不好的做法吗?),并且在输入用户名后,该页面应该发送到创建基本游戏的servlet,然后发送到另一个将显示的.jsp它。

但是,我试图使用RequestDispatcher从login.jsp重定向到servlet,然后从servlet重定向到显示页面(另一个.jsp),但我似乎找不到如何发送POST数据的方法。使用RequestDispatcher,并且如果我无法发送POST数据,我不知道该servlet应该如何响应(servlet仅执行GET和POST,对吧?)。

这是我的login.jsp代码:

<%@page contentType="text/html" pageEncoding="UTF-8" %>
<%@page import="login.User" %>

<% 
String username = request.getParameter("username");
if (username != null)
{
    session.setAttribute("username", username);
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/WEB-INF/classes/create");
    dispatcher.forward(request,response);
}
%>  

<!DOCTYPE html>
    <html lang="en">
        <head>
            <title>
                Login
            </title>
        </head>
        <body>
            <h1>Home</h1>
            <h3>Please enter a username to log in:</h3>
            <form id="login" method="POST" action="create">
                Username: <input type="text" id="username" name="username" />
                <br />
                <br />
                <input type="submit" id="submit" name="submit" value="submit" />
                &nbsp;
                <input type="button" id="clear" name="clear" value="clear" />
            </form>
        </body>
    </html>

我的servlet有很多代码,对于我的示例来说可能是不必要的,但是如上所述,我正在使用POST方法。 servlet本身似乎也可以正常工作。

是否有一种方法(或更好的方法)可以完成我在这里试图做的事情?还是应该通过RequestDispatcher发送GET参数?还是应该使用发送到servlet的.htm登录页面?我正在尝试使用MVC原理构建项目。

java servlets
1个回答
0
投票

无论如何,这些值始终保持在渗透状态,因此无需将调用发送到另一页,只需在重定向后读取另一页中的渗透值即可。

所以在其他JSP中,从会话中读取值。确保在登录jsp中填写会话中的所有值

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