GVKun编程网logo

jsp+servlet+javabean实现数据分页方法完整实例(jsp中实现数据分页显示的必要步骤)

1

想了解jsp+servlet+javabean实现数据分页方法完整实例的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于jsp中实现数据分页显示的必要步骤的相关问题,此外,我们还将为您介绍关于

想了解jsp+servlet+javabean实现数据分页方法完整实例的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于jsp中实现数据分页显示的必要步骤的相关问题,此外,我们还将为您介绍关于java web开发基础实例(javabean+jsp+servlet+jdbc)、javabean servlet jsp实现分页功能代码解析、javabean+jsp+servlet+jdbc、javabean+jsp+servlet+jdbc从软件安装到开发实例的新知识。

本文目录一览:

jsp+servlet+javabean实现数据分页方法完整实例(jsp中实现数据分页显示的必要步骤)

jsp+servlet+javabean实现数据分页方法完整实例(jsp中实现数据分页显示的必要步骤)

这篇文章主要介绍了jsp+servlet+javabean实现数据分页方法,以完整实例形式详细讲述了jsp结合servlet与javabean操作Postgresql数据库实现分页的具体步骤,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了jsp+servlet+javabean实现数据分页方法。分享给大家供大家参考,具体如下:

这里秉着且行且记的心态,记录下学习过程,学得快忘得快,生怕遗忘,以备日后使用。

用到的部分代码是自己在网上查找,并自己修改,加上自己的理解。也不知道算不算原创,只做自己学习记录。

使用相关:Postgresql数据库、dom4j、JSP、Servlet

一、首先是工程格局,来个全局视图方便读者与自己查看与使用

思路为:

以config.xml文件记录配置信息,以方便数据库更改,方便移植与重用。

DOM4JUtil.java用于解析xml属性文件以获得需要数据

Postgresql_Util.java分装数据连接与数据库操作

PageProperties.java为表格分页属性javaBean

PageProperties.java封装分页操作

Page.java为分页主要操作

tablePage.jsp为效果显示界面

用到的第三方jar包:

dom4j-1.6.1.jar用于xml文件解析

postgresql-9.3-1101.jdbc4.jar用于JDBC连接postgresql数据库

分页效果如下:能通过点击上页下页实现翻页,输入指定页面跳转(超出范围跳转到第1或最后页)。具体实现请参见详细代码,我都贴上来了。小菜鸟一名,处于正在学习阶段,有大神能指点下当然更好,希望不吝赐教!

二、具体代码实现

1、config.xml数据库连接信息属性文件

]> org.postgresql.Driverjdbc:postgresql://localhost:5432/javaadmink42jc

2、DOM4JUtil.java

