本文内容概要
在这里插入图片描述

前言
    第一次发理论技术类文章,可能写的不是很完善,还请各位看客多多指点。
    本文内容一万余字,以HTTP协议内容与Servlet API接口为中心,图文并茂地发散讲解Java Web中各项重要技术如Cookie、JSP、JDBC、Filter过滤器等。实乃小白入门、期末恶补的好助手。
    本文以理论基础为重点,内容大纲取自于狂神说Java Web,文章中的相关实验也在该视频教材中。时间充裕的话,建议跟随视频手撕一遍代码,加深理解。

---再小的帆,也能远航!

文章目录

  • 一、Tomcat
  • 二、HTTP协议
  • 三、Maven
  • 四、Servlet
  • 五、Cookie与Session
  • 六、JSP
  • 七、JavaBean
  • 八、JDBC
  • 九、MVC三层架构
  • 十、Filter 过滤器
  • 十一、Servlet监听器

一、Tomcat

在这里插入图片描述
(一)介绍
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
(二)Tomcat启动
在这里插入图片描述

在这里插入图片描述

(三)Tomcat配置

可以配置启动的端口号

  • tomcat的默认端口号为:8080
  • mysql:3306
  • http:80
  • https:443
 <Connector port="8081" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

可以配置主机的名称

  • 默认的主机名为:localhost->127.0.0.1
  • 默认网站应用存放的位置为:webapps
   <Host name="www.qinjiang.com"  appBase="webapps"unpackWARs="true" autoDeploy="true">

在这里插入图片描述

在这里插入图片描述

二、HTTP协议

(一)什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
HTTP协议
在这里插入图片描述

(二)工作流程
在这里插入图片描述
(三)特点(无连接的,无状态的)
在这里插入图片描述
(四)HTTP1.0与HTTP1.1区别

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

(五)HTTPS(安全性)与HTTP的差异
概述:HTTPS采用了DH和SSL等加密算法实现对HTTP报文的加密传输,实现数据的安全性

HTTPS工作在TCP协议443端口,它的工作流程一般如以下方式:
1) 完成TCP三次同步握手
2) 客户端验证服务器数字证书
3) DH算法协商对称加密算法的密钥、hash算法的密钥
4) SSL安全加密隧道协商完成
5)网页以加密的方式传输,用协商的对称加密算法和密钥加密保证数据机密性;用协商的hash算法进行数据完整性保护,保证数据不被篡改

(六)代理服务器
在这里插入图片描述
在这里插入图片描述

(七)其他信息
1、常见状态码

  • 200状态码:表示请求已成功,请求所希望的响应头或数据体将随此响应返回
  • 302状态码:请求的资源临时从不同的URI响应请求,但请求者应继续使用原有位置来进行以后的请求(重定向)
  • 404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。
  • 500状态码:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。

2、HTTP请求与相应
(1)请求头

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.

(2)响应头

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式  GBK   UTF-8   GB2312  ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;

(八)网站是如何进行访问
谈谈网站是如何进行访问的
1、输入一个域名(域名系统)
2、检查本机的 C:\Windows\System32\drivers\etc\hosts(本地域名服务器缓存)配置文件下有没有这个域名映射;
    a、有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
    b、没有:去DNS服务器找,找到的话(DNS域名服务器解析域名过程)就返回,找不到就返回404;

白话文概述:

     首先分析一下一个域名结构,比如www.baidu.com,这域名实际上是一个层次结构,最后面的com是顶级域名,在后面的baidu是二级域名,www表示这个是个万维网站点,当然这个域名很短,其实后面还有三级域名等等。
    然后这些域名会有相应的服务器,最上一层的服务器叫做根域名服务器,这个服务器指明这个域名应该向哪个顶级域名服务器的发送查询请求,而顶级域名服务器存储的是该顶级域名服务器下所有二级域名与ip地址的映射,再下面是权限域名服务器,这个服务器分布很广,它存储的是后续域名与ip地址的映射。再有一个是本地域名服务器,它是首个介绍到域名解析请求的服务器,它负责去向其他服务器发送解析域名请求,而不是让浏览器去负责解析请求。
    了解完这些,接下来就是域名与ip地址的映射流程。主要分两种方式,一种是迭代,每次解析都由本地服务器去请求,一种是递归,由本地域名发送请求后,再由根域名服务器访问后续顶级域名服务器,顶级域名服务器在向下进行请求,依次一直查询,返回就是按原路返回。这里我们讲讲迭代的方式。首先浏览器发起一个域名的请求,它会想发送至本地域名服务器,本地域名服务器再向根域名服务器发起请求,根域名服务器将相对应的顶级域名服务器发送给本地域名服务器,本地域名服务器再向这个顶级域名服务器发请求,顶级域名服务器再返回相应权限域名服务器的,依次一直迭代,如果查询到了IP,本地域名服务器就将其返回给浏览器,否则就404。
    找到了IP地址就可以建立TCP连接了,然后再使用HTTP协议传送一些万维网的文档。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

