java - MVC 和 JSP 中的绞刑吏游戏

标签 java jsp servlets

我想创建绞刑吏游戏,但我需要保存 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/

相关文章:

java - 从网页中的 java servlet 检索数据

java - 记录可用/必需的 Java 属性文件内容的最佳实践

java - 我无法使用 spring mvc 和 jsp 访问我的 web 应用程序中的 js 和 css 资源

java - 使用 Jsp Servlet 中的 bootstrapValidator 远程检查数据库中的电子邮件可用性

jsp - Glassfish 4.1 错误 : session. 使空指针异常无效

java - 使用 FOR 循环捕获相同数字的倍数

java - 未找到类异常,但它位于同一个包中

java - 如何使用 Buildr 有条件地将两个文件之一包含在 .war 包中?

java - Eclipse 调试器跳转到错误的返回语句

java - onCreateLoader 和 onLoadFinished 不同步