【发布时间】:2015-11-22 14:29:46
【问题描述】:
我使用带有文本字段的 html 页面,您必须在其中输入您的姓名,然后单击登录按钮。 在同一页上是一个包含所有名称的列表。 现在我必须通过单击登录按钮将名称发送到 servlet。 servlet 必须将名称添加到播放器列表中。
servlet 已经接收到输入的名称,但它会将其发布到新的 HTML 页面上。如何更改代码以便将名称添加到同一 HTML 页面上的播放器列表中,而不是新页面上?
@WebServlet("/Playerlist")
public class Playerlist extends HttpServlet {
private static final long serialVersionUID = 1L;
public Playerlist() {
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
PrintWriter out = response.getWriter();
out.println("<html><Body>Hallo" + name + "</body></html>");
out.flush();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
文本字段:
<div id= "loginFormular" >
<form action="Playerlist" method="get" >
<label>
Name:
<input class="textbox" id="loginbox" type="text" name="name" size="30" maxlength="30">
</label>
<br>
<input id=buttonLogin class="loginbutton" type="submit" value="Login" name="loginname" />
<input id=startButton class="loginbutton" type="submit" value="Start" onclick="showQuestion()" />
</form>
</div>
播放列表:
<div class="highscore" style="float:right">
<h4>
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>
<span>Highscore</span>
</h4>
<hr/>
<table id="highscoreTable" class="table table-hover">
<thead>
<tr>
<td>Player</td>
<td>Score</td>
</tr>
</thead>
<tbody id="tablePlayerlistBody">
</tbody>
</table>
</div>
我知道有更好的方法来代替使用 servlet,但我必须这样做。
【问题讨论】:
-
可以发html页面吗
-
我用 HTML 部分编辑了起始帖子
-
您的 serlvet 的 url-pattern 是
/Playerlist,您的表单使用的是Playerlist -
你的意思是因为“/”吗?这不会改变任何事情。它仍然在新的 HTML 页面上发布输入的名称。
-
你的页面太静态了,无法做你想做的事情。