项目开始前找齐所需要的jar包
我这里只做一个小的示例只需要这两个Jar包
jstl.jar 做页面时需要的c标签库
mysql-connector-java-5.1.18-bin.jar 用来连接数据库
这里先说一下我做这个项目是犯的错误
Can not find the tag library descriptor for "http://java.sun.om/jsp/jstl/core"
主要原因是缺少 jstl.jar 。
/**
* 数据库连接字符串 jdbc:mysql://localhost:3306/test test为数据库名称
*/
private static final String DATABASE_URL = "jdbc:mysql://10.10.10.116:3306/test";
这里我犯的错误是 连接字符串
这里因为我用的不是本机的数据库 所以不能用 localhost (只有数据库在本地时才能用localhost)
如果你要连接别人电脑的数据库就不能用jdbc:mysql://localhost:3306/“数据库名称”
只能用 jdbc:mysql://”域名“:3306/“数据库名称” 否则获取连接会报错
还有一个需要注意的问题
web.xml文件中
StudentsAdd servlet/StudentsAdd StudentsAdd / studentsAdd
servlet节点下的属性
servlet-name:servlet的名称
servlet-class:servlet的路径名 (其实就是包名+文件名称)
servlet-mapping节点下的属性
servlet-name:servlet的名称
url-pattern:/servlet的名称 (注意:这个名称一定要小写)
这些就是我碰到的问题,如果有哪里说错了希望给我提供更正的建议谢谢。
这里是连接数据库的辅助类 任何一个(没有用框架的)项目都能用
package util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import model.Student;
public class DBConnection {
/**
* 驱动类名称
*/
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
/**
* 数据库连接字符串 jdbc:mysql://localhost:3306/test 这种方式只对本地的数据库有用 test为数据库名称
*/
private static final String DATABASE_URL = "jdbc:mysql://10.10.10.116:3306/test";
/**
* 数据库用户名
*/
private static final String USER_NAME = "root";
/**
* 数据库密码
*/
private static final String PASSWORD = "123456";
/**
* 数据库连接类
*/
private static Connection conn;
/**
* 数据库操作类
*/
private static Statement stmt;
// 加载驱动
static{
try {
Class.forName(DRIVER_CLASS);
} catch (Exception e) {
System.out.println("加载驱动错误");
System.out.println(e.getMessage());
}
}
// 取得连接
private static Connection getConnection(){
try {
conn = DriverManager.getConnection(DATABASE_URL, USER_NAME, PASSWORD);
} catch (Exception e) {
System.out.println("取得连接错误");
System.out.println(e.getMessage());
}
return conn;
}
/**
* 执行 增、删、改 操作
* @param sql
*/
public void ExecuteDel(String sql){
try {
stmt = getConnection().createStatement();
} catch (Exception e) {
System.out.println("statement取得错误");
System.out.println(e.getMessage());
}
try {
int rows = stmt.executeUpdate(sql);
if(rows >= 1){
System.out.println("成功删除.....");
} else {
System.out.println("删除失败.....");
}
} catch (Exception e) {
// TODO: handle exception
}
}
/**
* 读取数据库中的数据(查询操作)
* @param sql
* @return
*/
public ArrayList getStudentList(String sql){
ArrayList list = new ArrayList();
// 取得数据库操作对象
try {
stmt = getConnection().createStatement();
} catch (Exception e) {
System.out.println("statement取得错误");
System.out.println(e.getMessage());
return null;
}
try {
// 查询数据库对象,返回记录集(结果集)
ResultSet rs = stmt.executeQuery(sql);
// 循环记录集,查看每一行每一列的记录
while (rs.next()) {
// 第一列 sno
int sno = rs.getInt(1);
// 第2列 sname
String sname = rs.getString(2);
Student stu = new Student();
stu.setId(sno);
stu.setName(sname);
list.add(stu);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
return list;
}
}
package model;
public class Student {
public int id;
public String name;
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;
}
}
访问的类
package servlet;
import java.io.IOException;
import java.util.ArrayList;
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 model.Student;
import util.DBConnection;
/**
* Servlet implementation class StudentsAdd
*/
@WebServlet("/StudentsAdd")
public class StudentsAdd extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public StudentsAdd() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DBConnection db = new DBConnection();
String sql = "select * from test";
ArrayList list = db.getStudentList(sql);
request.setAttribute("list", list);
request.getRequestDispatcher("index.jsp").forward(request, response);
}
}
test1
StudentsAdd
servlet/StudentsAdd
StudentsAdd
/studentsAdd
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
我这个实验表中只有两列哦
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
list
<%--
url="/StudentsAdd"> --%>
编号
姓名
${stu.id }
${stu.name }
访问路劲为http://localhost:8080/项目名称/StudentsAdd
项目可以到我的资源中下载http://download.csdn.net/detail/qq_27292113/9396201。