三、Maven

我为什么要学习这个技术?
在Javaweb开发中,需要使用大量的jar包,我们手动去导入;
如何能够让一个东西自动帮我导入和配置这个jar包。
由此,Maven诞生了!
(一)Maven项目架构管理工具
Maven是一个项目架构管理工具
我们目前用来就是方便导入jar包的!
Maven的核心思想:约定大于配置
有约束,不要去违反。
Maven会规定好你该如何去编写我们的Java代码,必须要按照这个规范来;
(二)pom文件
pom.xml 是Maven的核心配置文件
在这里插入图片描述

maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:

<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build><resources><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>true</filtering></resource></resources>
</build>

(三)Maven中jar包联系关系图
在这里插入图片描述
(四)Maven仓库使用
地址:https://mvnrepository.com/
在这里插入图片描述

在这里插入图片描述

四、Servlet

(一)Servlet简介

  • Servlet就是sun公司开发动态web技术
  • Sun为WEB开发提供了的API接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:
    • 编写一个类,实现Servlet接口 把开发好的Java类部署到web服务器中。
    • Serlvet接口Sun公司有两个默认的实现类:HttpServlet(常用),GenericServlet

(二)编写一个Servlet程序
在这里插入图片描述

编写一个普通类
实现Servlet接口,这里我们直接继承HttpServlet

public class HelloServlet extends HttpServlet {//由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样;@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//ServletOutputStream outputStream = resp.getOutputStream();PrintWriter writer = resp.getWriter(); //响应流writer.print("Hello,Serlvet");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

3、编写Servlet的映射

<!--注册Servlet-->
<servlet><servlet-name>hello</servlet-name><servlet-class>com.kuang.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping><servlet-name>hello</servlet-name><url-pattern>/hello</url-pattern>
</servlet-mapping>

4、配置Tomcat,启动

(三)Servlet原理
1、Servlet是由Web服务器(Tomcat)调用WEB服务器在接收到浏览器的请求后,如果是首次访问,就会创建一个Servlet的class文件,此后直接调用这个class文件即可,这就是为什么Servlet项目在首次比较慢,后面比较快的原因。
2、同时WEB服务器还会产生两个东对象,一个是请求,一个是响应,这两个对象会被Servlet接口中的方法调用,而这个方法是被我们重写的,于是请求和响应也就被我们接管处理,我们直接根据自己的要求完成相应功能即可。

在这里插入图片描述
(四)ServletContext
web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它是一个全局性文件,它代表了当前的web应用;
1、共享数据
我在这个Servlet中保存的数据,可以在另外一个servlet中拿到,这里说的另一个servlet指的是另一个实现了servlet接口的类

public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//this.getInitParameter()   初始化参数//this.getServletConfig()   Servlet配置//this.getServletContext()  Servlet上下文ServletContext context = this.getServletContext();String username = "秦疆"; //数据context.setAttribute("username",username); //将一个数据保存在了ServletContext中,名字为:username 。值 username}}
public class GetServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext context = this.getServletContext();String username = (String) context.getAttribute("username");resp.setContentType("text/html");resp.setCharacterEncoding("utf-8");resp.getWriter().print("名字"+username);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

2、获取初始化参数

<!--配置一些web应用初始化参数-->
<context-param><param-name>url</param-name><param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>

(五)读取资源文件
Properties

  • 在java目录下新建properties
  • 在resources目录下新建properties

发现:都被打包到了同一个路径下:classes,我们俗称这个路径为classpath:
思路:需要一个文件流;

(六)HttpServletRequest与HttpServletResponse
web服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse;
如果要获取客户端请求过来的参数:找HttpServletRequest
如果要给客户端响应一些信息:找HttpServletResponse
1、HttpServletRequest
(1) HttpServletRequest代表客户端的请求

在这里插入图片描述

在这里插入图片描述
(2)HttpServletRequest存储页面间传递的数据
Jsp-Servlet常见 两种 页面间传递数据方式(request转发和session)
①request转发(麻烦):一次request转发只适合,两个页面间传值(一次传值)。俗称:一次request转发 :【一个转发链】
②session(推荐):使用session比较简单。在小项目,需要创建的session不多,服务器压力不大时,平时推荐用session。除非特殊需求。

  @RequestMapping("/getRequestDispatcher")public void getRequestDispatcher(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setAttribute("user", "李四");request.getRequestDispatcher("/WEB-INF/views/welcome.jsp").forward(request, response);}

2、HttpServletResponse
(1)响应的方法

    i.负责向浏览器发送数据的方法

ServletOutputStream getOutputStream() throws IOException;
PrintWriter getWriter() throws IOException;

