mysql - 使用 JSP 显示来自 MYSQL 的登录用户特定数据

标签 mysql jsp session jstl

我遇到了一个问题,我必须根据登录的用户来显示 MYSQL 评级表中存在的某些数据。

继承关系如下:

登录.jsp --> 检查.jsp --> 欢迎.jsp

我必须根据登录的用户在Welcome.jsp 上显示数据。我无法将用户参数获取到服务器作为显示用户特定数据的sql 查询的输入。这是我的文件。

登录.jsp

<%-- 
Document   : login
Created on : May 15, 2012, 10:36:24 AM
Author     : Diaa
--%>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<script>
function validate(){
var username=document.form.user.value;
var password=document.form.pass.value;
if(username==""){
alert("Enter Username!");
return false;
}
if(password==""){
alert("Enter Password!");
return false;
}
return true;
 }
</script>

    <div align="center">
   <div class='cssmenu'>
   <ul>
   <li class='active '><a href='index.jsp'><span>Home</span></a></li>
   <li><a href='login.jsp'><span>Login</span></a></li>
   <li><a href='index.jsp'><span>About</span></a></li>
    <li><a href='#'><span>Contact</span></a></li>
   </ul>
    </div>
    <form name="form" method="post" action="check.jsp" onsubmit="javascript:return  validate();">

<div align="center">
<h1>USER LOGIN</h1>
<table>
<tr><td bgcolor="#FF9900">Username:</td><td bgcolor="#33CCCC"><input type="text"  name="user"></td></tr>
<tr><td bgcolor="#FF9900">Password:</td><td bgcolor="#33CCCC"><input type="password" name="pass"></td></tr>
<tr><td></td><td><input type="submit" value="Submit"></td></tr>
</table>
</div>

检查.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@page import="java.sql.*"%>

<%
String user=request.getParameter("user");
String pass=request.getParameter("pass");
Class.forName("com.mysql.jdbc.Driver").newInstance();

 Connection  con=DriverManager.getConnection("jdbc:mysql://localhost:3306/recommend","root","root");  
       Statement st=con.createStatement();
       ResultSet rs=st.executeQuery("select UserID,password from Users where   UserID='"+user+"' and password='"+pass+"'");
      int count=0;
      while(rs.next())
      {

               count++;
      }

                if(count>0)
      {
        out.println("welcome "+user);
        response.sendRedirect("welcome.jsp?msg=welcome "+user +"   <a   href=\"index.jsp\">logout</a>");
        session.removeAttribute("user");
      }
      else
      {
                   response.sendRedirect("login.jsp?msg=Invalid Username or Password");
      }
      %>

欢迎.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>

   <%-- Database Interaction Queries Start --%>
   <% String user=(String)session.getAttribute(user); %>
   <sql:setDataSource var="genretype" driver="com.mysql.jdbc.Driver"
   url="jdbc:mysql://localhost/recommend"
   user="root"  password="root"/>

<sql:query dataSource="${genretype}" var="result">
SELECT * from Genres;
</sql:query>

<sql:query dataSource="${genretype}" var="result1">
SELECT * from Ratings where UserID = ?
<sql:param value="${user}"/>
</sql:query>

 <%-- Database Interaction Queries End --%>    



<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>Heading</title>
</head>
    <body>
    <div align="center">
    <div class='cssmenu'>
   <ul>
   <li class='active '><a href='index.jsp'><span>Home</span></a></li>
   <li><a href='login.jsp'><span>Login</span></a></li>
   <li><a href='index.jsp'><span>About</span></a></li>
   <li><a href='#'><span>Contact</span></a></li>
   </ul>
    </div>    
    <%String msg=request.getParameter("msg");
    if(msg!=null){
    %>

<label><font color="red"><%=msg%></font></label> 
<% 
}
 %>
    <h1>Sample Title</h1>
    <%--For Displaying Genre List Start --%>
    <div>
    <div align="left" position:absolute left:1200px>

             <c:forEach var="row" items="${result.rows}">
   <ul id="tab_nav">


   <li><c:out value="${row.GenreName}"/></li>

   </ul>

   </c:forEach>    

        </div>


    <div id="box" >

    <table border="1">
             <c:forEach var="row" items="${result1.rows}">

    <tr>
        <td><c:out value="${row.Rating}"/></td>              
        <td><c:out value="${row.UserID}"/></td>
        <td><c:out value="${row.GenreName}"/></td>
        <td><c:out value="${row.MovieName}"/></td>
    </tr>

  </c:forEach>    
  </table>
        </div>
    </div>
    </body>
  </html>

任何人都可以调查一下这个并让我知道我在这里缺少什么:(除了发布的代码之外,请随时询问任何其他信息。

手指交叉..等待帮助!!

干杯!

最佳答案

您不能将 HTML 附加到 sendRedirect() 方法调用的 URL 参数中。它可能存在编码问题,因此可能会失败:

response.sendRedirect("welcome.jsp?msg=welcome "+user +"   <a   href=\"index.jsp\">logout</a>");

这应该只是

response.sendRedirect("welcome.jsp?user=" + user);

消息在 JSP 中构造为

<c:if test="${not empty user}">
    <label><font color="red">Welcome ${user}</font></label><br />
    <a href="logout.jsp">logout</a>
</c:if>

如果这不能解决问题,请更新您的问题,说明应用程序的行为如何。您看到任何错误吗?您是否在任何地方记录异常?

关于mysql - 使用 JSP 显示来自 MYSQL 的登录用户特定数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18045825/

相关文章:

mysql - DELETE 查询仍在运行并且存在严重问题

java - Struts 如果将大十进制值 0.0 评估为 null

php - 在 PHP 中从 HTTP 切换到 HTTPS 时 session 丢失

mysql - Oracle 数据库 - count(0) 的运行速度是否比 rownum < 500 快

PHP 在插入数据库之前删除空行

html - CSS规则清理工具

java - 通过java类包含jsp文件

php - 为什么 localhost 与 127.0.0.1 关于 SESSIONS 的差异

PHP session 在前往另一个页面时无法识别变量

mysql - 在mysql中的两列之间交换数据