先来说说整体思路
1.在HTML文件中写一个注册表单
(表单中的数据传给2中的servlet)
2.在web项目中创建一个servlet
(处理表单传过来的数据,并写入数据库中)
3.创建相应需求的数据库
(存放表单中填写的数据)
---------------------------------------------------------------------------------------------------------------------------------------------------
下面是我的HTML+JavaScript代码
需要注意的是form标签中的属性
method设置是表单提交的方式(post:提交到指定的位置)
action设置的是提交的位置(我这里给的是web项目中servlet的路径)
PS:由于我修改了tomcat的配置文件(端口改为80),所以可以直接写项目路径.
如果你没有修改,那么action中应该填写的是:
IP地址+端口号+servlet的路径(相对路径)
上面两个属性的操作,相当于将表单数据传到了tomcat服务器
表单的提交
userName
passWord
function sub () {
//onsubmit事件根据方法的返回值对表单进行操作
//获取输入项的值
var userName = document.getElementById("userName").value;
var passWord = document.getElementById("passWord").value;
//对输入项的值进行判断
if (userName == "") {
alert("userName不能为空")
//不提交数据返回false
return false;
} else if (passWord == ""){
alert("passWord不能为空")
//不提交数据返回false
return false;
}
//提交数据
return true;
}
function success() {
document.write("注册成功");
}
---------------------------------------------------------------------------------------------------------------------------------------------------
下面是我的mysql工具类代码
由于连接数据库时会有很多重复操作(代码),于是将其提取出来写成工具类
这里读取配置文件使用的是ResourceBundle类中的getBundle("配置文件名")方法
getString("配置文件中的键")-------根据键获取值(键值对)
PS:这里对mysql进行操作是需要导入一个mysql的jar包的
public class JdbcUtil {//通过读取配置文件内容进行操作
public static String drivername;
public static String url;
public static String username;
public static String password;
public static String sql;
//在类加载时候,执行读取文件的操作
static {
drivername = ResourceBundle.getBundle("db").getString("drivername");
url = ResourceBundle.getBundle("db").getString("url");
username = ResourceBundle.getBundle("db").getString("username");
password = ResourceBundle.getBundle("db").getString("password");
sql = ResourceBundle.getBundle("db").getString("sql");
}
//加载驱动,进行初始化
public static Connection load() throws Exception{
Class.forName(drivername);
//创建与数据库的连接
Connection conn = DriverManager.getConnection(url,username,password);
return conn;
}
//释放资源
public static void release(Connection conn,java.sql.Statement stmt,ResultSet rs){
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
rs = null;
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
stmt = null;
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
conn = null;
}
}
这个是配置文件
有了配置文件后,我们不用再去修改源码.
有什么操作直接修改配置文件即可.
drivername=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/lx
username=root
password=root
sql=select * from stu where id=3
#sql=insert into stu values(4,'zhuhaifan',66,88)
#sql=delete from stu where id=4
#sql=update stu set id=4,username='chenchen'where id=5
---------------------------------------------------------------------------------------------------------------------------------------------------
下面的是我的servlet代码
通过ServletRequest 类中的getParameter()方法获取表单中的数据
同样是是根据键获取值(键值对)
接下来就是使用Jdbc对mysql数据库进行操作了
需要注意的是写sql操作语句时使用连接符+将参数拼接进去
public class TJ_servlet extends HttpServlet {
@Override
//获取表单提交的数据
public void service(ServletRequest srq, ServletResponse srp)
throws ServletException, IOException {
String username = srq.getParameter("userName");
String password = srq.getParameter("passWord");
insert(username,password);
}
private void insert(String username,String password) {
//创建空的引用
Connection con = null;
Statement sta = null;
ResultSet rs = null;
//
try {
// 加载驱动,获取连接
con = JdbcUtil.load();
// 获取处理对象
sta = con.createStatement();
// 编写sql代码
//插入操作insert into user values(id,username,password)
String sql = "insert into user values(null,'"+username+"','"+password+"')";
// 执行sql,查询
// 判断是否存在
if (sta.executeUpdate(sql) > 0) {
System.out.println("插入成功");
} else {
System.out.println("插入失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 释放资源
JdbcUtil.shifang(con, sta, null);
}
}
}