JavaWeb快速入门七
create databasemytest; -- 创建数据库
use databasemytest; --使用mytest
?
CREATE TABLEuser (
? `id` INTEGER UNSIGNED NOT NULLAUTO_INCREMENT,
? `name` VARCHAR(45),
? `password` VARCHAR(45),
? PRIMARY KEY (`id`)
) –创建表
package servlet;
?
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
?
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
?
public class RegisterServlet extends HttpServlet {
?
??? public void doGet(HttpServletRequest request, HttpServletResponseresponse)
?????????? throws ServletException, IOException {
?????? /*
?????? ?* 这里选择将所有以get方式提交的全部交给doPost方法处理; get方式提交是将所有的要传递的参数附加在地址栏后传过来,
?????? ?* 这样在参数少的情况或者没有参数的情况会考虑这种方式, 因为附加在地址栏的字符不安全,二字符不能超过一定的大小
?????? ?* 在网页中大部分时候都要传递大量的数据,尤其有上传文件就不能选择get方式提交
?????? ?*/
?????? doPost(request, response);
??? }
?
??? public void doPost(HttpServletRequest request, HttpServletResponseresponse)
?????????? throws ServletException, IOException {
?????? String registerName = request.getParameter("name");
?????? String registerPassword = request.getParameter("password");
?
?????? Connectionconn = null;
?????? PreparedStatement ps = null;
?????? try {
?????????? // 1.注册驱动
?????????? Class.forName("com.mysql.jdbc.Driver");
?
?????????? // 2.建立连接
?????????? String url = "jdbc:mysql://localhost:3306/mytest";
?????????? String user = "root";
?????????? String password = "root";
?????????? conn = DriverManager.getConnection(url,user, password);
?
?????????? // 3.创建语句 ;这里的问号是占位符
?????????? String sql = "insert intouser(name,password) values(?,?)";
?????????? ps =conn.prepareStatement(sql);
?????????? ps.setString(1,registerName);// 将第一个?用name的值替换
?????????? ps.setString(2,registerPassword);
?
?????????? // 4.执行语句
?????????? ps.executeUpdate();
?
?????????? // 5.释放资源
?????????? conn.close();
?
?????? } catch (SQLException e){
?????????? e.printStackTrace();
?????? } catch(ClassNotFoundException e) {
?????????? e.printStackTrace();
?????? }
?
?????? // 将页面中form表单提交过来的参数保存到request对象中,采用map的形式保存的
?????? request.setAttribute("registerName", registerName);// 在页面中通过registerName取得name的值
?????? request.setAttribute("registerPassword", registerPassword);
?????? request.getRequestDispatcher("/register_success.jsp").forward(request,
????????????? response);
??? }
}
?
重新部署测试,检查数据库是否新增数据