实验五 JSP+Servlet+JavaBean 综合应用
实验内容:
实现图书信息录入及展示功能
将页面 book.jsp 中表单的信息提交给 BookServlet.java,由 Servlet 将接收到
的信息创建成一个 BookBean 的对象,并将该对象封装到 request 中,并在 show.jsp
中显示提交的信息。
实验效果:
初始界面:
数据库:
成功界面:book.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="bookServlet" method="post">
图书名称: <input type="text" name="bookName" id="bookName"><br/>
出版社: <input type="text" name="bookPublisher" id="bookPublisher"><br/>
图书简介:<input type="text" name="bookDescription" id="bookDescription">
<br/> <input type="submit" value="提交">
</form>
</body>
</html>
bookServlet
package Servlet;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import DButils.DBUtil;
import book.BookDao;
import book.book;
@WebServlet("/bookServlet")
public class bookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
try {
String bookName=request.getParameter("bookName");
String bookPublisher=request.getParameter("bookPublisher");
String bookDescription=request.getParameter("bookDescription");
book b = new book();
b.setbookName(bookName);
b.setbookPublisher(bookPublisher);
b.setbookDescription(bookDescription);
DBUtil.saveBook(b);
request.getSession().setAttribute("book", b);
request.getRequestDispatcher("show.jsp").forward(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>书名:${book.bookName}</h1>
<h1>出版社:${book.bookPublisher}</h1>
<h1>书本描述:${book.bookDescription}</h1>
<h1>插入成功!!!</h1>
</body>
</html>
DButils.java
package DButils;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mysql.jdbc.Connection;
import book.book;
public class DBUtil
{
static
{
try
{
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
public static Connection getConnection()
{
java.sql.Connection connection = null;
try
{
String url = "jdbc:mysql://localhost:3308/mydb?useUnicode=true&characterEncoding=utf-8";
// 数据库用户名
String usename = "root";
// 数据库密码
String psw =null;
// 创建Connection连接
connection = DriverManager.getConnection(url,usename,psw);
} catch (SQLException e)
{
e.printStackTrace();
}
return (Connection) connection;
}
public static void closeConnection(Connection connection)
{
try
{
if(connection != null)
{
connection.close();
connection = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static PreparedStatement preparedStatement(Connection connection,String sql)
{
PreparedStatement preparedStatement = null;
try
{
preparedStatement = connection.prepareStatement(sql);
} catch (SQLException e)
{
e.printStackTrace();
}
return preparedStatement;
}
public static void closePreparedStatement(PreparedStatement preparedStatement)
{
try
{
if(preparedStatement != null)
{
preparedStatement.close();
preparedStatement = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static Statement createStatement(Connection connection)
{
Statement statement = null;
try
{
statement = connection.createStatement();
} catch (SQLException e)
{
e.printStackTrace();
}
return statement;
}
public static void closeStatement(Statement statement)
{
try
{
if(statement != null)
{
statement.close();
statement = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
public static ResultSet getResultSet(Statement statement,String sql)
{
ResultSet resultSet = null;
try
{
resultSet = statement.executeQuery(sql);
} catch (SQLException e)
{
e.printStackTrace();
}
return resultSet;
}
public static void closeResultSet(ResultSet resultSet)
{
try
{
if(resultSet != null)
{
resultSet.close();
resultSet = null;
}
} catch (SQLException e)
{
e.printStackTrace();
}
}
//构造在数据库中存储User的方法
public static void saveBook(book b)
{
Connection connection = null;
PreparedStatement preparedStatement = null;
try
{
connection = DBUtil.getConnection();
String sql = "insert into books values(?,?,?)";
preparedStatement = DBUtil.preparedStatement(connection, sql);
preparedStatement.setString(1, b.getbookName());
preparedStatement.setString(2, b.getbookPublisher());
preparedStatement.setString(3, b.getbookDescription());
preparedStatement.executeUpdate();
} catch (SQLException e)
{
e.printStackTrace();
}
}
}
CharacterEncodingFilter.java
package DButils;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebInitParam;
/**
* Servlet Filter implementation class CharacterEncodingFilter
*/
@WebFilter(
urlPatterns= {"/*"},
initParams= {
@WebInitParam(name="encoding",value="utf-8")
}
)
public class CharacterEncodingFilter implements Filter {
protected String encoding ;
/**
* Default constructor.
*/
public CharacterEncodingFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
if( encoding !=null) {
request.setCharacterEncoding(encoding);
}
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
this.encoding=fConfig.getInitParameter("encoding");
}
}
book.java
package book;
public class book {
public String bookName;
public String bookPublisher;
public String bookDescription;
public String getbookName() {
return bookName;
}
public void setbookName(String bookName) {
this.bookName = bookName;
}
public String getbookPublisher() {
return bookPublisher;
}
public void setbookPublisher(String bookPublisher) {
this.bookPublisher = bookPublisher;
}
public String getbookDescription() {
return bookDescription;
}
public void setbookDescription(String bookDescription) {
this.bookDescription = bookDescription;
}
}
文件部分: