赞
踩
负责建立底层的网络连接
负责将客户端请求的文件返回给客户端
负责根据客户端请求的路径找到对应的Servlet 并进行响应
创建maven工程 选择通过 maven-archetype-webapp骨架创建工程
配置Tomcat 点击绿色扳手旁边Add Config.... 点击灯泡 删除 application Context
给工程添加java和resources文件夹 并且在工程设置页面中的facets里面打钩 ,在工程设置页面的models->dependencies添加Tomcat相关jar包
创建Servlet 处理拦截路径 在doGet方法中写返回数据的代码
用户在浏览器中输入http://localhost:8080/hello请求地址 当发出请求时,该请求会首先被Tomcat拦截, 然后根据请求的路径中的字地址找到对应的Servlet,两种查找方式:1. 通过web.xml配置文件 2. 通过注解方式(servlet3.0以上版本推荐使用的方式), 找到对应的Servlet后Tomcat会通过反射技术将Servlet实例化,并且调用对象中的service方法, 在service方法内部判断请求方式,如果请求方式是get则掉doGet方法, 如果请求方式为post 则调用doPost方法
get请求: 请求参数放在请求地址的后面(不能传递敏感信息), 请求参数的大小有限制(只能传递4k以内数据)
浏览器地址栏中发出的请求
通过html页面中的超链接
通过form表单 默认提交方式(method=get)
post请求: 请求参数放在请求体内(由于不可见所以安全性较高), 请求参数无大小限制(一般用于文件上传)
通过form表单 method=post
在webapp下面创建sayhello.html页面 页面中准备form表单 提交地址为sayhello, 表单中一个文本框
创建Servlet名字为ServletSayHello, 处理路径为 /sayhello 在doGet方法中获取传递过来的参数 , 在接收到的参数后面拼上"你好" 返回给浏览器
在webapp下面创建mul.html页面 页面中准备form表单 提交地址为mul 表单里面两个文本输入框 分别获取用户输入的两个数字, 再加一个提交按钮
创建Servlet 名为 ServletMul 处理路径为 /mul , 在doGet方法中或传递过来的两个参数,获取到的参数为字符串 需要转成int 把相乘之后的结果返回给浏览器
在webapp下面创建ai.html页面 页面中准备form表单 提交地址为ai ,表单里面1个文本输入框 获取用户输入的信息, 再加一个提交按钮
创建ServletAI 处理路径 /ai 在doGet方法中获取传递过来的信息, 对信息内容进行替换 把替换完的内容 返回给浏览器.
创建maven工程 选择通过 maven-archetype-webapp骨架创建工程
配置Tomcat 点击绿色扳手旁边Add Config.... 点击灯泡 删除 application Context
给工程添加java和resources文件夹 并且在工程设置页面中的facets里面打钩 ,在工程设置页面的models->dependencies添加Tomcat相关jar包
在webapp下面创建注册页面 reg.html 在页面中准备form表单 提交地址为reg 请求方式改成post , 两个文本输入框 和 一个提交按钮
创建ServletReg, 拦截路径为 /reg 在doPost里面 先设置字符集 获取传递过来的用户名和密码 在控制台输出
把jdbc02工程中pom.xml里面用到的MySQL坐标 和数据库连接池坐标 复制到新工程的pom.xml里面
把jdbc02工程中的DBUtils复制到新工程的cn.tedu包下面
把jdbc02工程中的jdbc.properties配置文件复制到新工程的相同位置
在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=DBUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
- //让文件和属性对象关联 异常抛出
- try {
- p.load(ips);
- } catch (IOException e) {
- e.printStackTrace();
- }
- //从属性对象中获取数据 只能获取字符串类型
- String username=p.getProperty("db.username");
- String password=p.getProperty("db.password");
- String driver=p.getProperty("db.driver");
- String url=p.getProperty("db.url");
-
- //创建数据库连接池
- ds=new DruidDataSource();
- //设置数据库连接信息
- ds.setDriverClassName(driver);
- ds.setUrl(url);
- ds.setUsername(username);
- ds.setPassword(password);
- //获取初始数量和最大连接数量
- String initSize=p.getProperty("db.initialSize");
- String maxSize=p.getProperty("db.maxActive");
-
- ds.setInitialSize(Integer.parseInt(initSize));//设置初始连接数量
- ds.setMaxActive(Integer.parseInt(maxSize));//设置最大连接数量
-
- }
- public static Connection getConn() throws Exception {
- Connection conn=ds.getConnection();//获取连接 异常抛出
- System.out.println(conn);
- return conn;
- }
-
- }
- db.driver=com.mysql.cj.jdbc.Driver
- db.url=jdbc:mysql://localhost:3306/(你自己的数据库名)?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
- 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 username=request.getParameter("username");
- String password=request.getParameter("password");
- System.out.println(username+":"+password);
- try ( Connection conn=DBUtils.getConn()){
- String sql="insert into user values(null,?,?)";
- PreparedStatement ps=conn.prepareStatement(sql);
- ps.setString(1,username);
- ps.setString(2,password);
- ps.executeUpdate();
- response.setContentType("text/html;charset=utf-8");
- PrintWriter pw=response.getWriter();
- pw.print("注册完成!");
- pw.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- /* request.setCharacterEncoding("utf-8");
- String username=request.getParameter("username");
- String password=request.getParameter("password");
- System.out.println(username+":"+password);
- try ( Connection conn=DBUtils.getConn()){
- String sql="insert into user values(null,?,?)";
- PreparedStatement ps=conn.prepareStatement(sql);
- ps.setString(1,username);
- ps.setString(2,password);
- ps.executeUpdate();
- response.setContentType("text/html;charset=utf-8");
- PrintWriter pw=response.getWriter();
- pw.print("注册完成");
- pw.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- */
- }
-
- protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。