首先我们应该了解什么是MVC:
MVC包含三个部分 :
①View:由各种JSP页面组成。
②Controller:由各种Servlet组成,Controller就是将View和Model来进行匹配,用什么Model实现,调用哪个View来显示。
③Model:由各种javabean组成,也是MVC的核心,
以下就是简单的用MVC架构去实现一个JSP(View)+Servlet(Controller)+javabean(Model)实现MySql查询功能的Demo。
创建Web Project
1.打开MyEclipse -> File-> new -> Web Project 创建完后在src下创建包beans和ServletDB最后得到例如以下的文件结构:
2.编写beans
在beans包下创建两个javabeans分别为DAL.java 和 DB.java
DB.java 注意MySqlusername和password是你本机MySql的 username和password与下面的代码可能不一样须要改动。
package beans;
import java.sql.*;
public class DB {
static String driver = "com.mysql.jdbc.Driver";
static String url = "jdbc:mysql://127.0.0.1:3306/test";
static String user = "root";//连接时的username
static String password = "root";//连接时的密码
static Connection aConnection;
public static Connection connectDB(){
try{
Class.forName(driver);
aConnection = DriverManager.getConnection(url,user,password);
if(aConnection.isClosed())
{
System.out.print("Succeeded!");
}
}catch(ClassNotFoundException e){
System.out.println(e);
} catch (SQLException e) {
e.printStackTrace();
}
return aConnection;
}
public static ResultSet executeQuery(String sqlx) throws SQLException{
connectDB();
ResultSet rs = null;
Statement stmt = aConnection.createStatement();
try {
rs = stmt.executeQuery(sqlx);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
}
DAL.java
package beans;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DAL {
public static String sqlx="";
public static String testQueryByID(String ID){
ResultSet rs = null;
String result = "";
sqlx = "SELECT * FROM testtable where ID = '"+ID+"'";
try {
rs = DB.executeQuery(sqlx);
} catch (SQLException e) {
e.printStackTrace();
}
try {
while(rs.next()){
result = result +"ID:"+rs.getString("ID")+" Name:"+rs.getString("name")+"";
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
}
3.编写servlet
File-> new -> servlet->确定包名为servletDB然后取名为test即可了 重要的是在本test方法中增加调用beans方法的语句。
test.java
package servletDB;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import beans.DAL;public classtest extends HttpServlet {/**
* Constructor of the object.*/
publictest() {
super();
}/**
* Destruction of the servlet.
*/
public voiddestroy() {
super.destroy();//Just puts "destroy" string in log//Put your code here
}public voiddoGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
String ID= request.getParameter("ID");//获取传过来的ID
String result = "";
result= DAL.testQueryByID(ID);//调用DAL中的testQueryByID方法而且将get过来的ID传过去
PrintWriter out =response.getWriter();out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("");out.println("
A Servlet");out.println("");out.print(result);out.println("");out.println("");out.flush();out.close();
}public voiddoPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriterout =response.getWriter();out.println(""-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("");out.println("
A Servlet");out.println("");out.print("This is");out.print(this.getClass());out.println(", using the POST method");out.println("");out.println("");out.flush();out.close();
}public voidinit() throws ServletException {//Put your code here
}
}
4.配置Servlet
进入WebRoot-〉Web-INF -〉web.xml加入例如以下代码
test
servletDB.test
test
/servletDB/test
写index.jsp
将body中的代码替换为例如以下代码
请输入用户ID:
測试
1.点击Run
2.输入測试ID 1
成功的获取到了test数据库testtable中ID为1的数据。