前端后端数据库连接起来
Web服务软件做了哪些事⼉?
1. 负责建⽴底层的⽹络连接
2. 负责将客户端请求的⽂件返回给客户端
3. 负责根据客户端请求的路径到对应的Servlet 并进⾏响应
如何创建Web⼯程
1. 创建maven⼯程 选择通过 maven-archetype-webapp⾻架创建⼯程
2. 配置Tomcat 点击绿⾊扳⼿旁边 点击灯泡 删除 application Context
3. 给⼯程添加java和resources⽂件夹 并且在⼯程设置页⾯中的facets⾥⾯打钩 ,在⼯程设置页⾯的models->dependencies添加
Tomcat相关jar包
4. 创建Servlet 处理拦截路径 在doGet⽅法中写返回数据的代码
Servlet响应流程
请求⽅式GET和POST
1. get请求: 请求参数放在请求地址的后⾯(不能传递敏感信息), 请求参数的⼤⼩有限制(只能传递4k以内数据)
1. 浏览器地址栏中发出的请求
2. 通过html页⾯中的超链接
3. 通过form表单 默认提交⽅式(method=get)
2. post请求: 请求参数放在请求体内(由于不可见所以安全性较⾼), 请求参数⽆⼤⼩限制(⼀般⽤于⽂件上传)
1. 通过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 点击绿⾊扳⼿旁边 点击灯泡 删除 application Context
3. 给⼯程添加java和resources⽂件夹 并且在⼯程设置页⾯中的facets⾥⾯打钩 ,在⼯程设置页⾯的models->dependencies添加
Tomcat相关jar包
4. 在webapp下⾯创建注册页⾯ reg.html 在页⾯中准备form表单 提交地址为reg 请求⽅式改成post , 两个⽂本输⼊框 和 ⼀个提交按
5. 创建ServletReg, 拦截路径为 /reg 在doPost⾥⾯ 先设置字符集 获取传递过来的⽤户名和密码 在控制台输出
6. 把jdbc02⼯程中l⾥⾯⽤到的MySQL坐标 和数据库连接池坐标 复制到新⼯程的l⾥⾯
7. 把jdbc02⼯程中的DBUtils复制到新⼯程的cn.tedu包下⾯
8. 把jdbc02⼯程中的jdbc.properties配置⽂件复制到新⼯程的相同位置
9. 在ServletReg的doPost⽅法⾥⾯ 把获取到的⽤户名和密码通过JDBC代码保存到数据库⾥⾯
<!-- 连接MySQL数据库的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.15</version>
</dependency>
<!-- 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
import com.alibaba.druid.pool.DruidDataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtils {
private static  DruidDataSource ds;
static {
//通过属性对象读取配置⽂件数据替换掉下⾯写死的内容
//创建属性对象
Properties p=new Properties();
//获取⽂件输⼊流
InputStream ips=ClassLoader().getResourceAsStream("jdbc.properties");
//让⽂件和属性对象关联异常抛出
try {
p.load(ips);
} catch (IOException e) {
e.printStackTrace();
}
//从属性对象中获取数据只能获取字符串类型
String Property("db.username");
String Property("db.password");
String Property("db.driver");
String Property("db.url");
//创建数据库连接池
ds=new DruidDataSource();
//设置数据库连接信息
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
//获取初始数量和最⼤连接数量
String Property("db.initialSize");
String Property("db.maxActive");
ds.setInitialSize(Integer.parseInt(initSize));//设置初始连接数量
ds.setMaxActive(Integer.parseInt(maxSize));//设置最⼤连接数量
}
public static Connection getConn() throws Exception {
Connection Connection();//获取连接异常抛出
System.out.println(conn);
return conn;
}
}
db.sql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/(你⾃⼰的数据库名)?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=tr db.username=root
db.password=root
db.maxActive=10
db.initialSize=2
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="reg" method="post"> <input type="text" name="username"> <input type="text" name="password"> <input type="submit" value="注册"> </form>
</body>
</html>
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
@WebServlet(name = "ServletReg",urlPatterns = "/reg")
public class ServletReg extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {                request.setCharacterEncoding("utf-8");
String Parameter("username");
String Parameter("password");
System.out.println(username+":"+password);
try ( Connection Conn()){
String sql="insert into user values(null,?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
response.setContentType("text/html;charset=utf-8");
PrintWriter Writer();
pw.print("注册完成!");
pw.close();
前端跟后端哪个就业难} catch (Exception e) {
e.printStackTrace();
}
/*        request.setCharacterEncoding("utf-8");
String Parameter("username");
String Parameter("password");
System.out.println(username+":"+password);
try ( Connection Conn()){
String sql="insert into user values(null,?,?)";
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2,password);
response.setContentType("text/html;charset=utf-8");
PrintWriter Writer();
pw.print("注册完成");
pw.close();
} catch (Exception e) {
e.printStackTrace();
}
*/
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。