Servelt、mysql、html、JDBC、tomcat

来源:互联网 发布:centos安装deb 编辑:程序博客网 时间:2024/04/30 11:48
/**
 * *一:新建了一个web项目,并配置web运行环境,右击项目——>properties ——>Java Build Path ——> Libraries

 * ——> Add Library ——> server RUntime ,因为要连接mysql,所以需要导入连接的jar包(mysql-connector-java-5.1.7-bin.jar)

二:在tomcat中将web项目加载到tomcat中(Add and remove)

 * 三: 新建了一个包,在包中新建一个servlet 

四: 删掉没用的注释,确定了注解没问题 @WebServlet("/MyServlet")

 * 注解的命名规则: 反斜杠开始后面的自己随便写,一般我们都写项目名 

五:在doGet中调用了doPost方法,目的是,无论是get请求还是post请求都会到

 * 我doPost方法中 在WebContent里面新建HTML File,在body里写一form表单 <form action="/MyServle"

 * method="get"></form>

 六:测试:在doPost中打印 

七:浏览器访问

 * http://localhost:8080/Web/MyServlet 如果控制台正常打印,说明我们的接口调通了 

八:测试前台携带数据到接口中

 * http://localhost:8080/Web/MyServlet?username=zhangsan&password=lisi2
 * 
 * 九:在接口中通过 String name = request.getParameter("username");
 * 
 * 十:业务逻辑正常进行 正常通过jdbc连接数据库,查询前台传过来的值是否正确
 * 
 * 十一:通过 :PrintWriter out = response.getWriter(); out.write("");
 * 通知前台页面,信息,成功或者失败
 */

//Servlet类
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
Connection connection = null;
public MyServlet() {


}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("username");
String pd = request.getParameter("password");
System.out.println("name:" + name + "    password:" + pd);
PrintWriter out = response.getWriter();
MyJdbcUtil myJdbcUtil = new MyJdbcUtil();
Connection connection = myJdbcUtil.getConnection();
String sql = "SELECT COUNT(1) FROM userinfo WHERE uname='" + name
+ "' AND PASSWORD='" + pd + "'";
System.out.println(sql);
try {
System.out.println(connection);
Statement statement = connection.createStatement();
ResultSet set = statement.executeQuery(sql);
while (set.next()) {
if (set.getInt(1) == 1) {
out.write("login success");
} else {
out.write("login fail");
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


//加载、连接数据库的标准接口

public interface JdbcUtil {
//IO 流   把连接数据库的信息写入到文件中
// 获得连接对象的方法
public Connection getConnection();
// 释放资源的方法
public void close(Connection conn, Statement stmt);
// 释放资源的方法
public void close(Connection conn, Statement stmt, ResultSet rs);
}


//加载、连接数据的实现类

public class MyJdbcUtil implements JdbcUtil {
static String url = null;
static String user = null;
static String password = null;
BufferedReader bufferedReader = null;
static Connection connection = null;


public static void getPath() {
/*
* try {
* //E://app//javaweb//myjdbcinterface//src//implementsmyjdbc//JDBC.txt
* bufferedReader=new BufferedReader(new InputStreamReader(new
* FileInputStream("JDBC.txt"))); url=bufferedReader.readLine();
* user=bufferedReader.readLine(); password=bufferedReader.readLine(); }
* catch (FileNotFoundException e1) { // TODO Auto-generated catch block
* e1.printStackTrace(); } catch (IOException e) { // TODO
* Auto-generated catch block e.printStackTrace(); }finally{ try {
* bufferedReader.close(); } catch (IOException e) { // TODO
* Auto-generated catch block e.printStackTrace(); } }
*/


/*
* ResourceBundle rBundle=ResourceBundle.getBundle("MyJdbc");
* url=rBundle.getString("url"); user=rBundle.getString("user");
* password=rBundle.getString("password");
*/


Properties properties = new Properties();
// java.lang.Class.getResourceAsStream(String name)查找具有给定名称的资源。
InputStream inputStream = JdbcUtil.class
.getResourceAsStream("/MyJdbc.properties");
try {
// load(InputStream inStream)
// 从输入流中读取属性列表(键和元素对)。
properties.load(inputStream);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// getProperty(String key)
// 用指定的键在此属性列表中搜索属性。
url = properties.getProperty("url");
user = properties.getProperty("user");
password = properties.getProperty("password");


}


static {
System.out.println("进入静态代码块");
try {
Class.forName("com.mysql.jdbc.Driver");
getPath();
connection = DriverManager.getConnection(url, user, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


public Connection getConnection() {


// Connection connection=null;
// try {
// Class.forName("com.mysql.jdbc.Driver");
// getPath();
// connection=DriverManager.getConnection(url,user,password);
// } catch (ClassNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (SQLException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
return connection;
}


@Override
public void close(Connection conn, Statement stmt) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


}


@Override
public void close(Connection conn, Statement stmt, ResultSet rs) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}



可能出现的错误

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver


解决方案:原来是tomcat找不到MYSQL JAR包的问题。后来又把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面就ok了,嘿……

0 0
原创粉丝点击