1

ハングマンゲームを作成したいのですが、セッションとユーザー名を保存する必要がありますが、ユーザー名を渡すのに問題があります。JSP、サーブレット、およびJavabeanを作成しましたが、ユーザーにログインした後、次のビューではWelcome+NULLしかありません。お願い助けて。助けてくれてありがとう。

名前を次のビューに渡す方法がわかりません。

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;
}
}


これはサーブレットです。このコードではセッションを使用する必要がありますが、ユーザーがログに記録している間は常に、ユーザーの名前を確認できます。

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のビュー。最初のビューはログインです。

Nom de jugador:

Contrasenya:

そして、これはサーブレットの応答です-> 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>

4

2 に答える 2

0

まず、リクエストにユーザー名を入力する必要があります。サーブレットでは、次のようにrequest.setAttributeを使用します。

request.setAttribute("username", value);

ここで、valueは、後で読みたいオブジェクトです。

後でrequest.getAttributeを使用して別のサーブレット/jspで使用します。

String value = (String)request.getAttribute("username")

また

<%= request.getAttribute("username")>
于 2013-02-17T15:08:22.403 に答える
0

あなたの助けに感謝します、今私は理解しました、私は修正しました、そして今私はユーザー名を得ることができます。

@Override protected void doPost(HttpServletRequest request、HttpServletResponse resp)throws
ServletException、IOException {HttpSession session = request.getSession();

    Userdata usuari = new Userdata();

    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", usuari);
    RequestDispatcher view = request.getRequestDispatcher("juegoOriginal.jsp");
    view.forward(request, resp);
}

于 2013-02-18T23:16:25.493 に答える