当前位置:   article > 正文

前端 后端 数据库 连接起来_数据库与前端的连接方式

数据库与前端的连接方式

Web服务软件做了哪些事儿?

  1. 负责建立底层的网络连接

  2. 负责将客户端请求的文件返回给客户端

  3. 负责根据客户端请求的路径找到对应的Servlet 并进行响应

如何创建Web工程

  1. 创建maven工程 选择通过 maven-archetype-webapp骨架创建工程

  2. 配置Tomcat 点击绿色扳手旁边Add Config.... 点击灯泡 删除 application Context

  3. 给工程添加java和resources文件夹 并且在工程设置页面中的facets里面打钩 ,在工程设置页面的models->dependencies添加Tomcat相关jar包

  4. 创建Servlet 处理拦截路径 在doGet方法中写返回数据的代码

Servlet响应流程

  • 用户在浏览器中输入http://localhost:8080/hello请求地址 当发出请求时,该请求会首先被Tomcat拦截, 然后根据请求的路径中的字地址找到对应的Servlet,两种查找方式:1. 通过web.xml配置文件 2. 通过注解方式(servlet3.0以上版本推荐使用的方式), 找到对应的Servlet后Tomcat会通过反射技术将Servlet实例化,并且调用对象中的service方法, 在service方法内部判断请求方式,如果请求方式是get则掉doGet方法, 如果请求方式为post 则调用doPost方法

请求方式GET和POST

  1. get请求: 请求参数放在请求地址的后面(不能传递敏感信息), 请求参数的大小有限制(只能传递4k以内数据)

    • 浏览器地址栏中发出的请求

    • 通过html页面中的超链接

    • 通过form表单 默认提交方式(method=get)

  2. post请求: 请求参数放在请求体内(由于不可见所以安全性较高), 请求参数无大小限制(一般用于文件上传)

    • 通过form表单 method=post

SayHello练习

  1. 在webapp下面创建sayhello.html页面 页面中准备form表单 提交地址为sayhello, 表单中一个文本框

  2. 创建Servlet名字为ServletSayHello, 处理路径为 /sayhello 在doGet方法中获取传递过来的参数 , 在接收到的参数后面拼上"你好" 返回给浏览器

乘法练习

  1. 在webapp下面创建mul.html页面 页面中准备form表单 提交地址为mul 表单里面两个文本输入框 分别获取用户输入的两个数字, 再加一个提交按钮

  2. 创建Servlet 名为 ServletMul 处理路径为 /mul , 在doGet方法中或传递过来的两个参数,获取到的参数为字符串 需要转成int 把相乘之后的结果返回给浏览器

AI练习

  1. 在webapp下面创建ai.html页面 页面中准备form表单 提交地址为ai ,表单里面1个文本输入框 获取用户输入的信息, 再加一个提交按钮

  2. 创建ServletAI 处理路径 /ai 在doGet方法中获取传递过来的信息, 对信息内容进行替换 把替换完的内容 返回给浏览器.

