首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP使用当前用户的数据

问JSP使用当前用户的数据
EN

Stack Overflow用户
提问于 2015-11-05 19:56:27
回答 1查看 1.1K关注 0票数 0

所以我尝试做的是让另一个JSP来获取刚刚登录的用户的信息(例如,只显示刚刚登录的特定用户的信息,而不是显示数据库中的所有内容,这与SELECT * username= user WHERE current user含义相同)。不管怎样,下面是我的代码,非常感谢!

代码语言:javascript
复制
<%  
    String userId = request.getParameter("user_id");
    String pwd = request.getParameter("password");
%>
<jsp:useBean id="db" class="ecom.DBConnection" scope="session" />
<jsp:useBean id="user" class="ecom.UserInfo" scope="session" />
<%
Connection conn = db.getConnection(); 

PreparedStatement pstmt = conn.prepareStatement(
    "select * from USERS where user_id=? and password=?");

pstmt.setString(1, userId);
pstmt.setString(2, pwd);    

ResultSet rs = pstmt.executeQuery();    


/* Comment  
    Set the user bean properties if login is successful */
if (rs.next()) {
    user.setLoggedIn(true);
    user.setUserId(rs.getString("user_id"));

} else {
    user.setLoggedIn(false);
}   

rs.close();
pstmt.close();


/* Comment 
    Forward the request to "home.jsp" if login is successful,
    otherwise forward to "error.jsp". */
String forwardURL = null;   
if (user.isLoggedIn()) {
    forwardURL = "home.jsp";
} else {
    forwardURL = "error.jsp";
} 
%>

<jsp:forward page="<%= forwardURL %>" />

这是我正在处理的页面(Setting.jsp)

代码语言:javascript
复制
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<jsp:useBean id="user" class="ecom.UserInfo" scope="session" />

<c:if test='${not user.loggedIn}'>
 <jsp:forward page='error.jsp'/>
</c:if>


<html>

<head>
<link href="style.css" rel="stylesheet" type="text/css"></link>
<title>Jonathan's Auction Site</title>
</head>


<body marginwidth="0" marginheight="0" leftmargin="0" rightmargin="0"    topmargin="0" bottommargin="0">

<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td bgcolor="#000000">Jonathan's Auction Site</td>
    </tr>

    <tr>
        <td bgcolor="#cccccc" height="18" class="menu">
        <font color="#ffffff">|</font> <B><a class="menu" href="home.jsp">Home</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="register.jsp">Register</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="Post.jsp">Post Items</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="browseItems.jsp">Browse Items</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="manageItems.jsp">Manage Items</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="setting.jsp">Account Settings</a></B>
        <font color="#ffffff">|</font> <B><a class="menu" href="logout.jsp">Logout</a></B>
        <font color="#ffffff">|</font>
        </td>
    </tr>
</table>


<%@ taglib prefix='sql' uri='http://java.sun.com/jsp/jstl/sql' %>

<sql:setDataSource 
        driver='com.mysql.jdbc.Driver'
        url='jdbc:mysql://************'
        user='USER'
        password='Password'
        var='030'
        scope='session'
/>      


<%
String userId = request.getParameter("user_id");
%>

<sql:query dataSource='${030}' var='USERS'>
SELECT * FROM USERS
</sql:query>


<table width="63%" border="0">
  <tr> 
    <td width="16%" height="46">&nbsp;</td>
    <td width="73%" height="46"> 
      <p>&nbsp;</p>
      </td>
    <td width="11%" height="46">&nbsp;</td>
  </tr>


<c:forEach var='USERS' items='${USERS.rows}'>

  <tr> 
    <td width="16%">&nbsp;</td>
    <td width="73%"> 
        <table width="352" border="1">
            <tr>
                <td>
                    <h3>${USERS.user_id}</h3>
                </td>
            </tr>
      </table>
      </form>   
    </td>
    <td width="11%">&nbsp;</td>
  </tr>
  <tr> 
    <td width="16%">&nbsp;</td>
    <td width="73%">&nbsp;</td>
    <td width="11%">&nbsp;</td>
  </tr>

</c:forEach>


  <tr> 
    <td width="16%">&nbsp;</td>
    <td width="73%">&nbsp;</td>
    <td width="11%">&nbsp;</td>
  </tr>
  <tr> 
    <td width="16%">&nbsp;</td>
    <td width="73%" align="center">&nbsp;</td>
    <td width="11%">&nbsp;</td>
  </tr>

</table>
<p>&nbsp;</p>
</body>

</html>

(现在它会显示数据库中的所有用户名,但我只想要一个与登录的用户名相同的用户名)

EN

回答 1

Stack Overflow用户

发布于 2015-11-09 18:44:22

看起来你需要在这里修改Setting.jsp:

代码语言:javascript
复制
<sql:query dataSource='${030}' var='USERS'>
SELECT * FROM USERS
</sql:query>

如果唯一的问题是它列出了您的所有用户,而不是会话中的用户,那么添加WHERE USER.ID = ? (或您的id列)并将其注册为一个参数,类似于您的工作JSP:

代码语言:javascript
复制
PreparedStatement pstmt = conn.prepareStatement(
    "select * from USERS where user_id=?");

pstmt.setString(1, userId);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33543934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档