servlet.java
package zhbit.servlet ;
import java.io.* ;
import java.util.* ;import javax.servlet.* ;
import javax.servlet.http.* ;
import zhbit.factory.* ;
import zhbit.vo.* ;
public class userServlet extends HttpServlet {
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
String path = "userInfo.jsp" ;
String name = req.getParameter("name") ;
List<String> info = new ArrayList<String>() ;
try{
      List<User> lst2 = DAOFactory.getIUserDAOInstance().findAll();  
      info.add(
      "<table > <tr> <th>用户ID</th><th>用户名</th><th>密码</th></tr><c:forEach items=\"${lst2}\" var=\"lst2\">" +
      "<tr> <td>${lst2.userid}</td> <td>${lst2.name}</td> <td>${lst2.password}</td><td> </td> </tr> </c:forEach> </table> ");
      req.setAttribute("info",info) ;
          req.getRequestDispatcher(path).forward(req,resp) ;
}catch(Exception e){
e.printStackTrace() ;
}
}
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
this.doGet(req,resp) ;
}
}info.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html>
  <head>
   
  </head>
  
  <body>
   <form action="userServlet" method="post" onSubmit="return validate(this)">
用户名:<input type="text" name="name">
<input type="submit" value="查询">
</form>     <%
List<String> info = (List<String>) request.getAttribute("info") ;
if(info != null){ // 有信息返回
Iterator<String> iter = info.iterator() ;
while(iter.hasNext()){
%>
<h4><%=iter.next()%></h4>
<%
}
}
%>
     
  </body>
</html>

解决方案 »

  1.   

    servlet.java
    package zhbit.servlet ;
    import java.io.* ;
    import java.util.* ;import javax.servlet.* ;
    import javax.servlet.http.* ;
    import zhbit.factory.* ;
    import zhbit.vo.* ;
    public class userServlet extends HttpServlet {
    public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
    String path = "userInfo.jsp" ;
    String name = req.getParameter("name") ;
    try{
          List<User> lst2 = DAOFactory.getIUserDAOInstance().findAll();  
          req.setAttribute("info",lst2) ;
          req.getRequestDispatcher(path).forward(req,resp) ;
    }catch(Exception e){
    e.printStackTrace() ;
    }
    }
    public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
    this.doGet(req,resp) ;
    }
    }info.jsp
    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><html>
      <head>
       
      </head>
      
      <body>
       <form action="userServlet" method="post" onSubmit="return validate(this)">
    用户名:<input type="text" name="name">
    <input type="submit" value="查询">
    </form>
    <table > <tr> <th>用户ID</th><th>用户名</th><th>密码</th></tr>
         <%
    List<User> info = (List<User>) request.getAttribute("info") ;
    if(info != null){ // 有信息返回
    Iterator<User> iter = info.iterator() ;
    while(iter.hasNext()){
    out.println("<tr><td>" + user.getUserid() + "</td><td>" + user.getName() + "</td><td>" + user.getPassword() + "</td></tr>");
    %>
    </table>
    <%
    }
    }
    %>
         
      </body>
    </html>不知道你的info和info.jsp是干嘛的,你这样写有点乱.我改了一下你看看行不行。像这种<c:forEach>标签,${lst2.password}这种符号只能在jsp中使用。因为你的jsp代码中已经有java代码了,所以循环我也用的java,没用标签。你再看一看jsp的内容,jsp中完全可以不使用java代码的。
      

  2.   

    (1)添加链接到Welcom.jsp页面
    (2)添加新的页面 userInfo.jsp和 userServlet.java(servlet页面)页面
    (3)修改IUserDAO、 UserDAOImpl、 UserDAOProxy 类,添加findAll()方法实现查询数据库。
    (4)实现根据用户名,显示不同内容。
     如果是administrator用户,将用户ID、用户名、密码都显示出来。
     如果是非administrator用户,只将用户ID、用户名显示出来。
    上面是要求。
    我想的是通过servlet就判断出是否administrator用户,并且向JSP返回对应的值。
    现在我是建立了两个findAll()查询数据库的方法,在servlet上根据用户名来判断执行那个findAll()方法。
    有没有更好的方法去完成。只建立一个findAll(),通过servlet判断并返回不同的值。
      

  3.   

    输入用户名密码登录以后跳转到userServlet.userServlet.java
    首先验证用户名密码对不对,不对跳转回登录页,对了把查出来的对象放到session里,然后调用List<User> lst2 = DAOFactory.getIUserDAOInstance().findAll(); req.setAttribute("info",lst2) ;不用写两个findAll().然后req.getRequestDispatcher("userInfo.jsp").forward(req,resp) ;userInfo.jsp
    检查是否已经登录...
    <table>
             <tr>
                     <th>用户ID</th><th>用户名</th><c:if test="${sessionScope.user.power == }"> <th>密码</th> </c:if>         </tr>
    <c:forEach var="user" items="${requestScope.info}">
              <td>${user.userid}</td>
              <td>${user.name}</td>
              <c:if test="${sessionScope.user.power == }"> 
                           <td>${user.password}</td>
              </c:if>
               <tr/>
            </c:forEach>
    标记红的自己写吧,不知道你的权限是怎么判断的。
      

  4.   

    java类修改

    info.add(
          "<table > <tr> <th>用户ID</th><th>用户名</th><th>密码</th></tr><c:forEach items=\"${lst2}\" var=\"lst2\">" +
          "<tr> <td>${lst2.userid}</td> <td>${lst2.name}</td> <td>${lst2.password}</td><td> </td> </tr> </c:forEach> </table> ");
          req.setAttribute("info",info) ;
    修改为
     req.setAttribute("listUser ",lst2) ;
    jsp页面<table> 
    <tr> 
    <th>用户ID</th>
    <th>用户名</th>
    <th>密码</th>
    </tr>
    <%
    List<User> listUser = (List<User>) request.getAttribute("listUser") ;
    if(listUser != null){ // 有信息返回
    for(User user : listUser){
    %>
    <tr>
    <th><%=user.getUserId() %></th>
    <th><%=user.getName() %></th>
    <th><%=user.getPassword() %></th>
    </tr>
    <%
    }
    }
    %>
    </table>