注册功能步骤:

  1. 创建maven工程 选择通过 maven-archetype-webapp骨架创建工程

  2. 配置Tomcat 点击绿色扳手旁边Add Config.... 点击灯泡 删除 application Context

  3. 给工程添加java和resources文件夹 并且在工程设置页面中的facets里面打钩 ,在工程设置页面的models->dependencies添加Tomcat相关jar包

  4. 在webapp下面创建注册页面 reg.html 在页面中准备form表单 提交地址为reg 请求方式改成post , 两个文本输入框 和 一个提交按钮

  5. 创建ServletReg, 拦截路径为 /reg 在doPost里面 先设置字符集 获取传递过来的用户名和密码 在控制台输出

  6. 把jdbc02工程中pom.xml里面用到的MySQL坐标 和数据库连接池坐标 复制到新工程的pom.xml里面

  7. 把jdbc02工程中的DBUtils复制到新工程的cn.tedu包下面

  8. 把jdbc02工程中的jdbc.properties配置文件复制到新工程的相同位置

  9. 在ServletReg的doPost方法里面 把获取到的用户名和密码通过JDBC代码保存到数据库里面

  1. <!-- 连接MySQL数据库的依赖 -->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <version>8.0.15</version>
  6. </dependency>
  7. <!-- 数据库连接池 -->
  8. <dependency>
  9. <groupId>com.alibaba</groupId>
  10. <artifactId>druid</artifactId>
  11. <version>1.1.21</version>
  12. </dependency>
  1. import com.alibaba.druid.pool.DruidDataSource;
  2. import java.io.IOException;
  3. import java.io.InputStream;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.SQLException;
  7. import java.util.Properties;
  8. public class DBUtils {
  9. private static DruidDataSource ds;
  10. static {
  11. //通过属性对象读取配置文件数据 替换掉下面写死的内容
  12. //创建属性对象
  13. Properties p=new Properties();
  14. //获取文件输入流
  15. InputStream ips=DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
  16. //让文件和属性对象关联 异常抛出
  17. try {
  18. p.load(ips);
  19. } catch (IOException e) {
  20. e.printStackTrace();
  21. }
  22. //从属性对象中获取数据 只能获取字符串类型
  23. String username=p.getProperty("db.username");
  24. String password=p.getProperty("db.password");
  25. String driver=p.getProperty("db.driver");
  26. String url=p.getProperty("db.url");
  27. //创建数据库连接池
  28. ds=new DruidDataSource();
  29. //设置数据库连接信息
  30. ds.setDriverClassName(driver);
  31. ds.setUrl(url);
  32. ds.setUsername(username);
  33. ds.setPassword(password);
  34. //获取初始数量和最大连接数量
  35. String initSize=p.getProperty("db.initialSize");
  36. String maxSize=p.getProperty("db.maxActive");
  37. ds.setInitialSize(Integer.parseInt(initSize));//设置初始连接数量
  38. ds.setMaxActive(Integer.parseInt(maxSize));//设置最大连接数量
  39. }
  40. public static Connection getConn() throws Exception {
  41. Connection conn=ds.getConnection();//获取连接 异常抛出
  42. System.out.println(conn);
  43. return conn;
  44. }
  45. }
  1. db.driver=com.mysql.cj.jdbc.Driver
  2. db.url=jdbc:mysql://localhost:3306/(你自己的数据库名)?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
  3. db.username=root
  4. db.password=root
  5. db.maxActive=10
  6. db.initialSize=2
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <form action="reg" method="post">
  9. <input type="text" name="username">
  10. <input type="text" name="password">
  11. <input type="submit" value="注册">
  12. </form>
  13. </body>
  14. </html>
  1. import javax.servlet.ServletException;
  2. import javax.servlet.annotation.WebServlet;
  3. import javax.servlet.http.HttpServlet;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import java.io.IOException;
  7. import java.io.PrintWriter;
  8. import java.sql.Connection;
  9. import java.sql.PreparedStatement;
  10. @WebServlet(name = "ServletReg",urlPatterns = "/reg")
  11. public class ServletReg extends HttpServlet {
  12. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  13. request.setCharacterEncoding("utf-8");
  14. String username=request.getParameter("username");
  15. String password=request.getParameter("password");
  16. System.out.println(username+":"+password);
  17. try ( Connection conn=DBUtils.getConn()){
  18. String sql="insert into user values(null,?,?)";
  19. PreparedStatement ps=conn.prepareStatement(sql);
  20. ps.setString(1,username);
  21. ps.setString(2,password);
  22. ps.executeUpdate();
  23. response.setContentType("text/html;charset=utf-8");
  24. PrintWriter pw=response.getWriter();
  25. pw.print("注册完成!");
  26. pw.close();
  27. } catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. /* request.setCharacterEncoding("utf-8");
  31. String username=request.getParameter("username");
  32. String password=request.getParameter("password");
  33. System.out.println(username+":"+password);
  34. try ( Connection conn=DBUtils.getConn()){
  35. String sql="insert into user values(null,?,?)";
  36. PreparedStatement ps=conn.prepareStatement(sql);
  37. ps.setString(1,username);
  38. ps.setString(2,password);
  39. ps.executeUpdate();
  40. response.setContentType("text/html;charset=utf-8");
  41. PrintWriter pw=response.getWriter();
  42. pw.print("注册完成");
  43. pw.close();
  44. } catch (Exception e) {
  45. e.printStackTrace();
  46. }
  47. */
  48. }
  49. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  50. }
  51. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/586312
推荐阅读
相关标签
  

闽ICP备14008679号