笔记111(代码可优化)

一、Hbulidx

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>前后端大融合</title>
        <style>
            input[type='text']{
                width: 200px;
                height: 30px;
                background-color: pink;
                border-color: #FFC0CB;
                border-radius: 10px;/*圆角边框*/
            }
            input[type='submit']{
                background-color: pink;
                border-color: pink;
                width: 40px;
                height: 30px;
                color: #FF0000;
                font-size: ;
            }
        </style>
    </head>
    <body>
        <form method="post" action="http://localhost:8080/web11_19_war_exploded/ServletDemo6">
            <h1>提交部门数据</h1>
            <h3>部门:<input type="text" name="deptno" placeholder="部门编号"/></h3>
            <h3>名称:<input type="text" name="dname" placeholder="名城编号"/></h3>
            <h3>地址:<input type="text" name="loc" placeholder="地址编号"/></h3>
            <input type="submit" value="保存" />
        </form>
    </body>
</html>

二、idea

package cn.tedu.servlet;

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;

@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String deptno = request.getParameter("deptno");
        String dname = request.getParameter("dname");
        String loc = request.getParameter("loc");
        System.out.println(deptno+dname+loc);

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

三、jdbc

package cn.tedu.servlet;

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.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

@WebServlet("/ServletDemo6")
public class ServletDemo6 extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try {
        request.setCharacterEncoding("utf-8");
        String deptno = request.getParameter("deptno");
        String dname = request.getParameter("dname");
        String loc = request.getParameter("loc");
            System.out.println(deptno+dname+loc);
            //获取驱动
            //获取连接
            //获取传输器
            //执行sql
            //关闭资源
            Class.forName("com.mysql.jdbc.Driver");
            String url = "jdbc:mysql://localhost:3306/cgb2109?characterEncoding=utf-8";
            Connection c = DriverManager.getConnection(url, "root", "root");
            String sql = "insert into dept values(?,?,?)";//sql骨架 ?是占位符
            PreparedStatement p = c.prepareStatement(sql);
            p.setObject(1, deptno);
            p.setObject(2, dname);
            p.setObject(3, loc);
            p.executeUpdate();
            p.close();
            c.close();
        } catch (Exception e) {
            //System.out.println("输入失败,请检查数据");
            e.printStackTrace();//打印报错信息
        }
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

四、结果

五、图

六、

请求转发
概述
请求转发是服务器内部资源的一种跳转方式,即当浏览器发送请求访问服务器中的某一个资源时,该资源将请求转交给另外一个资源进行处理的过程,就叫做请求转发,具有以下特点:
1,请求转发整个过程是一次请求、一次响应
2,请求转发前后,浏览器地址栏地址不会发生变化(浏览器–访问–>A–转发–>B,地址栏地址始终指向A的地址)
3,请求转发前后的request对象是同一个
4,转发前后的两个资源必须属于同一个Web应用,否则将无法进行转发
5,使用代码: request.getRequestDispatcher(访问目的资源的路径).forward(request,response);
6,也可以使用 setAttribute()/getAttribute()来验证
————————————————
servlet 1

package cn.tedu.servlet;

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;

@WebServlet("/servleta")
public class Servleta extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
//要求两个资源互相调用 但是两个资源必须在同一项目中 本质是服务器的业务浏览器发现不了
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("aservlet被调用");
        request.setAttribute("name","jack");
        request.getRequestDispatcher
                ("/Servletb").forward(request,response);

    }
}

sevlet 2

package cn.tedu.servlet;

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;

@WebServlet("/Servletb")
public class Servletb extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("b servlet被执行");
        Object date=request.getAttribute("name");
        System.out.println(date);
    }
}

测试响应(响应在浏览器上)

package cn.tedu.servlet;

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;

//测试响应
@WebServlet("/ResponseServlet")
public class ResponseServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//测试java给浏览器响应
        response.setContentType("text/html;charset=utf-8");//中文乱码 固定写法
        //获取一个写出流
        PrintWriter out = response.getWriter();//print输出可以换行
        //直接写到浏览器
        out.write("helloServlet");
        out.write("天下武功");
        out.write("唯快不破");
    }
}

重定向

1.整个过程会有两个请求 两个回应

2.地址栏会发生变化

response.sendRedirect(对方的访问方式) 谁都行

package cn.tedu.servlet;

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;

@WebServlet("/AAServlet")
public class AAServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
//面试题:重定向和请求转发的区别???
//        //1,请求转发是请求request的功能,全程1次请求1次响应,地址栏不变
//            //request.getRequestDispather("目标访问的方式").forward(请求,响应)
//        //2,重定向是response的功能,全程2次请求2次响应,地址栏改变
//            //response.sendRedirect("目标访问的方式")
//————————————————

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.sendRedirect("http://www.baidu.com/");
    }
}

更详细、原链接:cgb2109-day17_cgblpx的博客-CSDN博客

Guess you like

Origin blog.csdn.net/weixin_62451027/article/details/121471614
111