    ii.负责向浏览器发送响应头的方法

void setCharacterEncoding(String var1);//编码方式void setContentLength(int var1);void setContentLengthLong(long var1);void setContentType(String var1);//响应体类型void setDateHeader(String var1, long var2);void addDateHeader(String var1, long var2);void setHeader(String var1, String var2);//设置响应头void addHeader(String var1, String var2);void setIntHeader(String var1, int var2);void addIntHeader(String var1, int var2);

    iii.实现重定向

  void sendRedirect(String var1) throws IOException;

(七)重定向和转发的区别
相同点
页面都会实现跳转

不同点
转发:当使用转发时,servlet会调用内部的一个方法完成请求处理和转发动作,首次请求和后续的转发动作都是在同一个请求里面完成的。于是在浏览器地址栏显示的仍然是第一次访问的地址,它对本次动作并不知情。

重定向:当使用重定向时,servlet会将这页面跳转的请求响应给浏览器,让浏览器去亲自发送请求,于是浏览器的地址栏里的地址时会发生变化的。

在这里插入图片描述

五、Cookie与Session

(一)会话、Cookie与Session

     会话可以简单理解为:用户打开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。
   会话需要解决的问题:
   每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每一个用户的数据。
   例如:用户点击超链接通过一个servlet购买了一个商品,程序应该保存用户购买的商品,以便于用户点结账servlet时,结账 servlet可以得到用户商品为用户结账。
   用户购买的商品保存在request或servletContext中行不行?

在这里插入图片描述

   首先我们知道HTTP协议是无状态的,也就是说同一个浏览器对同一个服务器发送多次请求,得到的结果是一样的,也就是说服务器是不识别用户的。而有些时候我们的服务器是需要知道用户的信息的,比如我们在网上购物的时候,我们通常会将我们要买的东西放入购物车内,再一起买走。由于HTTP是无状态的,于是服务器根本无法记录我们到底往我们的购物车里放了啥,因此Cookie和Session技术就出现了。它们的作用就是识别和确认用户,解决HTTP的无状态情况。

1、Cookie
   Cookie是客户端技术,cookie是小段文本信息,在网络服务器上生成,并发送给浏览器,在客户端上存储,且每次请求都会携带这些cookie。通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。
   依旧是购物车的例子,当我们看上了一个商品,将它放入购物车后,服务器就会将这个商品信息封装在cookie中并返回给浏览器,往后每次放入购物车就会产生一个cookie,最后我们结账付款的时候,服务器就可以根据我们的这些cookie获取我们所有要购买的东西。

2、Session
   Session是服务器端技术,服务器在运行时可以为每一个用户的浏览器创建一个其独享的session对象,并将其信息存储在服务器端,并且往客户端的发送一个保存了这个session id值的cookie。
   再拿我们购物车的例子,当我们往购物车里放入我们想要的商品时,服务器就会根据浏览器传来的cookie获取该用户的session id,进而得到服务器端存储这个用户的session,于是服务器就在这个session中存储我们放入购物车的商品。最后我们结账的时候,直接根据用户session中的信息获取我们想购买的所有商品。

在这里插入图片描述
    注:cookie原理中用户分别发送了三次请求(电视,手机,结账);上述原理图中最大的区分点在信息的存储位置(客户端or服务端)

管理HTTP协议会话状态 :Cookie 和Session
Cookie:将用户相关数据,保存客户端 , 用户每次访问服务器自动携带cookie数据 。
Session : 将用户相关数据,保存服务器端,为每个客户端生成一个独立Session数据对象,雅思周末班通过对象唯一编号,区分哪个浏览器对应哪个Session。

(二)Cookie技术
在这里插入图片描述
Cookie获得访问时间小结:
1、通过服务器向客户端写cookie
Cookie cookie=new Cookie(name,value);
response.addCookie(cookie);
在HTTP协议响应头信息中 Set-Cookie: last=1339556457609
2、当客户端存在cookie之后,以后每次请求自动携带 HTTP协议请求头信息 Cookie: last=1339556456859
服务器端获得需要cookie数据

Cookie[] cookies=request.getCookies(); //获得客户端所有cookie 
if(cookies==null){} //判断cookie是否存在,遍历cookie获得需要信息

什么是会话cookie ,什么是持久cookie ?

  • cookie信息默认情况,保存在浏览器内存中 —— 会话cookie,会话cookie 会在关闭浏览器时清除 (默认情况下是会话cookie)
  • 持久Cookie,cookie数据保存客户端硬盘上,通过setMaxAge 设置Cookie为持久Cookie(API:void setMaxAge(int expiry);//Sets the maximum age in seconds for this Cookie),例子:小学英语词汇登录网站时,会出现两个月之内自动登录之类的功能

(三)Session技术
session(推荐):使用session比较简单。在小项目,需要创建的session不多,服务器压力不大时,平时推荐用session。除非特殊需求。

(四)总结
1、cookie与session出现的原因是,http是无状态的,比如你用浏览器访问淘宝网登录了,按道理说,你就可以查看自己账号购物车里的宝贝列表了,但假设不用cookie与session等技术保存用户的信息,http是不知道你对淘宝网的多次请求是同一个人的。
2、cookie保存在客户端,也就是浏览器端。每次往服务器发请求,都会在请求头里带这些cookie,缺点显而易见,浪费流量、降低效率。
3、session将用户信息保存在服务端,只需要往客户端的cookie中保存一个session id值就可以了。这样每次往服务器发请求,cookie的size很小,在服务端只需要根据cookie传过来的seesion id进行匹配session,从session中获取用户信息就可以了。

六、JSP

(一)什么是JSP
Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术!
最大的特点:

  • 写JSP就像在写HTML
  • 区别:
    • HTML只给用户提供静态的数据
    • JSP允许在页面中嵌入JAVA代码,为用户提供动态数据;

(二)JSP原理
思路:JSP到底怎么执行的!

  • 代码层面没有任何问题
  • 服务器内部工作
    tomcat中有一个work目录;
    IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录
    在这里插入图片描述

发现页面转变成了Java程序!
在这里插入图片描述

JSP最终也会被转换成为一个Java类!
JSP 本质上就是一个Servlet

(三)基本语法

  <%--JSP表达式作用:用来将程序的输出,输出到客户端<%= 变量或者表达式%>--%><%= new java.util.Date()%>
 <%--jsp脚本片段--%><%int sum = 0;for (int i = 1; i <=100 ; i++) {sum+=i;}out.println("<h1>Sum="+sum+"</h1>");%>

(四)基本指令

<%@page args.... %>//用以设置页面的静态属性
<%@include file=""%><%--@include会将两个页面合二为一--%><%@include file="common/header.jsp"%>
<h1>网页主体</h1><%@include file="common/footer.jsp"%><hr><%--jSP标签jsp:include:拼接页面,本质还是三个--%>
<jsp:include page="/common/header.jsp"/>
<h1>网页主体</h1>
<jsp:include page="/common/footer.jsp"/>

(五)九大内置对象

  • PageContext 存东西
  • Request 存东西
  • Response
  • Session 存东西
  • Application SerlvetContext】 存东西
  • config 【SerlvetConfig】
  • out
  • page ,不用了解
  • exception
pageContext.setAttribute("name1","秦疆1号"); //保存的数据只在一个页面中有效
request.setAttribute("name2","秦疆2号"); //保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","秦疆3号"); //保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","秦疆4号");  //保存的数据只在服务器中有效,从打开服务器到关闭服务器

(六)JSTL标签与EL表达式
JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义许多标签,可以供我们使用,标签的功能和Java代码一样!
JSTL是为弥补HTML标签不足而定义的具有语法功能的标签

EL表达式是为了使JSP写起来更加简单,它是一种脚本语言,允许通过JSP访问Java组件。
EL表达式: ${ }

  • 获取数据
  • 执行运算
  • 获取web开发的常用对象
    在这里插入图片描述
<form action="coreif.jsp" method="get"><%--EL表达式获取表单中的数据${param.参数名}--%><input type="text" name="username" value="${param.username}"><input type="submit" value="登录">
</form><%--判断如果提交的用户名是管理员,则登录成功--%>
<c:if test="${param.username=='admin'}" var="isAdmin"><c:out value="管理员欢迎您!"/>
</c:if><%--自闭合标签--%>
<c:out value="${isAdmin}"/>

七、JavaBean

(一)什么是JavaBean
JavaBean 是一种JAVA语言写成的可重用组件
JavaBean符合一定规范编写的Java类,不是一种技术,而是一种规范。
JavaBean有特定的写法:

  • 必须要有一个无参构造
  • 属性必须私有化
  • 必须有对应的get/set方法;
  • 这个类应是可序列化的。实现serializable接口
  • Javabean当中可以有其它的方法

(二)与POJO与ENTITY的区别
1、POJO 简单的Java对象,实际就是普通JavaBeans,其中有一些属性及其getter、setter方法的类,没有业务逻辑,不允许有其他方法

2、ENTITY是一个实体类,对其理解众说风云,我的理解是:为与数据库表相适应而提出的一个Java实体类规范

  • 就是属性类,通常定义在model层里面
  • 一般的实体类对应一个数据表,其中的属性对应数据表中的字段。

(三)实体类的规范

  • 实体类的名字尽量和数据库的表的名字对应相同。
  • 实体类应该实现java.io.Serializable接口。
  • 实体类应该有个无参的构造方法。
  • 实体类应该有个有参(所有的参数)的构造方法。
  • 实体类有属性和方法,属性对应数据库中表的字段,主要有getter和setter方法。
  • 实体类还应该有个属性serialVersionUID。例如:private static final long serialVersionUID = -6125297654796395674L;
  • 属性一般是private类型,方法位public类型,对于数据库自动生成的ID字段对应的属性的set方法应为private。

(四)ORM
  ORM:对象关系映射zd(Object Relational Mapping,简称ORM),目的是想像操作对象一样操作数据库.因为数据库不是面向对象的,所以需要编程进行映射,一般用来和数据库的字段做映射==>ORM
  ORM :对象关系映射

  • 表—>类
  • 字段–>属性
  • 行记录---->对象

people表

id name age address
1 秦疆1号 3 西安
2 秦疆2号 18 西安
3 秦疆3号 100 西安
 class People{private int id;private String name;private int id;private String address;}​class A{new People(1,"秦疆1号",3,"西安");new People(2,"秦疆2号",3,"西安");new People(3,"秦疆3号",3,"西安");}

八、JDBC

    在早期java开发中,如果要使java连接数据库,就需要安装相应数据库的连接驱动,而各个不同的数据库的驱动实现是大不相同的,因此各数据库之间的差异很大,使得开发人对数据库的连接十分繁琐,因此JDBC应运而生,它统一了所有数据库的连接方式,各个数据库仅需要对JDBC提供相应的实现,而开发人员直接连接JDBC即可轻松地连接各种不同的数据库。
(一)JDBC是什么
    JDBC(Java DataBase Connectivity),是一种用于执行SQL语句的Java 接口,由一组用Java语言编写的类和接口组成,是Java和数据库之间的一个桥梁,是一个规范而不是一个特定的实现,而由各个数据库提供相应的实现。

(二)建立JDBC和数据库之间的Connection连接
这里需要提供:数据库服务端的IP地址:127.0.0.1
                         数据库的端口号: 3306
                         数据库名称 DBName
                         编码方式 UTF-8
                         账号 root
                         密码 admin

Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/exam?characterEncoding=UTF-8", "root", "admin");

(三)创建Statement或者PreparedStatement接口,执行SQL语句

  • 使用Statement接口

Statement接口创建之后,可以执行SQL语句,完成对数据库的增删改查。其中 ,增删改只需要改变SQL语句的内容就能完成,然而查询略显复杂。在Statement中使用字符串拼接的方式,该方式存在句法复杂,容易犯错等缺点,具体在下文中的对比中介绍。所以Statement在实际过程中使用的非常的少,所以具体的放到PreparedStatement那里给出详细代码。

Statement s = conn.createStatement();
// 准备sql语句
// 注意: 字符串要用单引号'
String sql = "insert into t_courses values(null,"+"'数学')";
//在statement中使用字符串拼接的方式,这种方式存在诸多问题
s.execute(sql);
System.out.println("执行插入语句成功");
  • 使用PreparedStatement接口

与 Statement一样,PreparedStatement也是用来执行sql语句(含占位符)的与创建Statement不同的是,需要根据sql语句创建PreparedStatement。除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接。

String sql = "insert into t_course(course_name) values(?)"; 
conn = DbUtil.getConnection();
pstmt = (PreparedStatement) conn.prepareStatement(sql);
pstmt.setString(1, courseName); //给占位符赋值
pstmt.executeUpdate();			//执行

差异:
1、使用PreparedStatement时,是采用占位符的方式“?”在这里就起到占位符的作用。这种方式除了避免了statement拼接字符串的繁琐之外,每次SQL语句都是一样的,java类就不会再次编译,且这里的参数索引是从1开始的。
2、增删改都使用pstmt.executeUpdate();语句进行SQL语句的提交下文的查询。
3、 PreparedStatement接口提供了相应的批量操作的方法。

for(int i=1;i<100;i++){pstmt.setInt(1,8000+i);pstmt.setString(2,"赵_"+i);pstmt.addBatch();
//批量更新if(i%10==0){pstmt.executeBatch();}

PreparedStatement的优点:
1、其使用参数设置,可读性好,不易记错。在statement中使用字符串拼接,可读性和维护性比较差。
2、其具有预编译机制,性能比statement更快。
3、其能够有效防止SQL注入攻击。

(四)处理和显示结果
执行查询语句,并把结果集返回给集合ResultSet

ResultSet rs = s.executeQuery(sql);

利用While(ResultSet.next()){…}循环将集合ResultSet中的结果遍历出来。每个记录对应一个对象

while (rs.next()){int courseId = rs.getInt("course_id");String courseName = rs.getString("course_name");//每个记录对应一个对象Course course = new Course();
//在我的项目中创建了course类,其中定义了set方法,所以这里将查询到的值传给了course,也可以直接打印到控制台course.setCourseId(courseId);course.setCourseName(courseName);//将对象放到集合中courseList.add(course);}

(五)释放资源
在JDBC编码的过程中我们创建了Connection、Statement、ResultSet等资源,这些资源在使用完毕之后是一定要进行关闭的。关闭的过程中遵循从里到外的原则。这里我将这些关闭的操作写成一个方法和建立连接的方法一起放到一份工具类中

public static void close(PreparedStatement pstmt){if(pstmt != null){						//避免出现空指针异常try{pstmt.close();}catch(SQLException e){e.printStackTrace();}}}public static void close(Connection conn){if(conn != null){try {conn.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}}public static void close(ResultSet rs){if (rs != null) {try {rs.close();} catch (SQLException e) {// TODO: handle exceptione.printStackTrace();}}}

九、MVC三层架构

(一)什么是MVC(早期框架)
MVC的全名是Model View Controller,分别表示是模型-视图-控制器,是一种软件设计典范。
它主要特点是是用采用分离 业务逻辑 、 数据 与 界面显示 的方式来组织代码。

各部分职责
Model

  • 业务处理 :业务逻辑(Service)
  • 数据持久层:CRUD (Dao)

View

  • 展示数据(前端html)
  • 提供链接发起Servlet请求 (a,form,img…)

Controller (Servlet)

  • 接收用户的请求 :(req:请求参数、Session信息….)
  • 交给业务层处理相应的代码
  • 控制视图的跳转

白话文概述:
    首先我们面对的是MVC层中的View部分,也就是视图部分,它会给我们显示一些页面信息并提供一些功能的请求接口(a标签),当我需要执行某些功能时,就会点击这些接口,这些接口就会调用Controller层中的方法,接收我们提交的请求,并调用相应的Model层中业务代码,待Model中将业务处理好后,就会返回相应的数据给Controller,Controller再将这些数据返回给前端并进行页面跳转,于是我们就可以获得相应回来的信息了。

在这里插入图片描述

十、Filter 过滤器

(一)介绍
Filter:过滤器 ,顾名思义,用来过滤网站的请求与数据;
通过在web.xml配置过滤器选择过滤的范围

在这里插入图片描述
(二)开发步骤
1、导包(导包不要错)
在这里插入图片描述
2、编写过滤器

实现Filter接口,重写对应的方法即可

public class CharacterEncodingFilter implements Filter {​//初始化:web服务器启动,就以及初始化了,随时等待过滤对象出现!public void init(FilterConfig filterConfig) throws ServletException {System.out.println("CharacterEncodingFilter初始化");}​//Chain : 链/*1. 过滤中的所有代码,在过滤特定请求的时候都会执行2. 必须要让过滤器继续同行chain.doFilter(request,response);*/public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding("utf-8");response.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=UTF-8");​System.out.println("CharacterEncodingFilter执行前....");chain.doFilter(request,response); //让我们的请求继续走,如果不写,程序到这里就被拦截停止!System.out.println("CharacterEncodingFilter执行后....");}​//销毁:web服务器关闭的时候,过滤会销毁public void destroy() {System.out.println("CharacterEncodingFilter销毁");}}


3、在web.xml中配置 Filter

 <filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>com.kuang.filter.CharacterEncodingFilter</filter-class></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><!--只要是 /servlet的任何请求,会经过这个过滤器--><url-pattern>/servlet/*</url-pattern><!--<url-pattern>/*</url-pattern>--></filter-mapping>

十一、Servlet监听器

(一)介绍
    监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行。
    Servlet监听器(不需要配置,但是监听器仍需要进行注册)
    在Servlet规范中定义了多种类型的监听器,ServletContextListener, HttpSessionListener 和 ServletRequestListener,它们用于监听的事件源为 ServletContext, HttpSession 和 ServletRequest 这三个域对象。

(二)创建案例(HttpSessionListener)
1、编写一个监听器,实现监听器的接口

//统计网站在线人数 : 统计session
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200520132401174.png)public class OnlineCountListener implements HttpSessionListener {//创建session监听: 看你的一举一动//一旦创建Session就会触发一次这个事件!public void sessionCreated(HttpSessionEvent se) {ServletContext ctx = se.getSession().getServletContext();System.out.println(se.getSession().getId());Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");if (onlineCount==null){onlineCount = new Integer(1);}else {int count = onlineCount.intValue();onlineCount = new Integer(count+1);}ctx.setAttribute("OnlineCount",onlineCount);}//销毁session监听//一旦销毁Session就会触发一次这个事件!public void sessionDestroyed(HttpSessionEvent se) {ServletContext ctx = se.getSession().getServletContext();Integer onlineCount = (Integer) ctx.getAttribute("OnlineCount");if (onlineCount==null){onlineCount = new Integer(0);}else {int count = onlineCount.intValue();onlineCount = new Integer(count-1);}ctx.setAttribute("OnlineCount",onlineCount);}/*Session销毁:1. 手动销毁  getSession().invalidate();2. 自动销毁*/
}

2、web.xml中注册监听器

<!--注册监听器-->
<listener><listener-class>com.kuang.listener.OnlineCountListener</listener-class>
</listener>


参考:
[1]【狂神说Java】JavaWeb入门到实战
[2] Cookie及通过Cookie常见应用
[3] JDBC详细介绍
[4] 计算机网络(第7版)-谢希仁

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. IPFS周报-90期:IPFS在去中心化之路上到底走了多远?

    协议实验室 编制 IPFS原力区 编译星际文件系统(IPFS)是一种新的超媒体分发协议,通过内容和身份进行寻址。IPFS支持创建完全分布式应用程序,它的目的是使网络更快、更安全、更开放。以下是本期IPFS周报的一些亮点:01、去中心化之路和go-ipfs 0.5IPFS项目负责人Molly Macki…...

    2024/4/28 8:03:37
  2. 路由器和交换机的工作原理

    路由器的工作原理 路由器的工作过程:路由器的作用及工作原理 1)信息传输:路由转发 一个数据包进入路由器时,路由器先对其解封装到数据链路层以查看它的目标mac地址,然后再根据该目标mac地址判断是否进行下一步操作,具体分为以下: ①广播:解封装到第三层; ②组播:查看…...

    2024/4/23 15:20:54
  3. npm包(zgptablecomp,zgpformcomp)配置

    {table:string 表名title:string 表单标题page:0 当前页码pagesize:0 一页显示的条数total:0 数据总量sqloper:[] 需要的数据库操作inline:true form表单行内显示col:[ 列配置{id 唯一标识符name:string 列中文名prop:string 列对应表的列名query:string 查询控件类型 select,d…...

    2024/4/23 15:20:53
  4. 品优购案例练习(一)

    环境搭建.base.css* {margin: 0;padding: 0;/* css3盒子模型 */box-sizing: border-box; }/* em和i斜体的文字不倾斜 */ em, i {font-style: normal; }/* 去掉li 的小圆点 */ li {list-style: none; }img {/* border 0 照顾低版本的浏览器,如果图片外面包含了连接会有边框的问…...

    2024/4/23 15:20:52
  5. 【目标检测】Detection in Crowded Scenes: One Proposal, Multiple Predictions

    文章目录一、介绍1.1 目标检测存在的问题1.2 拥挤场景检测失败的原因1.3 之前解决拥挤场景检测的方法1.4 本文解决拥挤场景检测的方法二、背景2.1 改进NMS2.2 改进损失函数三、我们的方法:多实例预测3.1 网络体系结构四、实验4.1 CrowdHuman数据集上的实验4.2 CityPerson数据集…...

    2024/4/23 15:20:51
  6. 【项目实战视频+源码】20w前端程序员疯抢的成长大礼包

    铺垫那么多 反正你们也不爱看 呐!简单粗暴 直接上福利! “举四瞩目”四重福利大礼包 快拿走!别逼我硬塞啊!第一重福利“前端学习视频+源码” 前端的学习,不能仅仅依靠于知识点的学习,实战项目的操作可以帮助我们整理知识点以及提高编程能力,更有助于学习和实践,最重要的…...

    2024/4/23 15:20:50
  7. 证件阅读机所能识别的类型与应用

    一、证件阅读机识别证件的技术应用背景 海关在管理旅客出境、入境时,需要旅客出示有效身份证证件(身份证、电子证件、港澳通行证、军官证、驾驶证、回乡证、户口本等),相关工作人员需要登记旅客的姓名、英文姓名、身份证号码、证件号、住址、头像、证件号、签发日期、有效日…...

    2024/4/15 8:03:46
  8. Java开发工程师面试题

    面试题,这是面向Java初级(1-3)年开发人员所需要的.当然不是全部. 对与我自己而言需要掌握的有1-11,13,16,17,18.以及19一部分. 一、Java 基础 1.JDK 和 JRE 有什么区别? 2.== 和 equals 的区别是什么? 3.两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 4.fina…...

    2024/4/20 2:58:50
  9. 发票查询API助力“两票制”实施

    017年1月9日,国家卫计委印发《关于在公立医疗机构药品采购中推行“两票制”的实施意见(试行)》,宣告全国“两票制”的开始。“两票制”是指药品从药厂卖到级经销商开一次发票,经销商卖到医院再开一次发票,直接作用于药品流通环节,并且每个品种的一级经销商不得超过2个。…...

    2024/4/23 0:30:38
  10. RocketMq 本地(Windows)安装配置,客户端启动,简单代码实现

    RocketMq1、描述本程序是结合网上一些资料进行整合的,进行对RocketMq的简单的demo,其中包括RocketMq安装,RocketMq客户端查看,以及简单代码实现。提供网站地址: SpringBoot(17)---SpringBoot整合RocketMQ:https://www.cnblogs.com/qdhxhz/p/11109696.html windows下Rocke…...

    2024/4/17 3:21:18
  11. IJCAI2018 | SFP软剪枝通道裁剪算法

    论文:Soft Filter Pruning for Accelerating Deep Convolutional Neural Networks 论文:Asymptotic Soft Filter Pruning for Deep Convolutional Neural Networks 论文链接:https://arxiv.org/pdf/1808.06866.pdf 论文链接:https://arxiv.org/pdf/1808.07471.pdf 代码链接…...

    2024/4/17 3:21:12
  12. 一些答非所问的勇敢

    很多时候一说到中文编程;随之而来的无非是两类人;一类反对;一类支持。 我很少会觉得写中文是一件比写英文还麻烦的事情;但倘若你要对反对用中文写代码的人来说;那对方至少会例举不少于10条的坏处。来证明在编程里面用中文会比英文麻烦得多。 而其中他们大多数人会觉得中文…...

    2024/4/18 8:47:13
  13. Pytorch深度学习实战项目回顾

    1.前言 很久没有碰Pytorch了,准备以实战项目代码回顾的方式进行复习。 2.Pytorch安装 现在我又切回了ubuntu系统,里面没有Pytorch,所以顺便从Pytorch最新版安装开始讲起吧。 (1)本机配置 CUDA9.0, CUDNN7.1.2 Anaconda5.2.0 linux下查cuda,cudnn版本的方法: ① cuda cat …...

    2024/4/17 3:20:48
  14. PyCharm2020.1.1安装后报错

    今天PyCharm2020.1.1安装后,提示有两个错误,一个是报错:No R interpreter defined: Many R related features like completion, code checking and help won’t be available. You can set an interpreter under Preferences->Languages->R 另一个是:plugin bashsupp…...

    2024/4/17 3:20:48
  15. Java控制台打印类链接,记录访问日志

    Java控制台打印类链接,记录访问日志 import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; import javassist.NotFoundException; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.a…...

    2024/4/23 15:20:56
  16. 520这个日子就应该用程序员最浪漫的表白方式

    在520这个浪漫的日子,你对你的女朋友表白了吗? 朋友圈撒了一波狗粮,还是发了爱情520红包,还是送去了朵鲜红的玫瑰花。NO !NO !NO!这些太常规了,不是程序员表白的正确打开方式,今天教大家如何像女孩子浪漫表白,让女孩子内心欢喜到想把你送她的礼物晒出来。 言归正传,…...

    2024/4/23 15:20:56
  17. 固态硬盘的速度和内存的速度差距

    内存的基本构架和固态硬盘发热构架完全不同,固态硬盘的存储芯片是非易失性存储介质(NVRAM),也就是没有电源后内部存储的数据不会丢失。NAND型闪存为例,它的随机存取速度慢,而且写入数据之前还要对区块进行擦除,使得写速度仅有读取速度的1/2~1/4,这种现象在目前广泛使用…...

    2024/4/23 15:20:50
  18. WebRTC通话INCOMPATIBLE_DESTINATION问题排查、verto与STUN协议

    一个功能完整的WebRTC应用需要:使用GetUserMedia API 控制麦克风和摄像头使用一种会话协议和可能的外部辅助服务器定位对方端点并建立会话使用ICE(和STUN和TURN)确定网络路径使用RTCPeerConnection 传输音/视频媒体流问题记录:脱机环境,没有连接公网。网页电话建立后,立即…...

    2024/4/23 15:20:47
  19. 小王学习MYSQL之旅Day06

    数据库学习第六天 一.DQL查询数据(最重点)1.DQL(Data Query Language)所有的查询操作都用它----Select简单的查询,复杂的查询都可以数据库中最核心的语言SELECT 语法SELECT [ALL | DISTINCT]{* | table.* | [table.field1[as alias1][,table.field2[as alias2]][,...]]}FROM…...

    2024/4/23 15:20:45
  20. 玩家飞机发射子弹对NPC造成伤害

    1,NPC飞机控制类2.玩家子弹控制类...

    2024/4/23 15:20:52

最新文章

  1. AI赋能分层模式,解构未来,智领风潮

    ​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#x1f525;&#xff1a;探索设计模式的魅力&#xff1a;AI赋能分…...

    2024/4/28 15:26:54
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 阿里云8核32G云服务器租用优惠价格表,包括腾讯云和京东云

    8核32G云服务器租用优惠价格表&#xff0c;云服务器吧yunfuwuqiba.com整理阿里云8核32G服务器、腾讯云8核32G和京东云8C32G云主机配置报价&#xff0c;腾讯云和京东云是轻量应用服务器&#xff0c;阿里云是云服务器ECS&#xff1a; 阿里云8核32G服务器 阿里云8核32G服务器价格…...

    2024/4/27 22:33:10
  4. 【嵌入式开发 Linux 常用命令系列 4.3 -- git add 不 add untracked file】

    请阅读【嵌入式开发学习必备专栏 】 文章目录 git add 不add untracked file git add 不add untracked file 如果你想要Git在执行git add .时不添加未跟踪的文件&#xff08;untracked files&#xff09;&#xff0c;你可以使用以下命令&#xff1a; git add -u这个命令只会加…...

    2024/4/25 4:06:17
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/28 13:52:11
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/28 3:28:32
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/28 13:51:37
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/28 1:22:35
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57