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>
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>
在servlet中增加:
request.setAttribute("Entity",entity);
在jsp中增加
Entity entity = request.getAttribute("Entity");
然后可以取值了:
String bookName = entity.getBookname();
把这句话删除掉:
Entity entity = new Entity();替换成:Entity entity = request.setAttribute("entity",entity)==null?new Entity():(Entity)request.setAttribute("entity",entity);<%=bookname%>
处改为
<%=entity.getBookname()%>
谢谢兄弟帮忙,可是改完之后,直接就页面报错了The server encountered an internal error () that prevented it from fulfilling this request.
我把上面那个改成这样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>
servlet中你有这样存储entity吗?
request.setAttribute("Entity",entity);
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)
你的index.jsp是哪一个页面?
我就这一个页面~~ 就是上面写的那个jsp
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>
错误信息
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)
这个不对。
你看我给你写的,你都不好好看。
要判断空。
你好好看看我回复的。3楼的代码,再看看你写的。
sorry,不是我没照你的写,那个判断空值那个,写在页面上直接就报错了,我认为我传过来的是有值得。这是那个错误提示The operator != is undefined for the argument type(s) int,null
应该是如下的:
Entity entity = request.setAttribute("entity1")==null?new Entity():(Entity)request.setAttribute("entity1");
你就知道直接copy然后paste。