package util; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 用于解析xml属性文件 * @author JohsonMuler * */ public class DOM4JUtil { private static Element root=null; static{//静态代码块 //创建解析对象 SAXReader sr=new SAXReader(); //获取当前工程路径 // String url=System.getProperty("user.dir"); String url=DOM4JUtil.class.getResource("").getPath(); // System.out.println(url); try { //通过文件路径获取配置文件信息 Document doc=sr.read(url+"config.xml"); //获取根节点 root=doc.getRootElement(); } catch (DocumentException e) { e.printstacktrace(); } } public static String getPostgresData(String str){ //以根节点为基础,获取配置文件数据 Element e=root.element(str); String data=e.getText(); return data; } public static void main(String[] args) { // String url=DOM4JUtil.class.getResource("..").getPath(); // System.out.println(System.getProperty("user.dir")); // System.out.println(url); String driver=getPostgresData("driver"); String url=getPostgresData("url"); System.out.println(driver); System.out.println(url); } }

3、Postgresql_Util.java

package util; import java.sql.PreparedStatement; import java.sql.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.sqlException; import java.util.List; public class Postgresql_Util { private static DOM4JUtil dom=new DOM4JUtil(); private static Connection c=null; private static ResultSet rs=null; private static String driver=dom.getPostgresData("driver"); private static String url=dom.getPostgresData("url"); private static String username=dom.getPostgresData("username"); private static String pwd=dom.getPostgresData("pwd"); public Postgresql_Util(){ try { Class.forName(driver); c=DriverManager.getConnection(url); } catch (ClassNotFoundException e) { System.out.println("未找到指定类:"+e.getMessage()); } catch (sqlException e) { System.out.println("获取连接异常:"+e.getMessage()); } } /** * 数据查询方法(Statement) * @param sql * @return * @throws sqlException */ public ResultSet executeQuery(String sql) throws sqlException{ Statement s=c.createStatement(); rs=s.executeQuery(sql); return rs; } /** * 重载方法(PreparedStatement) * @param sql * @param list * @return * @throws sqlException */ public ResultSet executeQuery(String sql,List list) throws sqlException{ PreparedStatement ps=c.prepareStatement(sql); for(int i=0;i list) throws sqlException{ PreparedStatement ps=c.prepareStatement(sql); for(int i=0;i

4、PageProperties.java

package bean; import java.sql.ResultSet; public class PageProperties { private int currentPage;//当前页号 private int totalPages;//总页数 private int totalRecords;//总数据条数 private ResultSet rs;//动态结果集 public PageProperties() { super(); } public PageProperties(int currentPage, int totalPages, int totalRecords, ResultSet rs) { super(); this.currentPage = currentPage; this.totalPages = totalPages; this.totalRecords = totalRecords; this.rs = rs; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public ResultSet getRs() { return rs; } public void setRs(ResultSet rs) { this.rs = rs; } }

5、TablePage.java

package bean; import java.sql.ResultSet; public class PageProperties { private int currentPage;//当前页号 private int totalPages;//总页数 private int totalRecords;//总数据条数 private ResultSet rs;//动态结果集 public PageProperties() { super(); } public PageProperties(int currentPage, int totalPages, int totalRecords, ResultSet rs) { super(); this.currentPage = currentPage; this.totalPages = totalPages; this.totalRecords = totalRecords; this.rs = rs; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public ResultSet getRs() { return rs; } public void setRs(ResultSet rs) { this.rs = rs; } }

6、Page.java这是主要处理类,Servlet

package servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.ResultSet; import java.sql.sqlException; import javax.servlet.@R_301_1281@; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import util.Postgresql_Util; import bean.PageProperties; import bean.TablePage; public class Page extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws @R_301_1281@, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); /** * 通过TablePage设置分页属性 * */ TablePage tb=new TablePage(); //获取当前表格显示的页码 int currentPage=tb.currentPage(tb.getStrPage(request, "page")); System.out.println(currentPage); //设置每页显示数据条数 tb.setPageRecord(10);//设置每页显示10条数据 /** * 通过xxsql_Util设置JDBC连接及数据处理 */ Postgresql_Util postgres=new Postgresql_Util(); try { ResultSet rs_count=postgres.executeQuery("select count(*) as c from student"); rs_count.next(); //获得总的数据条数 int totalRecords=rs_count.getInt("c"); //根据数据表的总数据条数获取页面显示表格的总页数 int totalPages=tb.getTotalPages(totalRecords); if(currentPage>totalPages){ currentPage=totalPages;//保证最后一页不超出范围 } //根据数据库表信息和当前页面信息获得动态结果集 ResultSet rs=tb.getPageResultSet(postgres.executeQuery("select * from student"), currentPage); /** * 将数据加入javaBean */ PageProperties pp=new PageProperties(currentPage, totalPages, totalRecords, rs); /** * 将javaBean转发至前端 */ request.setAttribute("result", pp); request.getRequestdispatcher("tablePage.jsp").forward(request, response); } catch (sqlException e) { System.out.println("Class Page:"+e.getMessage()); // e.printstacktrace(); } } }

7、tablePage.jsp前台显示效果

简单数据分页

姓名

性别

年龄

分数

10) break; } %>

页共条数据本页条第页 1 ) { %>下一页>>

初步看,感觉后台代码实在是繁琐,但这是考虑到程序健壮性与可移植性,方便代码重用。以后要用,根据自己的需要在属性文件(config.xml)中配置相关JDBC驱动,在jsp页面通过request获得后台Servlet(Page.jsp)的转发结果("result"),结合页面属性(PageProperties.java类)即可实现效果。

当然,这也是因为个人学习,倾向于多用点东西。

希望本文所述对大家jsp程序设计有所帮助。

java web开发基础实例(javabean+jsp+servlet+jdbc)

java web开发基础实例(javabean+jsp+servlet+jdbc)

JavaBean:用于传递数据,拥有与数据相关的逻辑处理

JSP:从Model接收数据并生成HTML

Servlet:接收HTTP请求并控制Model和View

jdbc:用于配置环境

一、【建立数据库】

在mysql中新建一个名为kecheng的数据库,并在其中新建一个kecheng数据表,包含三个字段,classname,classroom,teacher

 

二、【新建web项目

1. eclipse新建一个名为kechengguanlli的Dynamic Web Project

修改class的默认输出目录为:WebContent/WEB-INF/classes,勾选自动生成web.xml

2. 将连接mysql的驱动jar包(mysql-connector-java-5.1.7-bin.jar)copy到WEB-INF下的lib目录下

3.  新建7个包

helper、链接数据库的操作,避免重复写代码,所以用一个包封装起来

SQL、数据库增删改查的统一代码,在实例中具体调用

javabean、基类,包括此项目中的成员变量

servlet、增加数据库中课程

servletdelete、删除数据库中课程

servletseclec、查询数据库中课程

servletupdate、修改数据库中课程

 

4. 新建类(最愉快的搬砖环节  -.-),java类放在对应包中,jsp页面放在WebContent目录下,替换web.xml中内容;

helper包下新建 DbHelper.java

package helper;

import java.sql.Connection;
import java.sql.DriverManager;

public class DbHelper {
    private static String url = "jdbc:mysql://localhost:3306/kecheng";  //数据库地址
    private static String userName = "root";  //数据库用户名
    private static String passWord = "199812";  //数据库密码
    private static Connection conn = null;
    
    private DbHelper(){
        
    }
    
    public static Connection getConnection(){
        if(null == conn){
            try {
                Class.forName("com.mysql.jdbc.Driver");
                conn = DriverManager.getConnection(url, userName, passWord);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return conn;
    }
    
    public static void main(String[] args) {  //测试数据库是否连通
        System.out.println(getConnection());
    }
}

 javabean包下新建kecheng.java 

package javabean;

public class kecheng {
	private String classname;
	private String teacher;
	private String classroom;
	private String fanhui;
	public kecheng()
	{}
	public String getClassname() {
		return classname;
	}
	public void setClassname(String classname) {
		this.classname = classname;
	}
	public String getTeacher() {
		return teacher;
	}
	public void setTeacher(String teacher) {
		this.teacher = teacher;
	}
	public String getClassroom() {
		return classroom;
	}
	public void setClassroom(String classroom) {
		this.classroom = classroom;
	}
	public String getFanhui() {
		return fanhui;
	}
	public void setFanhui(String fanhui) {
		this.fanhui = fanhui;
	}
	

}

 servlet包下新建add.java 

package servlet;

import java.io.IOException;
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 javabean.kecheng;
import javabean.kecheng;
import SQL.sqlclass;

/**
 * Servlet implementation class add
 */
@WebServlet("/add")
public class add extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public add() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		int i=0,j=1,k=0;
		response.getWriter().append("Served at: ").append(request.getContextPath());
		String classname=request.getParameter("classname");//防止中文乱码
	 	 String teacher=request.getParameter("teacher");
	 	String classroom=request.getParameter("classroom");
	 	if(teacher.equals("王建民")||teacher.equals("刘立嘉")||teacher.equals("刘丹")||teacher.equals("王辉")||teacher.equals("杨子光"))
	 	i=1;
	 	String name;
        name=classroom.substring(0,2);
        if(name.equals("一教")||name.equals("二教")||name.equals("三教")||name.equals("基教"))
        j=1;
        if(true)//课程名
        	k=1;
       
        if(i==1&&j==1&&k==1)
	 	
        { kecheng student=new kecheng();
	 		student.setClassname(classname);
	 		student.setTeacher(teacher);
	 		student.setClassroom(classroom);
	 		sqlclass sql=new sqlclass();
	 		
	 	sql.addUser(student);
	 	response.sendRedirect("first.jsp");//页面跳转
        }
        else response.sendRedirect("add.jsp");
        
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

 【 jsp页面放在WebContent目录下】

first.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>
<center>课程基本信息管理主界面</center>
<center>——————————————————————————————————</center>
<a href="add.jsp"><center><b>课程信息录入</b></center></a><br>
<a href="update.jsp"><center><b>课程信息修改</b></center></a><br>
<a href="delete.jsp"><center><b>课程信息删除</b></center></a><br>
<a href="select.jsp"><center><b>课程信息查询</b></center></a><br>
</body>
</html>

  

 

add.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="servlet.add" method="get">
<center>课程信息录入界面</center>
<center>——————————————————————————————————————</center>
<center>课程名称:<input type="text" name=classname><br></center>
<center>任课教师:<input type="text" name=teacher><br></center>
<center>上课地点:<input type="text" name=classroom><br></center>
<center><input type="submit" value="保存"></center>
</body>
</html>

  

delete.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>
<center>课程信息删除</center>
<center>输入以下了表中的任意一个即可</center>
<center>——————————————————————————————————</center>
<form action="servletdelete.delete" method="get">
<center>课程名称:<input type="text" name=classname><br></center>
<center>任课教师:<input type="text" name=teacher><br></center>
<center>上课地点:<input type="text" name=classroom><br></center>
<center><input type="submit" value="确定删除"></center>
</body>
</html>

select.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@page import="java.util.*"%>  
<%@page import="javabean.kecheng"%>
<%@page import="SQL.sqlclass"%> 
<%@page import="java.util.List"%>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<center><%="课程"+"     "+"教师"+"     "+"教室" %> </center>
<%
sqlclass a=new sqlclass();
a.getAllUser();
kecheng c=new kecheng();
List<kecheng> b= new ArrayList<kecheng>();
b=a.getAllUser();
int i=0;
int j=0;
j=a.getnum();
for(;i<j;i++)
{c=b.get(i);
%>
 <center><%=c.getClassname()+"     "+c.getTeacher()+"     "+c.getClassroom() %> </center>

<% }%> 


</body>
</html>

  update.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>
<center>课程信息修改</center>
<center>——————————————————————————————————</center>
<form action="servletupdate.update" method="get">
<center>课程名称:<input type="text" name=classname><br></center>
<center>任课教师:<input type="text" name=teacher><br></center>
<center>上课地点:<input type="text" name=classroom><br></center>
<center><input type="submit" value="保存"></center>
</body>
</html>

【替换web.xml中内容】

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>kechengguanli</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>servlet.add</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servlet</servlet-name>
    <url-pattern>/servlet.add</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>servletdelete</servlet-name>
    <servlet-class>servletdelete.delete</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servletdelete</servlet-name>
    <url-pattern>/servletdelete.delete</url-pattern>
  </servlet-mapping>
  <servlet>
    <servlet-name>servletupdate</servlet-name>
    <servlet-class>servletupdate.update</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>servletupdate</servlet-name>
    <url-pattern>/servletupdate.update</url-pattern>
  </servlet-mapping>
</web-app>

  

 

javabean servlet jsp实现分页功能代码解析

javabean servlet jsp实现分页功能代码解析

前端实现用ligerUI实现分页,感觉用框架确实简单,闲着无聊,模拟着liger的分页界面实现了一遍(只要是功能,样式什么无视) 

这里用基础的三层架构+servlet+jsp实现,思路很简单,把所有分页相关信息写入到一个pagebean类里面,service返回这个bean类,每次分页查询时都从该bean里查找信息。只是其中的细节问题比较繁琐,如边界处理(前端和后台边界都要处理),下拉框跳转后要显示当前页等等 

这是ligerUI实现的分页样式(实现过程我的上一篇博客有写:http://www.jb51.net/article/92850.htm) 

模拟实现过程: 

目录结构

 

数据库(MysqL)

 

model层,一个数据库对应的model(Blog),还有一个pageBean(BlogPage) 

import java.sql.Date;

public class Blog {
 private int id;
 private int category_id;
 private String title;
 private String content;
 private Date created_time;
  //getter和setter方法
 @Override
 public String toString() {
  return "Blog [id=" + id + ",category_id=" + category_id + ",title=" + title + ",content=" + content
    + ",created_time=" + created_time + "]";
 } 
}

public class BlogPage {
 private List<Blog> pagerecord;//每页记录
 private int pageno;//当前页
 private int pagenostart;//每页开始索引
 private int pagesize=5;//每页多少数据
 private int totalrecord;//总记录数
 private int totalpage;//总页数
 
 public BlogPage(int pageno,int totalrecord){
  //pageno totalrecord都可以当做已有信息
  this.totalrecord=totalrecord;
  //计算总页数
  totalpage=(totalrecord%pagesize==0)?totalrecord/pagesize:totalrecord/pagesize+1;
  //pageno的边界处理
  if(pageno<=1)
   this.pageno=1;
  else if(pageno>=totalpage)
   this.pageno=totalpage;
  else
   this.pageno=pageno;
  //计算每页开始索引,即每页第一个数据的索引,用于分页查询
  pagenostart=(this.pageno-1)*pagesize;
 }
 public int getPagenostart() {
  return pagenostart;
 }
 public void setPagenostart(int pagenostart) {
  this.pagenostart = pagenostart;
 }
 public List<Blog> getPagerecord() {
  return pagerecord;
 }
 public void setPagerecord(List<Blog> pagerecord) {
  this.pagerecord = pagerecord;
 }
 public int getPageno() {
  return pageno;
 }
 public void setPageno(int pageno) {
  this.pageno = pageno;
 }
 public int getPagesize() {
  return pagesize;
 }
 public void setPagesize(int pagesize) {
  this.pagesize = pagesize;
 }
 public int getTotalrecord() {
  return totalrecord;
 }
 public void setTotalrecord(int totalrecord) {
  this.totalrecord = totalrecord;
 }
 public int getTotalpage() {
  return totalpage;
 }
 public void setTotalpage(int totalpage) {
  this.totalpage = totalpage;
 }
}

 

dao层

JDBCUtil封装了jdbc的连接和释放操作

public class JDBCUtil {
 private static String url = "jdbc:MysqL://localhost:3306/blogs_stu";
 private static String username = "root";
 private static String password = "";
 static {
  try {
   Class.forName("com.MysqL.jdbc.Driver");
  } catch (Exception e) {
   e.printstacktrace();
  }
 }
 public static Connection getConnection(){
  Connection conn;
  try {
   conn= DriverManager.getConnection(url,username,password);
   return conn;
  } catch (sqlException e) {
   e.printstacktrace();

  }
  return null;
 }
 public static void release(ResultSet rs,PreparedStatement ps,Connection conn){
  if(rs!=null){
   try {
    rs.close();
   } catch (sqlException e) {
    e.printstacktrace();
   }
  }
  if(ps!=null){
   try {
    ps.close();
   } catch (sqlException e) {
    e.printstacktrace();
   }
  }
  if(conn!=null){
   try {
    conn.close();
   } catch (sqlException e) {
    e.printstacktrace();
   }
  }
 }
}

public class BlogDao {
 //每页的记录,传入每页开始索引和每页大小用于分页,即limit的两个参数(MysqL分页用limit)
 public List<Blog> getPageRecord(int pagenostart,int pagesize) {
  Connection conn = JDBCUtil.getConnection();
  PreparedStatement ps = null;
  ResultSet rs = null;
  String sql = "select * from blog limit ?,?";
  List<Blog> list = new ArrayList<Blog>();
  try {
   ps = conn.prepareStatement(sql);
   ps.setInt(1,pagenostart);
   ps.setInt(2,pagesize);
   rs = ps.executeQuery();
   while (rs.next()) {
    Blog blog = new Blog();
    blog.setId(rs.getInt("id"));
    blog.setCategory_id(rs.getInt("category_id"));
    blog.setTitle(rs.getString("title"));
    blog.setContent(rs.getString("content"));
    blog.setCreated_time(rs.getDate("created_time"));
    list.add(blog);
   }
   return list;
  } catch (sqlException e) {
   e.printstacktrace();
  } finally {
   JDBCUtil.release(rs,ps,conn);
  }
  return null;
 }
 //总记录数
 public int getTotal() {
  Connection conn = JDBCUtil.getConnection();
  PreparedStatement ps = null;
  ResultSet rs = null;
  try {
   ps = conn.prepareStatement("select count(*) from blog");
   rs = ps.executeQuery();
   if (rs.next()) {
    return rs.getInt(1);
   }
  } catch (sqlException e) {
   e.printstacktrace();
  } finally {
   JDBCUtil.release(rs,conn);
  }
  return 0;
 }
}

service层 

public class BlogService {
 BlogDao blogDao = new BlogDao();
 //返回pagebean,所有分页需要的信息都去pagebean里查找
 public BlogPage findPageRecord(int pageno) {
  int totalrecord = blogDao.getTotal();
  BlogPage blogpage = new BlogPage(pageno,totalrecord);
  List<Blog> list = blogDao.getPageRecord(blogpage.getPagenostart(),blogpage.getPagesize());
  blogpage.setPagerecord(list);
  return blogpage;
 }
}

servlet类 

@WebServlet("/BlogSplitServlet")
public class BlogSplitServlet extends HttpServlet {
 public void doGet(HttpServletRequest request,HttpServletResponse response) throws servletexception,IOException {
  request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html; charset=utf-8");
  String pagenostr=request.getParameter("pageno");
  //首次访问servletpagenostr为null,给一个初始值,即默认访问第一页
  int pageno=1;
  if(pagenostr!=null)
   pageno=Integer.parseInt(pagenostr);
  BlogService service=new BlogService();
  BlogPage blogPage=service.findPageRecord(pageno);
  request.setAttribute("blogPage",blogPage);
  request.getRequestdispatcher("/blogPage.jsp").forward(request,response);
 }
 public void doPost(HttpServletRequest request,IOException {
  doGet(request,response);
 }
}

这样所有的分页信息就封装到pagebean里了 

jsp实现只需要将pagebean里的信息取出来就行了 

下面给出我的jsp实现(模拟ligerUI) 

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<%@page import="java.util.*,model.Blog,model.BlogPage"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<Meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
<script type="text/javascript">
 window.onload = function() {
  //保证select的option与当前页显示一致
  select = document.getElementById("select");
  pageno = '${blogPage.pageno}';
  select.options[pageno - 1].selected = 'selected';
 }
 //select下拉列表跳转
 function selectjump() {
  var pageno = select.selectedindex + 1;
  window.location.href = "http://localhost/jspPageSplit/BlogSplitServlet?pageno="
    + pageno;
 }
 //text跳转,onblur事件,输入框失去焦点是发生
 function textjump() {
  var pageno = document.getElementById("text").value;
  window.location.href = "http://localhost/jspPageSplit/BlogSplitServlet?pageno="
    + pageno;
 }
</script>
</head>
<body>
 <%
  BlogPage blogPage = (BlogPage) request.getAttribute("blogPage");
  List<Blog> list = blogPage.getPagerecord();
  // 尾页填充空白行,若不填充,尾页表格tr行数与前面不一致很难看
  if (list.size() < blogPage.getPagesize()) {
   for (int i = list.size(); i < blogPage.getPagesize(); i++)
    list.add(null);
  }
 %>
 <div>
  <table border="1" cellspacing="0" width="100%" bgcolor="#CEF0C5">
   <tr height="40px">
    <td>id</td><td>标题</td><td>内容</td><td>创建时间</td>
   </tr>
   <%
    for (Blog blog : list) {
     if (blog != null) {
   %>
   <tr height="50px">
    <td width="10%"><%=blog.getId()%></td>
    <td width="20%"><%=blog.getTitle()%></td>
    <td width="40%"><%=blog.getContent()%></td>
    <td width="30%"><%=blog.getCreated_time()%></td>
   </tr>
   <!-- 尾页空白行填充 -->
   <%} else {%>
   <tr height="50px">
    <td width="10%"></td>
    <td width="20%"></td>
    <td width="40%"></td>
    <td width="30%"></td>
   </tr>
   <%}}%>
  </table>
  <div>
    
  <!-- select下拉框 -->
  <select id="select">
   <%for (int i = 1; i <= blogPage.getTotalpage(); i++) {%>
   <option onclick="selectjump()"><%=i%></option>
   <%}%>
  </select> 
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=1">首页</a>
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=<%=blogPage.getPageno()-1<1?blogPage.getPageno():blogPage.getPageno()-1%>">上一页</a>  
  <input type="text" id="text" size="1px" value="${blogPage.pageno}" onblur="textjump()">/${blogPage.totalpage} 
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=<%=blogPage.getPageno()+1>blogPage.getTotalpage()?blogPage.getPageno():blogPage.getPageno()+1%>">下一页</a>
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=<%=blogPage.getTotalpage()%>">尾页</a>
  <div>
  显示从${blogPage.pagenostart+1}到${blogPage.pageno==blogPage.totalpage?blogPage.totalrecord:blogPage.pagesize},共${blogPage.totalrecord}条. 每页显示${blogPage.pagesize}条
  </div>
  </div>
 </div>
</body>
</html>

这是最后的样子,样式粗略的调了下,功能跟ligerUI默认的分页一模一样 

将JSP中代码改为标签(JSTL,需引入相应的jar包)并将JSP中的尾页补白放在servlet中后 

servlet中加入 

// 尾页填充空白行,若不填充,尾页表格tr行数与前面不一致很难看
  List<Blog> list = blogPage.getPagerecord();
  if (list.size() < blogPage.getPagesize()) {
   for (int i = list.size(); i < blogPage.getPagesize(); i++)
    list.add(null);
  }
  blogPage.setPagerecord(list);

jsp页面 

<%@ page language="java" contentType="text/html; charset=utf-8"
 pageEncoding="utf-8"%>
<%@page import="java.util.*,model.BlogPage"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
<script type="text/javascript">
 //select下拉列表跳转
 function selectjump() {
  var select = document.getElementById("select");
  var pageno = select.selectedindex + 1;
  window.location.href = "http://localhost/jspPageSplit/BlogSplitServlet?pageno="
    + pageno;
 }
 //text跳转,onblur事件,输入框失去焦点时发生
 function textjump() {
  var pageno = document.getElementById("text").value;
  window.location.href = "http://localhost/jspPageSplit/BlogSplitServlet?pageno="
    + pageno;
 }
</script>
</head>
<body>
 <div>
  <table border="1" cellspacing="0" width="100%" bgcolor="#CEF0C5">
   <tr height="40px">
    <td>id</td><td>标题</td><td>内容</td><td>创建时间</td>
   </tr>
   <c:forEach items="${blogPage.pagerecord}" var="c" varStatus="vs">
   <c:if test="${c!=null}">
      <tr height="50px">
    <td width="10%">${c.id}</td>
    <td width="20%">${c.title}</td>
    <td width="40%">${c.content}</td>
    <td width="30%">${c.created_time}</td>
   </tr>
   </c:if>
   <!-- 尾页空白行填充 -->
   <c:if test="${c==null}">
   <tr height="50px">
    <td width="10%"></td>
    <td width="20%"></td>
    <td width="40%"></td>
    <td width="30%"></td>
   </tr>
   </c:if>
   </c:forEach>
  </table>
  <div>
    
  <!-- select下拉框 -->
  <select id="select">
  <c:forEach begin="1" end="${blogPage.totalpage}" var="i">
  <option value="${i}" onclick="selectjump()" ${blogPage.pageno==i?'selected="selected"':''}>${i}</option>
  </c:forEach>
  </select> 
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=1">首页</a>
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=${blogPage.pageno-1<1?blogPage.pageno:blogPage.pageno-1}">上一页</a>  
  <input type="text" id="text" size="1px" value="${blogPage.pageno}" onblur="textjump()">/${blogPage.totalpage} 
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=${blogPage.pageno+1>blogPage.totalpage?blogPage.pageno:blogPage.pageno+1}">下一页</a>
  <a href="${pageContext.request.contextpath}/BlogSplitServlet?pageno=${blogPage.totalpage}">尾页</a>
  <div>
  显示从${blogPage.pagenostart+1}到${blogPage.pageno==blogPage.totalpage?blogPage.totalrecord:blogPage.pagesize},共${blogPage.totalrecord}条. 每页显示${blogPage.pagesize}条
  </div>
  </div>
 </div>
</body>
</html>

 实际运用中可以根据需求编写jsp页面,但是后台代码基本是通用的 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

您可能感兴趣的文章:

  • jsp servlet javaBean后台分页实例代码解析
  • jsp+servlet+javabean实现数据分页方法完整实例
  • servlet分页代码示例
  • Servlet实现分页效果

javabean+jsp+servlet+jdbc

javabean+jsp+servlet+jdbc

环境配置:

1.eclipse安装

https://www.cnblogs.com/ForestDeer/p/6647402.html

2.tomcat安装

https://blog.csdn.net/u014543872/article/details/79568712

3.数据库安装

http://www.cnblogs.com/sshoub/p/4321640.html

4.Sqlyang破解版下载

http://www.onlinedown.net/soft/24926.htm

 

利用eclipse创建java web项目的方法:

https://blog.csdn.net/qq_25646191/article/details/78776136

https://www.cnblogs.com/optblogs/p/7880996.html

JSP文件显示页面,使用form或href超链接传值到Servlet中方法,在Servlet方法中调用Dao层的类对象,实现对数据库里的数据的增删改查,之后重新返回到JSP输出操作完的结果。

共分为四个包和对应的JSP文件:

1.DB包:建立连接数据库的方法,以及关闭操作数据库的方法。

2.Servlet包:①接受来自JSP页面的参数,将这些参数收集起来。②将Dao层传回来的操作结果返回到JSP页面显示。

3.JavaBean包:定义一个Java类,将要操作的对象归纳出他的属性和get,set方法。

4.Dao层包:最主要的包,在这里通过DB包链接数据库,进行对数据库中的数据的增删改查,主要运用了数据库语言。

1.Util包:建立连接数据库的方法,以及关闭操作数据库的方法。

复制代码
package Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 数据库连接工具
 * @author Hu
 *
 */
public class DBUtil {
    
    public static String db_url = "jdbc:mysql://localhost:3306/course?useUnicode=true&characterEncoding=UTF-8";
    public static String db_user = "root";
    public static String db_pass = "root";
    
    public static Connection getConn () {
        Connection conn = null;
        
        try {
            Class.forName("com.mysql.jdbc.Driver");//加载驱动
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return conn;
    }
    
    /**
     * 关闭连接
     * @param state
     * @param conn
     */
    public static void close (Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static void close (ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws SQLException {
        Connection conn = getConn();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql ="select * from course";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();
        if(rs.next()){
            System.out.println("空");
        }else{
            System.out.println("不空");
        }
    }
}
复制代码

 

2.Servlet包:①接受来自JSP页面的参数,将这些参数收集起来。②将Dao层传回来的操作结果返回到JSP页面显示。

复制代码
package Servlet;

import java.io.IOException;
import java.util.List;

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 Javabean.Course;
import Service.CourseService;

@WebServlet("/CourseServlet")
public class CourseServlet extends HttpServlet {
    
    private static final long serialVersionUID = 1L;

    CourseService service = new CourseService();
    
    /**
     * 方法选择
     */
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        
        if ("add".equals(method)) {
            add(req, resp);
        } else if ("del".equals(method)) {
            del(req, resp);
        } else if ("update".equals(method)) {
            update(req, resp);
        } else if ("search".equals(method)) {
            search(req, resp);
        } else if ("getcoursebyid".equals(method)) {
            getCourseById(req, resp);
        } else if ("getcoursebyname".equals(method)) {
            getCourseByName(req, resp);
        } else if ("list".equals(method)) {
            list(req, resp);
        }
    }

    /**
     * 添加
     * @param req
     * @param resp
     * @throws IOException 
     * @throws ServletException 
     */
    private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");
        //获取数据
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        Course course = new Course(name, teacher, classroom);
        System.out.println(name+"  "+teacher);
        //添加后消息显示
        if(service.add(course)) {
            req.setAttribute("message", "添加成功");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        } else {
            req.setAttribute("message", "课程名称重复,请重新录入");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        }
    }
    
    /**
     * 全部
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        
        List<Course> courses = service.list();
        req.setAttribute("courses", courses);
        req.getRequestDispatcher("list.jsp").forward(req,resp);
    }

    /**
     * 通过ID得到Course
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void getCourseById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        Course course = service.getCourseById(id);
        req.setAttribute("course", course);
        req.getRequestDispatcher("detail2.jsp").forward(req,resp);
    }

    /**
     * 通过名字查找
     * 跳转至删除
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void getCourseByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        Course course = service.getCourseByName(name);
        if(course == null) {
            req.setAttribute("message", "查无此课程!");
            req.getRequestDispatcher("del.jsp").forward(req,resp);
        } else {
            req.setAttribute("course", course);
            req.getRequestDispatcher("detail.jsp").forward(req,resp);
        }
    }
    
    /**
     * 删除
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        service.del(id);
        req.setAttribute("message", "删除成功!");
        req.getRequestDispatcher("del.jsp").forward(req,resp);
    }
    
    /**
     * 修改
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        Course course = new Course(id, name, teacher, classroom);
        
        service.update(course);
        req.setAttribute("message", "修改成功");
        req.getRequestDispatcher("CourseServlet?method=list").forward(req,resp);
    }
    
    /**
     * 查找
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        List<Course> courses = service.search(name, teacher, classroom);
        req.setAttribute("courses", courses);
        req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
    }
}
复制代码

3.Javabean包:定义一个Course类,将要操作的对象归纳出他的属性和get,set方法。

复制代码
package Javabean;

public class Course {

    private int id;
    private String name;
    private String teacher;
    private String classroom;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTeacher() {
        return teacher;
    }
    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }
    public String getClassroom() {
        return classroom;
    }
    public void setClassroom(String classroom) {
        this.classroom = classroom;
    }
    
    public Course() {}
    
    public Course(int id, String name, String teacher, String classroom) {
        this.id = id;
        this.name = name;
        this.teacher = teacher;
        this.classroom = classroom;
    }
    
    public Course(String name, String teacher, String classroom) {
        this.name = name;
        this.teacher = teacher;
        this.classroom = classroom;
    }
}
复制代码

4.Dao层包:最主要的包,在这里通过Util包链接数据库,进行对数据库中的数据的增删改查,主要运用了数据库语言。

复制代码
package Dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import Javabean.Course;
import Util.DBUtil;

/**
 * 课程Dao
 * Dao层操作数据
 * @author Hu
 *
 */
public class CourseDao {

    /**
     * 添加
     * @param course
     * @return
     */
    public boolean add(Course course) {
        System.out.println(course.getTeacher());
        String sql = "insert into course(name, teacher, classroom) values(''" + course.getName() + "'',''" + course.getTeacher() + "'',''" + course.getClassroom() + "'')";
        //创建数据库链接
        Connection conn = DBUtil.getConn();
        Statement state = null;
        boolean f = false;
        int a = 0;
        
        try {
            state = conn.createStatement();
            state.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭连接
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }

    /**
     * 删除
     * 
     * @param id
     * @return
     */
    public boolean delete (int id) {
        boolean f = false;
        String sql = "delete from course where id=''" + id + "''";
        
        Connection conn = DBUtil.getConn();
        Statement state = null;
        int a = 0;
        
        try {
            state = conn.createStatement();
            a = state.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }

    /**
     * 修改
     * @param name
     * @param pass
     */
    public boolean update(Course course) {
        String sql = "update course set name=''" + course.getName() + "'', teacher=''" + course.getTeacher() + "'', classroom=''" + course.getClassroom()
            + "'' where id=''" + course.getId() + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        boolean f = false;
        int a = 0;

        try {
            state = conn.createStatement();
            a = state.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }
    
    /**
     * 验证课程名称是否唯一
     * true --- 不唯一
     * @param name
     * @return
     */
    public boolean name(String name) {
        boolean flag = false;
        String sql = "select name from course where name = ''" + name + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                flag = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return flag;
    }
    
    /**
     * 通过ID得到课程信息
     * @param id
     * @return
     */
    public Course getCourseById(int id) {
        String sql = "select * from course where id =''" + id + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Course course = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                String name = rs.getString("name");
                String teacher = rs.getString("teacher");
                String classroom = rs.getString("classroom");
                course = new Course(id, name, teacher, classroom);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return course;
    }
    
    /**
     * 通过name得到Course
     * @param name
     * @return
     */
    public Course getCourseByName(String name) {
        String sql = "select * from course where name =''" + name + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Course course = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                int id = rs.getInt("id");
                String teacher = rs.getString("teacher");
                String classroom = rs.getString("classroom");
                course = new Course(id, name, teacher, classroom);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return course;
    }
    
    /**
     * 查找
     * @param name
     * @param teacher
     * @param classroom
     * @return
     */
    public List<Course> search(String name, String teacher, String classroom) {
        String sql = "select * from course where ";
        if (name != "") {
            sql += "name like ''%" + name + "%''";
        }
        if (teacher != "") {
            sql += "teacher like ''%" + teacher + "%''";
        }
        if (classroom != "") {
            sql += "classroom like ''%" + classroom + "%''";
        }
        List<Course> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            Course bean = null;
            while (rs.next()) {
                int id = rs.getInt("id");
                String name2 = rs.getString("name");
                String teacher2 = rs.getString("teacher");
                String classroom2 = rs.getString("classroom");
                bean = new Course(id, name2, teacher2, classroom2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    /**
     * 全部数据
     * @param name
     * @param teacher
     * @param classroom
     * @return
     */
    public List<Course> list() {
        String sql = "select * from course";
        List<Course> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            Course bean = null;
            while (rs.next()) {
                int id = rs.getInt("id");
                String name2 = rs.getString("name");
                String teacher2 = rs.getString("teacher");
                String classroom2 = rs.getString("classroom");
                bean = new Course(id, name2, teacher2, classroom2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }

}
复制代码

5.Service包:通过Dao包实现数据库的增删改查。

复制代码
package Service;

import java.util.List;

import Dao.CourseDao;
import Javabean.Course;

/**
 * CourseService
 * 服务层
 * @author Hu
 *
 */
public class CourseService {

    CourseDao cDao = new CourseDao();
    
    /**
     * 添加
     * @param course
     * @return
     */
    public boolean add(Course course) {
        boolean f = false;
        if(!cDao.name(course.getName())) {
            cDao.add(course);
            f = true;
        }
        return f;
    }
    
    /**
     * 删除
     */
    public void del(int id) {
        cDao.delete(id);
    }
    
    /**
     * 修改
     * @return 
     */
    public void update(Course course) {
        cDao.update(course);
    }
    
    /**
     * 通过ID得到一个Course
     * @return 
     */
    public Course getCourseById(int id) {
        return cDao.getCourseById(id);
    }

    /**
     * 通过Name得到一个Course
     * @return 
     */
    public Course getCourseByName(String name) {
        return cDao.getCourseByName(name);
    }
    
    /**
     * 查找
     * @return 
     */
    public List<Course> search(String name, String teacher, String classroom) {
        return cDao.search(name, teacher, classroom);
    }
    
    /**
     * 全部数据
     * @return 
     */
    public List<Course> list() {
        return cDao.list();
    }
}
复制代码

功能一:增加

       在首页中选择功能添加信息,通过href超链接跳转到添加add.JSP页面,在add.JSP页面中的Form表格中输入要添加的相应的信息,通过Form表格的提交按钮将输入框Input中的内容和值(该值确定调用Servlet中的add方法)传给Servlet,在Servlet中调用add方法,在该方法中调用的Dao层中的add方法,Dao层中的add方法,该方法通过DB层获取与数据库的连接,对数据库进行数据添加的功能,之后返回操作结果给Servlet的add方法,由Servlet中的add方法判断输出添加成功的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>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
    <div align="center">
        <h1>课程信息录入</h1>
        <a href="index.jsp">返回主页</a>
        <form action="CourseServlet?method=add" method="post" onsubmit="return check()">
            <div>
                课程名称<input type="text" id="name" name="name"/>
            </div>
            <div>
                任课教师<input type="text" id="teacher" name="teacher" />
            </div>
            <div>
                上课地点<input type="text" id="classroom" name="classroom" />
            </div>
            <div>
                <button type="submit">保&nbsp;&nbsp;&nbsp;存</button>
            </div>
        </form>
    </div>
    <script type="text/javascript">
        function check() {
            var name = document.getElementById("name");;
            var teacher = document.getElementById("teacher");
            var classroom = document.getElementById("classroom");
            
            //非空
            if(name.value == '''') {
                alert(''课程名称为空'');
                name.focus();
                return false;
            }
            if(teacher.value == '''') {
                alert(''教师为空'');
                teacher.focus();
                return false;
            }
            if(classroom.value == '''') {
                alert(''上课地点为空'');
                classroom.focus();
                return false;
            }
            
            //教师
            if(teacher.value != ''王建民'' && teacher.value != ''王辉'' && teacher.value != ''刘丹'' && teacher.value != ''刘立嘉'' && teacher.value != ''杨子光''){
                alert(''教师名称错误'');
                return false;
            }
            
            //教室
            if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
                alert(''上课地点错误'');
                return false;
            }
        }
    </script>
</body>
</html>
复制代码

功能二:删除

      在首页中选择功能删除信息,通过href超链接跳转到删除del.JSP页面中,在该页面中输入要删除的课程名称,然后传值到Servlet中,在Servlet中通过调用Dao层的查询方法,在数据库中查找是否存在此课程,若存在,将课程全部信息存入List中传给Servlet,Servlet在用JSP文件显示该课程全部信息,用户在确定是否要删除,若要删除则继续传值给Servlet,调用Servlet中的删除del方法,该方法调用Dao层的delete函数,实现数据库中的数据的删除,将操作结果返回至Servlet中,在Servlet中判断输出一个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>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
    <div align="center">
        <h1>课程信息删除</h1>
        <a href="index.jsp">返回主页</a>
        <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()">
            <div>
                课程名称<input type="text" id="name" name="name"/>
            </div>
            <div>
                <button type="submit">查&nbsp;&nbsp;&nbsp;找</button>
            </div>
        </form>
    </div>
    <script type="text/javascript">
        function check() {
            var name = document.getElementById("name");;
            
            //非空
            if(name.value == '''') {
                alert(''课程名称为空'');
                name.focus();
                return false;
            }
        }
    </script>
</body>
</html>
复制代码
复制代码
<%@ 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>
<style>
    .a{
        margin-top: 20px;
    }
    .b{
        font-size: 20px;
        width: 160px;
        color: white;
        background-color: greenyellow;
    }
    .tb, td {
        border: 1px solid black;
        font-size: 22px;
    }
</style>
</head>
<body>
    <div align="center">
        <h1>课程信息删除</h1>
        <a href="index.jsp">返回主页</a>
        <table>
            <tr>
                <td>课程名称</td>
                <td>${course.name}</td>
            </tr>
            <tr>
                <td>任课教师</td>
                <td>${course.teacher}</td>
            </tr>
            <tr>
                <td>上课地点</td>
                <td>${course.classroom}</td>
            </tr>
        </table>
        <div>
            <a onclick="return check()" href="CourseServlet?method=del&id=${course.id}">删&nbsp;&nbsp;&nbsp;除</a>
        </div>
    </div>
    <script type="text/javascript">
        function check() {
            if (confirm("真的要删除吗?")){
                return true;
            }else{
                return false;
            }
        }
    </script>
</body>
</html>
复制代码
复制代码
<%@ 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>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
    <div align="center">
        <h1>课程信息修改</h1>
        <a href="index.jsp">返回主页</a>
        <form action="CourseServlet?method=update" method="post" onsubmit="return check()">
            <div>
                课程名称<input type="text" id="name" name="name" value="${course.name}"/>
            </div>
            <div>
                任课教师<input type="text" id="teacher" name="teacher" value="${course.teacher}"/>
            </div>
            <div>
                上课地点<input type="text" id="classroom" name="classroom" value="${course.classroom}"/>
            </div>
            <input type="hidden" id="id" name="id" value="${course.id}"/>
            <div>
                <button type="submit">修&nbsp;&nbsp;&nbsp;改</button>
            </div>
        </form>
    </div>
    <script type="text/javascript">
        function check() {
            var name = document.getElementById("name");;
            var teacher = document.getElementById("teacher");
            var classroom = document.getElementById("classroom");
            
            //非空
            if(name.value == '''') {
                alert(''课程名称为空'');
                name.focus();
                return false;
            }
            if(teacher.value == '''') {
                alert(''教师为空'');
                teacher.focus();
                return false;
            }
            if(classroom.value == '''') {
                alert(''上课地点为空'');
                classroom.focus();
                return false;
            }
            
            //教师
            if(teacher.value != ''王建民'' && teacher.value != ''王辉'' && teacher.value != ''刘丹'' && teacher.value != ''刘立嘉'' && teacher.value != ''杨子光''){
                alert(''教师名称错误'');
                return false;
            }
            
            //教室
            if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
                alert(''上课地点错误'');
                return false;
            }
        }
    </script>
</body>
</html>
复制代码

功能三:修改

     在首页中选择功能修改信息,通过href超链接跳转到修改list.JSP页面中,显示全部的数据,点击要修改的一组数据,传值(此值为要修改的编号等 )给Servlet,在Servlet中调用Dao层的update修改方法,update方法修改数据库中数据,将操作结果返回至Servlet中,由Servlet最终调用JSP弹出操作结果。

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>

</head>
<body>
    <%
         Object message = request.getAttribute("message");
         if(message!=null && !"".equals(message)){
     
    %>
         <script type="text/javascript">
              alert("<%=request.getAttribute("message")%>");
         </script>
    <%} %>
    <div align="center">
        <h1>课程信息列表</h1>
        <a href="index.jsp">返回主页</a>
        <table>
            <tr>
                <td>id</td>
                <td>课程名称</td>
                <td>任课教师</td>
                <td>上课地点</td>
                <td align="center" colspan="2">操作</td>
            </tr>
            <c:forEach items="${courses}" var="item">
                <tr>
                    <td>${item.id}</td>
                    <td>${item.name}</td>
                    <td>${item.teacher}</td>
                    <td>${item.classroom}</td>
                    <td><a href="CourseServlet?method=getcoursebyid&id=${item.id}">修改</a></td>
                </tr>
            </c:forEach>
        </table>
    </div>
</body>
</html>
复制代码

功能四:查找

     在首页中选择功能查询信息,通过href超链接跳转到查询search.JSP页面中,在该页面中输入你要查询的信息,可进行粗略和精确查询,将输入的内容通过Form表格传值给Servlet,由Servlet中查询search方法调用Dao层的查询search方法,由此方法在数据库中进行模糊或者精确查询,将查询到的信息装在List中传给Servlet,最终由Servlet返回给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>
<div align="center">
<h1>课程信息查询</h1>
<a href="index.jsp">返回主页</a>
<form action="CourseServlet?method=search" method="post" onsubmit="return check()">
<div>
课程名称<input type="text" id="name" name="name"/>
</div>
<div>
任课教师<input type="text" id="teacher" name="teacher" />
</div>
<div>
上课地点<input type="text" id="classroom" name="classroom" />
</div>
<div>
<button type="submit">查&nbsp;&nbsp;&nbsp;询</button>
</div>
</form>
</div>
<script type="text/javascript">
function check() {
var name = document.getElementById("name");;
var teacher = document.getElementById("teacher");
var classroom = document.getElementById("classroom");

//非空
if(name.value == '''' && teacher.value == '''' && classroom.value == '''') {
alert(''请填写一个条件'');
return false;
}
}
</script>
</body>
</html>

复制代码

javabean+jsp+servlet+jdbc从软件安装到开发实例

javabean+jsp+servlet+jdbc从软件安装到开发实例

javabean\jsp\servlet\jdbc的作用:

JavaBean:用于传递数据,拥有与数据相关的逻辑处理。JSP:从Model接收数据并生成HTML。Servlet:接收HTTP请求并控制Model和View。jdbc:用于配置环境

首先新建course的数据库:包含name,teacher,classroom,id等字段。

源代码及包的分布

package com.hjf.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import com.hjf.entity.Course;
import com.hjf.util.DBUtil;

/**
 * 课程Dao
 * Dao层操作数据
 * @author Hu
 *
 */
public class CourseDao {

    /**
     * 添加
     * @param course
     * @return
     */
    public boolean add(Course course) {
        String sql = "insert into course(name, teacher, classroom) values(''" + course.getName() + "'',''" + course.getTeacher() + "'',''" + course.getClassroom() + "'')";
        //创建数据库链接
        Connection conn = DBUtil.getConn();
        Statement state = null;
        boolean f = false;
        int a = 0;
        
        try {
            state = conn.createStatement();
            state.executeUpdate(sql);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭连接
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }

    /**
     * 删除
     * 
     * @param id
     * @return
     */
    public boolean delete (int id) {
        boolean f = false;
        String sql = "delete from course where id=''" + id + "''";
        
        Connection conn = DBUtil.getConn();
        Statement state = null;
        int a = 0;
        
        try {
            state = conn.createStatement();
            a = state.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }

    /**
     * 修改
     * @param name
     * @param pass
     */
    public boolean update(Course course) {
        String sql = "update course set name=''" + course.getName() + "'', teacher=''" + course.getTeacher() + "'', classroom=''" + course.getClassroom()
            + "'' where id=''" + course.getId() + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        boolean f = false;
        int a = 0;

        try {
            state = conn.createStatement();
            a = state.executeUpdate(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(state, conn);
        }
        
        if (a > 0) {
            f = true;
        }
        return f;
    }
    
    /**
     * 验证课程名称是否唯一
     * true --- 不唯一
     * @param name
     * @return
     */
    public boolean name(String name) {
        boolean flag = false;
        String sql = "select name from course where name = ''" + name + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                flag = true;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        return flag;
    }
    
    /**
     * 通过ID得到课程信息
     * @param id
     * @return
     */
    public Course getCourseById(int id) {
        String sql = "select * from course where id =''" + id + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Course course = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                String name = rs.getString("name");
                String teacher = rs.getString("teacher");
                String classroom = rs.getString("classroom");
                course = new Course(id, name, teacher, classroom);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return course;
    }
    
    /**
     * 通过name得到Course
     * @param name
     * @return
     */
    public Course getCourseByName(String name) {
        String sql = "select * from course where name =''" + name + "''";
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;
        Course course = null;
        
        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            while (rs.next()) {
                int id = rs.getInt("id");
                String teacher = rs.getString("teacher");
                String classroom = rs.getString("classroom");
                course = new Course(id, name, teacher, classroom);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return course;
    }
    
    /**
     * 查找
     * @param name
     * @param teacher
     * @param classroom
     * @return
     */
    public List<Course> search(String name, String teacher, String classroom) {
        String sql = "select * from course where ";
        if (name != "") {
            sql += "name like ''%" + name + "%''";
        }
        if (teacher != "") {
            sql += "teacher like ''%" + teacher + "%''";
        }
        if (classroom != "") {
            sql += "classroom like ''%" + classroom + "%''";
        }
        List<Course> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            Course bean = null;
            while (rs.next()) {
                int id = rs.getInt("id");
                String name2 = rs.getString("name");
                String teacher2 = rs.getString("teacher");
                String classroom2 = rs.getString("classroom");
                bean = new Course(id, name2, teacher2, classroom2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }
    
    /**
     * 全部数据
     * @param name
     * @param teacher
     * @param classroom
     * @return
     */
    public List<Course> list() {
        String sql = "select * from course";
        List<Course> list = new ArrayList<>();
        Connection conn = DBUtil.getConn();
        Statement state = null;
        ResultSet rs = null;

        try {
            state = conn.createStatement();
            rs = state.executeQuery(sql);
            Course bean = null;
            while (rs.next()) {
                int id = rs.getInt("id");
                String name2 = rs.getString("name");
                String teacher2 = rs.getString("teacher");
                String classroom2 = rs.getString("classroom");
                bean = new Course(id, name2, teacher2, classroom2);
                list.add(bean);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, state, conn);
        }
        
        return list;
    }

}
package com.hjf.entity;

public class Course {

    private int id;
    private String name;
    private String teacher;
    private String classroom;
    
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTeacher() {
        return teacher;
    }
    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }
    public String getClassroom() {
        return classroom;
    }
    public void setClassroom(String classroom) {
        this.classroom = classroom;
    }
    
    public Course() {}
    
    public Course(int id, String name, String teacher, String classroom) {
        this.id = id;
        this.name = name;
        this.teacher = teacher;
        this.classroom = classroom;
    }
    
    public Course(String name, String teacher, String classroom) {
        this.name = name;
        this.teacher = teacher;
        this.classroom = classroom;
    }
}
package com.hjf.service;

import java.util.List;

import com.hjf.dao.CourseDao;
import com.hjf.entity.Course;

/**
 * CourseService
 * 服务层
 * @author Hu
 *
 */
public class CourseService {

    CourseDao cDao = new CourseDao();
    
    /**
     * 添加
     * @param course
     * @return
     */
    public boolean add(Course course) {
        boolean f = false;
        if(!cDao.name(course.getName())) {
            cDao.add(course);
            f = true;
        }
        return f;
    }
    
    /**
     * 删除
     */
    public void del(int id) {
        cDao.delete(id);
    }
    
    /**
     * 修改
     * @return 
     */
    public void update(Course course) {
        cDao.update(course);
    }
    
    /**
     * 通过ID得到一个Course
     * @return 
     */
    public Course getCourseById(int id) {
        return cDao.getCourseById(id);
    }

    /**
     * 通过Name得到一个Course
     * @return 
     */
    public Course getCourseByName(String name) {
        return cDao.getCourseByName(name);
    }
    
    /**
     * 查找
     * @return 
     */
    public List<Course> search(String name, String teacher, String classroom) {
        return cDao.search(name, teacher, classroom);
    }
    
    /**
     * 全部数据
     * @return 
     */
    public List<Course> list() {
        return cDao.list();
    }
}
package com.hjf.servlet;

import java.io.IOException;
import java.util.List;

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 com.hjf.entity.Course;
import com.hjf.service.CourseService;

@WebServlet("/CourseServlet")
public class CourseServlet extends HttpServlet {
    
    private static final long serialVersionUID = 1L;

    CourseService service = new CourseService();
    
    /**
     * 方法选择
     */
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String method = req.getParameter("method");
        
        if ("add".equals(method)) {
            add(req, resp);
        } else if ("del".equals(method)) {
            del(req, resp);
        } else if ("update".equals(method)) {
            update(req, resp);
        } else if ("search".equals(method)) {
            search(req, resp);
        } else if ("getcoursebyid".equals(method)) {
            getCourseById(req, resp);
        } else if ("getcoursebyname".equals(method)) {
            getCourseByName(req, resp);
        } else if ("list".equals(method)) {
            list(req, resp);
        }
    }

    /**
     * 添加
     * @param req
     * @param resp
     * @throws IOException 
     * @throws ServletException 
     */
    private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
        req.setCharacterEncoding("utf-8");
        //获取数据
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        Course course = new Course(name, teacher, classroom);
        
        //添加后消息显示
        if(service.add(course)) {
            req.setAttribute("message", "添加成功");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        } else {
            req.setAttribute("message", "课程名称重复,请重新录入");
            req.getRequestDispatcher("add.jsp").forward(req,resp);
        }
    }
    
    /**
     * 全部
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        
        List<Course> courses = service.list();
        req.setAttribute("courses", courses);
        req.getRequestDispatcher("list.jsp").forward(req,resp);
    }

    /**
     * 通过ID得到Course
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void getCourseById(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        Course course = service.getCourseById(id);
        req.setAttribute("course", course);
        req.getRequestDispatcher("detail2.jsp").forward(req,resp);
    }

    /**
     * 通过名字查找
     * 跳转至删除
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void getCourseByName(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        Course course = service.getCourseByName(name);
        if(course == null) {
            req.setAttribute("message", "查无此课程!");
            req.getRequestDispatcher("del.jsp").forward(req,resp);
        } else {
            req.setAttribute("course", course);
            req.getRequestDispatcher("detail.jsp").forward(req,resp);
        }
    }
    
    /**
     * 删除
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        service.del(id);
        req.setAttribute("message", "删除成功!");
        req.getRequestDispatcher("del.jsp").forward(req,resp);
    }
    
    /**
     * 修改
     * @param req
     * @param resp
     * @throws IOException
     * @throws ServletException 
     */
    private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        int id = Integer.parseInt(req.getParameter("id"));
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        Course course = new Course(id, name, teacher, classroom);
        
        service.update(course);
        req.setAttribute("message", "修改成功");
        req.getRequestDispatcher("CourseServlet?method=list").forward(req,resp);
    }
    
    /**
     * 查找
     * @param req
     * @param resp
     * @throws ServletException 
     */
    private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{
        req.setCharacterEncoding("utf-8");
        String name = req.getParameter("name");
        String teacher = req.getParameter("teacher");
        String classroom = req.getParameter("classroom");
        List<Course> courses = service.search(name, teacher, classroom);
        req.setAttribute("courses", courses);
        req.getRequestDispatcher("searchlist.jsp").forward(req,resp);
    }
}
package com.hjf.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 数据库连接工具
 * @author Hu
 *
 */
public class DBUtil {
    
    public static String db_url = "jdbc:mysql://localhost:3306/course?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";
    public static String db_user = "root";
    public static String db_pass = "123456";
    
    public static Connection getConn () {
        Connection conn = null;
        
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动
            conn = DriverManager.getConnection(db_url, db_user, db_pass);
            System.out.println("数据库链接正常");
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return conn;
    }
    
    /**
     * 关闭连接
     * @param state
     * @param conn
     */
    public static void close (Statement state, Connection conn) {
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    
    public static void close (ResultSet rs, Statement state, Connection conn) {
        if (rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        if (conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    public static void main(String[] args) throws SQLException {
        Connection conn = getConn();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        String sql ="select * from course";
        pstmt = conn.prepareStatement(sql);
        rs = pstmt.executeQuery();
        if(rs.next()){
            System.out.println("空");
        }else{
            System.out.println("不空");
        }
    }
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <title>课程信息录入 </title> <%--页面标题--%>
    <body>
    <div id="Layer1">    
    <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
    </div> 
    <script type="text/javascript" language="JavaScript"> //JS
    function validate()
    {
    var name = document.forms[0].name.value; //创建变量name
    var teacher = document.forms[0].teacher.value; //创建变量teacher
    var local = document.forms[0].local.value; //创建变量address
    if(name.length <= 0){ //判断姓名位数,必填
        alert("课程名称不能为空,请输入课程名称!");
        return false;
    }
    if(teacher.value != ''王建民'' && teacher.value != ''王辉'' && teacher.value != ''刘丹'' && teacher.value != ''刘立嘉'' && teacher.value != ''杨子光''){
        alert(''教师名称错误'');
        return false;
    }

    if(!/^基教/.test(local.value) && !/^一教/.test(local.value) && !/^二教/.test(local.value) && !/^三教/.test(local.value)) {
        alert(''上课地点错误'');
        return false;
    }
        //document.getElementById("form").submit();
    }
    </script>
  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
  <br><%--换行--%>
  <center>
  <h2>课程信息录入</h2><hr size="1" noshade color="#000000"><%--横线--%>
 <form action="insert.jsp" method="post" id="form" onSubmit="return validate()" ><%--跳转到insert.jsp文件,方法为post--%>
    <table width="800" border="0" align="center"> <%--表格的宽为800,居中对齐--%>
      <tr>
        <td>课程名称:
          <input type="text" name="name"></td>
      </tr>
      <tr>
        <td>授课教师:
          <input type="text" name="teacher"></td>
      </tr>
      <tr>
        <td>教学地点: <input type="text" name="local"> </td>
      </tr>
      <tr>
        <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="submit" type="submit" value="保存"/></td>
      </tr>
    </table>
    <p>&nbsp;</p>
  </form>
  <a href="showInfo.jsp">查询所有课程信息</a> <%--链接到学生信息查询页面--%>
  </center>
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> <%--设置基础路径--%>
    <title>删除页面</title> <%--页面标题--%>
  </head>
<body>
<div id="Layer1">    
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
</div> 
    <% 
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    String name = request.getParameter("name");
    Connection conn = null; //定义静态数据库连接 //定义静态数据库连接
    Statement stat = null; 
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    stat.executeUpdate("delete from data where name = ''" + name + "''"); //删除data表中的name字段
    rs = stat.executeQuery("select * from data"); //查找data表
    if(rs.next()) //判断结果集
    {
     out.print("<center><br><br><h3>删除成功!</h3></center>"); 
    }
    else{
    out.print("<center><h3>删除失败!</h3></center>");
    }
    %>
    <br>
    <br>
    <center><a href=addStuInfo.jsp>返回添加信息页面</a><br/><br/><a href=showInfo.jsp>返回信息查询页面</a></center> <%--设置居中--%>
    <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null)
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Welcome!</title>
</head>
<h1>欢迎来到石家庄铁道大学课程基本信息管理系统</h1><br/><br/>
<body>
<div id="Layer1">    
<img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
</div> <br/><br/>
   <p align="center">
   <a href = "addStuInfo.jsp">课程信息录入</a><br/><br/>
   <a href = "showInfo.jsp">课程信息修改</a><br/><br/>
   <a href = "showInfo.jsp">删除课程信息</a><br/><br/>
   <a href = "showInfo.jsp">查询课程信息</a><br/><br/>
   </p>
</body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> <%--设置基础路径,basepath为变量--%>
    <title>添加课程信息</title> <%--页面标题--%>
  </head>
   <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
    <% 
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    String name1 = request.getParameter("name");
    String teacher = request.getParameter("teacher");
    String local = request.getParameter("local");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; 
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection();
    stat = conn.createStatement(); 
    //String sql = ; //向对应的数据字段添加数据
    stat.executeUpdate("insert into data(name,teacher,local) values(''" + name1 + "'',''" + teacher + "'',''" + local + "'')"); 
    rs = stat.executeQuery("select * from data"); //查找data表
%> 
   <center>
   <%
    if(rs.next())
    {
    out.print("<br><h3>课程信息添加成功!</h3>");
    }
    else{
    out.print("<br><h3>课程信息添加失败!</h3>");
    }
    %>
    <br>
    <a href=addStuInfo.jsp>返回课程信息添加页面</a><br/><br/>
    <a href=showInfo.jsp>进入课程信息查询页面</a> 
    </center>
     <%
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null)
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %>     
    </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> <%--设置基础路径,basepath为变量--%>
    <title>按教学地点条件查询</title> <%--页面标题--%>
  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
    <% 
    String local = request.getParameter("local");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; //滞空stat。
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    rs = stat.executeQuery("select * from data where local=''" + local + "''");//查找data表name字段
    %>
    <br>
    <h3>符合条件的课程信息</h3> <%--标题样式3--%>
    <hr noshade> 
    <br>
     <table width="450" border="100" cellSpacing=1> <%--表格宽度450--%>
    <tr>
    <td>课程名称</td>
    <td>授课教师</td>
    <td>教学地点</td>
    </tr>
    <% 
    if(rs.next())
    {
    out.print("<tr>");
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出age内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出gender内容
        %>
    <td><a href="delete.jsp?name=<%=rs.getString("name") %>">删除</a></td>
     <td><a href="update.jsp?name=<%=rs.getString("name") %>">修改</a></td>
    <%
    out.print("</tr>");
    }
    else{
    out.print("<h4>不存在此条件的信息!</h4>");
    }
  
    %>
    </table>    
    <br>
    <a href=showInfo.jsp>返回课程信息查询页面</a>
    <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null) //判断stat是否滞空。
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> <%--设置基础路径,basepath为变量--%>
    <title>按课程名称条件查询</title> <%--页面标题--%>
  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
    <% 
    String name = request.getParameter("name");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; //滞空stat。
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    rs = stat.executeQuery("select * from data where name=''" + name + "''");//查找data表name字段
    %>
    <br>
    <h3>符合条件的课程信息</h3> <%--标题样式3--%>
    <hr noshade> 
    <br>
     <table width="450" border="100" cellSpacing=1> <%--表格宽度450--%>
    <tr>
    <td>课程名称</td>
    <td>授课教师</td>
    <td>教学地点</td>
    </tr>
    <% 
    if(rs.next())
    {
    out.print("<tr>");
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出age内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出gender内容
        %>
    <td><a href="delete.jsp?name=<%=rs.getString("name") %>">删除</a></td>
     <td><a href="update.jsp?name=<%=rs.getString("name") %>">修改</a></td>
    <%
    out.print("</tr>");
    }
    else{
    out.print("<h4>不存在此条件的信息!</h4>");
    }
  
    %>
    </table>    
    <br>
    <a href=showInfo.jsp>返回课程信息查询页面</a>
    <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null) //判断stat是否滞空。
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> <%--设置基础路径,basepath为变量--%>
    <title>按授课教师条件查询</title> <%--页面标题--%>
  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
    <% 
    String teacher = request.getParameter("teacher");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; //滞空stat。
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    rs = stat.executeQuery("select * from data where teacher=''" + teacher + "''");//查找data表name字段
    %>
    <br>
    <h3>符合条件的课程信息</h3> <%--标题样式3--%>
    <hr noshade> 
    <br>
     <table width="450" border="100" cellSpacing=1> <%--表格宽度450--%>
    <tr>
    <td>课程名称</td>
    <td>授课教师</td>
    <td>教学地点</td>
    </tr>
    <% 
    if(rs.next())
    {
    out.print("<tr>");
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出age内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出gender内容
        %>
    <td><a href="delete.jsp?name=<%=rs.getString("name") %>">删除</a></td>
     <td><a href="update.jsp?name=<%=rs.getString("name") %>">修改</a></td>
    <%
    out.print("</tr>");
    }
    else{
    out.print("<h4>不存在此条件的信息!</h4>");
    }
  
    %>
    </table>    
    <br>
    <a href=showInfo.jsp>返回课程信息查询页面</a>
    <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null) //判断stat是否滞空。
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <title>课程信息</title> <%--页面标题--%>

  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
  <% 
    response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    String name = request.getParameter("name");
    String teacher = request.getParameter("teacher");
    String address = request.getParameter("local");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; 
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    rs = stat.executeQuery("select * from data"); //查找data表
  %>
  <br>
  <h2>课程信息</h2> <%--标题样式2--%>
  <hr noshade>    
  <br> 
  <h3>全部课程信息如下</h3> <%--标题样式3--%>
   <table width="562" border="100" cellSpacing=3> <%--表格宽度450--%>
    <tr>
    <td width="110">课程名称</td>
    <td width="110">授课教师</td>
    <td width="211">教学地点</td>
    </tr>
    <% 
    while(rs.next())
    {
    out.print("<tr>");
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出gender内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出major内容
    %>
    <td><a href="delete.jsp?name=<%=rs.getString("name") %>">删除</a></td>
    <td><a href="update.jsp?name=<%=rs.getString("name") %>">修改</a></td>
    <%
    out.print("</tr>");
    }
    %>
    </table>  
    <br>
       <form action="select_for_name.jsp" method="post"> <%--post方法跳转到select_for_age.jsp文件--%>
    <h3>按课程名称查询:
    <input type="text" name="name"  value="" title="课程名称不能为空" ></input>
    <input type="submit" value="查询"/>
    <br>
    </h3>
    </form>
    <form action="select_for_teacher.jsp" method="post"> <%--post方法跳转到select_for_gender.jsp文件--%>
  <h3> 按授课教师查询:
    <input type="text" name="teacher" value="" title="授课教师"></input>
    <input type="submit" value="查询"/>
    <br>
  </h3>
</form>
<form action="select_for_local.jsp" method="post"> <%--post方法跳转到select_for_major.jsp文件--%>
  <h3> 按教学地点查询:
    <input type="text" name="local" value="" title="教学地点"></input>
    <input type="submit" value="查询"/>
    <br>
  </h3>
</form>
<a href=addStuInfo.jsp>返回添加课程信息页面</a>
<% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null)
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %>
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <title>课程信息</title> <%--页面标题--%>
    <body>
    <div id="Layer1">    
    <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
    </div> 
    <%--JS--%>
    <script type="text/javascript"">
    function validate()
    {
    var name = document.forms[0].name.value;
    var teacher = document.forms[0].age.value;
    var local = document.forms[0].major.value;
    if(name.length <= 0){
        alert("姓名不能为空,请输入姓名!");
        return false;
    }
    else if(teacher.length <= 0){
        alert("请输入正确教师姓名!");
        return false;
    }

        else if(local.length <= 0){
        alert("教学地点不能为空,请输入正确教学地点!");
        return false;
    }

    else{
        return true;
    }
        //document.getElementById("form").submit();
    }
    </script>
  </head>
  <body background="img/background.jpg">
    <% 
    response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    String name = request.getParameter("name");
    String teacher = request.getParameter("teacher");
    String local = request.getParameter("local");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; //滞空stat。
    ResultSet rs = null; //将rs滞空。
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    rs = stat.executeQuery("select * from data where name=''" + name + "''"); //查找data表id字段
  %>
  <br>
  <h2>课程信息</h2>  
  <hr noshade>    
  <br> 
  <h3>要修改的课程信息如下</h3> 
  <table width="450" border="0" cellpadding="1" cellSpacing=1>
  <tr align="center">
    <td>课程名称</td>
    <td>授课教师</td>
    <td>教学地点</td>
    </tr>
     <% 
    while(rs.next())
    {
    out.print("<tr align=''center''>"); //居中对齐
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出gender内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出major内容
    out.print("</tr>");
    %>
    </table>
    <br>
    <br>
    <h3>将学生信息更改为:</h3>
    <form action="updateShow.jsp" method="post" onSubmit="return validate()"> 
<h4>课程名称:<input type="text" name="name" value="<%=rs.getString("name") %>" title="课程名称不能改变" onClick="return checkName(name)"readonly="readonly"></input><br></h4>
<h4>授课教师:<input type="text" name="teacher" title="授课教师不能为空"></input><br></h4>
<h4>教学地点:<input type="text" name="local" title="授课教师不能为空"></input><br></h4>
 <input type="submit" value="修改"/>
  </form>
<a href=addStuInfo.jsp>返回添加信息页面</a><br/><a href=showInfo.jsp>返回信息查询页面</a>
<%
  }
 %>
      <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null)
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%--设置页面的脚本支持语言为java—导入util包中的类—申明编码方式为UTF-8--%>
<%@ page import="java.sql.*"%> <%--导入java中的sql包--%>
<%@page import="com.javao.msg.DBUtil"%>
<% 
request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
response.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
%>
<%
String path = request.getContextPath(); //相对Path设置
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //相对Path设置
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%--文档声明--%>
<html>
  <head>
    <base href="<%=basePath%>"> 
    <title>修改页面</title> 
  </head>
  <body>
  <div id="Layer1">    
  <img src="C:\Users\FuHeishi826\Desktop\课程实验\Extreme\background.jpg" height="100%" width="100%"/>    
  </div> 
    <%
    request.setCharacterEncoding("UTF-8"); //设置响应的编码为UTF-8
    String name1 = request.getParameter("name");
    String teacher1 = request.getParameter("teacher");
    String local1 = request.getParameter("local");
    Connection conn = null; //定义静态数据库连接 
    Statement stat = null; 
    conn = DBUtil.getConnection(); 
    stat = conn.createStatement(); 
    stat.execute("update data set name=''" + name1 + "'' ,teacher=''" + teacher1 + "'',local=''" + local1+"'' where name=''" + name1 + "''"); 
    ResultSet rs = stat.executeQuery("select * from data where name=''" + name1 + "''"); //查找data表id字段
    %>
   <br>
   <h3>修改成功!</h3> <%--标题样式3--%>
   <br>
   <h3>修改后的信息为:</h3> <%--标题样式3--%>
   <hr noshade>
   <br>
   <br>
   <table width="450" border="100" cellSpacing=1> <%--表格宽度450--%>
    <tr>
    <td>课程名称</td>
    <td>授课教师</td>
    <td>教学地点</td>
    </tr>
    <% 
    while(rs.next())
    {
    out.print("<tr>");
    out.print("<td>" + rs.getString("name") + "</td>"); //输出name内容
    out.print("<td>" + rs.getString("teacher") + "</td>"); //输出gender内容
    out.print("<td>" + rs.getString("local") + "</td>"); //输出major内容
    out.print("</tr>");
    }
    %>
    </table>
    <br>
    <br>
    <a href=addStuInfo.jsp>返回添加信息页面</a><br/><a href=showInfo.jsp>返回信息查询页面</a>
    <% 
    if(rs != null)
    {
        rs.close(); //关闭结果集,但是rs还是有null值。
        rs = null; //将rs滞空。
    }
        if(stat != null)
    {
        stat.close(); //关闭stat。
        stat = null; //滞空stat。
    }
        if(conn != null)
    {
        conn.close(); //关闭数据库连接
        conn = null;
    }
    %> 
  </body>
</html>

 

我们今天的关于jsp+servlet+javabean实现数据分页方法完整实例jsp中实现数据分页显示的必要步骤的分享就到这里,谢谢您的阅读,如果想了解更多关于java web开发基础实例(javabean+jsp+servlet+jdbc)、javabean servlet jsp实现分页功能代码解析、javabean+jsp+servlet+jdbc、javabean+jsp+servlet+jdbc从软件安装到开发实例的相关信息,可以在本站进行搜索。

本文标签: