package org.entity;public class Entity {
public Entity() {
} private int bookid;
private int bookno;
private String bookname;
private String search; public int getBookid() {
return bookid;
} public void setBookid(int bookid) {
this.bookid = bookid;
} public int getBookno() {
return bookno;
} public void setBookno(int bookno) {
this.bookno = bookno;
} public String getBookname() {
return bookname;
} public void setBookname(String bookname) {
this.bookname = bookname;
} public String getSearch() {
return search;
} public void setSearch(String search) {
this.search = search;
}}
package org.servlet;import java.awt.List;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;import org.DBconnection.DBconnection;
import org.entity.Entity;import com.sun.corba.se.pept.transport.Connection;import javax.mail.Session;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class Servlet extends HttpServlet { private static final HttpSession Session = null; /**
 * The doPost method of the servlet. <br>
 * 
 * This method is called when a form has its tag value method equals to
 * post.
 * 
 * @param request
 *            the request send by the client to the server
 * @param response
 *            the response send by the server to the client
 * @throws ServletException
 *             if an error occurred
 * @throws IOException
 * @throws Exception
 * @throws IOException
 *             if an error occurred
 */
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
String search = request.getParameter("search");
Entity entity = new Entity();
DBconnection dbconnection = new DBconnection();
try {
String sql = "select * from bookop where bookname = '" + search
+ " ' ";
ResultSet rs;
Statement stmt = null;
stmt = dbconnection.getDBconnection().createStatement();
rs = stmt.executeQuery(sql);
PrintWriter out = response.getWriter();
if (rs.next()) {
int bookid = rs.getInt("bookid");
int bookno = rs.getInt("bookno");
String bookname = rs.getString("bookname");
entity.setBookid(bookid);
entity.setBookno(bookno);
entity.setBookname(bookname);
request.getRequestDispatcher("/index.jsp").forward(request,
response);
} else {
request.getRequestDispatcher("/error.jsp").forward(request,
response);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} }
}
<%@ page language="java" import="java.util.*,org.entity.*"
pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'MyJsp.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<%
Entity entity = new Entity(); //这里该怎么写,才能让下面的红色bookname取到值?
%> </head>
<body>
<form method="post" action="Servlet" id="form1" name="form1">
<center>
<h1>
图书查询
</h1>
<table>
<tr>
<td>
图书名称
<input type="text" name="search" id="search">
</td>
<td>
<input type="submit" name="submit" value="查询">
</td>
<td>
<input type="reset" name="reset" value="重置">
</td>
</tr>
</table>
<table align="center" border="3" width="80%">
<tr align="center">
<td>
图书名称
</td>
</tr>
<tr align="center"> <td>
<%=bookname%>
</td>
</tr>
</table>
</center>
</form>
</body>
</html>

