我想创建绞刑吏游戏,但我需要保存 session 和用户名,但传递用户名时遇到问题。我编写了 JSP、servlet 和 Javabean,但是在登录我的用户后,在下一个 View 中我只有 Welcome + NULL。请帮帮我。感谢您的帮助。
我不知道如何将名称传递给下一个 View 。
enter code here
<小时/>
这是 JavaBean(Userdata.java):
public class Userdata {
String userName;
public Userdata() {
}
public Userdata(String userName) {
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
<小时/>
这是servlet,在这段代码中我需要使用 session ,但我希望在用户登录的所有时间里,都可以看到他/她的名字
loginServlet.java
public class loginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse resp) throws
ServletException, IOException {
HttpSession session = request.getSession();
Userdata = new Userdata(usuari);
if(request.getParameter("username")!=null &&
!request.getParameter("username").trim().equals("") ){
usuari = new Userdata(request.getParameter("username"));
}
if(request.getParameter("logout")!=null){
session.invalidate();
}
request.setAttribute("username", username);
RequestDispatcher view = request.getRequestDispatcher("juego.jsp");
view.forward(request, resp);
}
}
<小时/>
最后是JSP中的 View ,第一个 View 是登录
名称:
反对:
这是 servlet -> juego.jsp 的响应
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Penjat</title>
</head>
<h2>Benvingut</h2>
<%=request.getAttribute("usuari")%>
<div align="center">
<h1>Joc del Penjat</h1>
</div>
<div align="center">
<!--Delaració d'imatges-->
<img src="Imatges/p_JEE_3.png">
</div>
<div align="center">
<!--Declaració de les lletres-->
Lletra:
<input type="text" name="lletra" size="1" maxlength="1">
<br/>
<p>
<input type="hidden" name="id" value=""/>
<input type="hidden" name="vegades_jugades" value=""/>
<input type="hidden" name="pistes" value=""/>
<input type="submit" name="boto_jugar" value="Jugar">
</p>
</div>
最佳答案
首先,您必须将用户名放入请求中,在您的 servlet 中按以下方式使用 request.setAttribute
request.setAttribute("username", value);
其中 value 恰好是您稍后要读取的对象。
稍后在不同的 servlet/jsp 中使用 request.getAttribute 作为
String value = (String)request.getAttribute("username")
或
<%= request.getAttribute("username")>
关于java - MVC 和 JSP 中的绞刑吏游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14922323/