解决方案 »

  1.   

    String bookname=entity.getBookname();
      

  2.   

    不是怎么写的问题啦,兄弟你这么写实取不到数值的改下
    在servlet中增加:
    request.setAttribute("Entity",entity);
    在jsp中增加
    Entity entity = request.getAttribute("Entity");
    然后可以取值了:
    String bookName = entity.getBookname();
      

  3.   

    1、首先在你的Servlet中(你的Servlet命名不规范,应该是xxServlet),这样储存值:request.setAttribute("entity",entity);2、在jsp中,
    把这句话删除掉:
    Entity entity = new Entity();替换成:Entity entity = request.setAttribute("entity",entity)==null?new Entity():(Entity)request.setAttribute("entity",entity);<%=bookname%>
    处改为
    <%=entity.getBookname()%>
      

  4.   


    谢谢兄弟帮忙,可是改完之后,直接就页面报错了The server encountered an internal error () that prevented it from fulfilling this request.
      

  5.   


    我把上面那个改成这样Entity entity = (Entity)request.getAttribute("Entity");
    然后运行报错org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6259:  <tr align="center">
    60: 
    61:  <td>
    62:  <%=entity.getBookname()%>
    63:  </td>
    64:  </tr>
    65:  </table>
      

  6.   


    servlet中你有这样存储entity吗?
    request.setAttribute("Entity",entity);
      

  7.   

    把你查出来的对象 放到request.setAttribute();里面 然后在前台使用EL表达式显示出来。。
      

  8.   

    <%
    Entity entity1 = (Entity)request.getAttribute("entity1");
       
    %> </head>
    <body>
    <form method="post" action="SearchServlet" id="form1" name="form1">
    <center>
    <h1>
    图书查询
    </h1>
    <table>
    <tr>
    <td>
    图书名称
    <input type="text" name="search" id="search">
    </td>
    <td>
    <input type="submit" name="submit" value="查询">
    </td>
    <td>
    <input type="reset" name="reset" value="重置">
    </td>
    </tr>
    </table>
    <table align="center" border="3" width="80%">
    <tr align="center">
    <td>
    图书名称
    </td>
    </tr>
    <tr align="center"> <td>
    <%=entity1.getBookname()%>
    </td>
    </tr>
    </table>
    </center>
    </form>
    </body>
    </html> public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("utf-8");
    String search = request.getParameter("search");
    Entity entity = new Entity();
    DBconnection dbconnection = new DBconnection();
    HttpSession session = request.getSession();
    try {
    String sql = "select * from bookop where bookname = '" + search
    + " ' ";
    ResultSet rs;
    Statement stmt = null;
    stmt = dbconnection.getDBconnection().createStatement();
    rs = stmt.executeQuery(sql);
    PrintWriter out = response.getWriter();
    if (rs.next()) {
    int bookid = rs.getInt("bookid");
    int bookno = rs.getInt("bookno");
    String bookname = rs.getString("bookname");
    entity.setBookid(bookid);
    entity.setBookno(bookno);
    entity.setBookname(bookname);
    String booktest = entity.getBookname();
    request.setAttribute("entity1", entity);
    request.getRequestDispatcher("/index.jsp").forward(request,
    response);
    } else {
    request.getRequestDispatcher("/error.jsp").forward(request,
    response);
    }
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } }
    }报这个错误
    description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6259:  <tr align="center">
    60: 
    61:  <td>
    62:  <%=entity1.getBookname()%>
    63:  </td>
    64:  </tr>
    65:  </table>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  9.   


    你的index.jsp是哪一个页面?
      

  10.   


    我就这一个页面~~ 就是上面写的那个jsp
      

  11.   


    1、Servlet改成SearchServlet了。
    2、request.setAttribute("entity",entity);也改了,页面和servlet里都统一了。
    3、index.jsp就是上面贴出代码那个页面。
    4、这些都改了之后,报错了还是刚才那个错误。
    下面是错误提示。
    description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6259:  <tr align="center">
    60: 
    61:  <td>
    62:  <%=entity.getBookname()%>
    63:  </td>
    64:  </tr>
    65:  </table>

      

  12.   

    在servlet里直接写  request.setAttribute("bookname", bookname);就可以了
      

  13.   


    错误信息
    description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6259:  <tr align="center">
    60: 
    61:  <td>
    62:  <%=entity.getBookname()%>
    63:  </td>
    64:  </tr>
    65:  </table>
    Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    root cause java.lang.NullPointerException
    org.apache.jsp.index_jsp._jspService(index_jsp.java:122)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
      

  14.   

    晕,这么明显的错误,你都不知道。Entity entity1 = (Entity)request.getAttribute("entity1");
    这个不对。
    你看我给你写的,你都不好好看。
    要判断空。
    你好好看看我回复的。3楼的代码,再看看你写的。
      

  15.   


    sorry,不是我没照你的写,那个判断空值那个,写在页面上直接就报错了,我认为我传过来的是有值得。这是那个错误提示The operator != is undefined for the argument type(s) int,null
      

  16.   

    你我笔误,你都没发现?
    应该是如下的:
    Entity entity = request.setAttribute("entity1")==null?new Entity():(Entity)request.setAttribute("entity1");
    你就知道直接copy然后paste。
      

  17.   

    我才用过Bean来取值的,然后创建个ArrayList()集合,把值装里面,需要显示什么,就显示取出来用