让你看了忘不了的JAVAWEB总结

前言

Javaweb是用Java技术来解决相关web互联网领域的技术栈。也是我们学习Java最后都要学习的知识,Web包括:web服务端和web客户端两部分。web服务端通常是由web服务器提供服务。Java在服务端的应用非常丰富,比如Servlet,jsp,第三方框架等等。

JAVAWEB概念

Internet上供外界访问的Web资源分为:静态web资源(比如html页面)页面上数据是不变的,无论什么时候访问都是相同的,常见的开发技术HTML,CSS。**动态web资源:**web页面中的数据是会发生变化的,比如web页面中的时间数据,就是时时刻刻在发生变化,常见的开发技术:JavaScript,jsp/servelt,PHP等。

具体详细可以参考百度百科:

https://baike.baidu.com/item/java%20web/1611944?fr=aladdin

web应用程序

  1. 一个web应用程序通常用户能够通过浏览器URL访问的到。
  2. 一个web程序应该包含的几部分
  • 前端页面
  • 后端程序
  • 第三方jar包
  • 配置文件

web服务的请求(HTTP)

在我们进行通过浏览器访问服务器资源的时候,我们通常是使用HTTP协议来进行发送请求服务器资源,这里我们需要了解一下HTTP协议,Web服务器的请求过程。

可以参考我写的博客:

https://blog.csdn.net/qq_44762290/article/details/113377047

图片

二:WEB服务器

在我们进行Javaweb项目开发过程中,最常见最流行的web服务器就是tomcat服务器。

图片

tomcat服务器是Apache软件基金会(Apache Softwre Foundation)的Jkarta项目中的一个核心项目,有Apache,Sun和其他一些公司及个人共同开发而成。tomca技术先进、性能稳定、而且免费深受大家喜爱。

tomcat的详细简介可参考百度百科:

https://baike.baidu.com/item/tomcat/255751?fr=aladdin

tomcat的目录结构

图片

图片

我们在安装tomcat后要修改对呀的端口号,不然容易发生端口冲突问题。

  • tomcat的默认端口号为:8080
  • 可以将8080端口修改为其他端口。
     <Connector port="8088" protocol="HTTP/1.1"
      connectionTimeout="20000"
      redirectPort="8443" />

这里我们可以直接在tomcat下发布一个web项目

  • 我们首先启动tomcat服务
  • 然后我们将自己的网站放到webapps目录下

网站结构

--webapps :Tomcat服务器的web目录
	-ROOT
	-webappName :网站的目录名
		- WEB-INF
			-classes : java程序
			-lib:web应用所依赖的jar包
			-web.xml :网站配置文件
		- index.html 默认的首页
		- static 
            -css
            	-style.css
            -js
            -img
         -.....

Maven工具

我们在创建web程序的时候,有时候会借助于Maven对项目进行管理。这里我们需要了解一下maven的相关概念以及使用方法,具体使用可以参考我的博客。

https://blog.csdn.net/qq_44762290/article/details/107504262

三:Javaweb程序的创建

  1. Eclipse创建web程序
  • File-New-other-Dynamic web Project,点击next

图片

  • 出现工程设定窗口中设定工程的名字( 对应工程的名字 )和Dynamic web module version(版本),选择大家对应tomcat的版本,tomacat9以上对应的是4.0)单击next

图片

  • 指定Java文件的编译路径(放在WebRoot\WEB-INF\classes),一般我们编译后的.class文件是放入WEB-INF下,如图:

图片

  • 设置web工程的根目录(也就是部署路径,一般设置成WebRoot),勾选创建web.xml

图片

  • 添加完成后,效果如下,这里面的java Resources是用来存放Java代码,下面的WebCount使用来存放前端代码的

图片

  • 添加web服务器,右击项目选择build path—>configure build path

图片

  • 添加tomcat服务器

图片

  • 运行测试项目右键项目run as -->run on server
  1. idea创建java web项目

参考:https://www.cnblogs.com/xinruyi/p/9360282.html

三:servlet

servlet是Javaweb中非常重要的一个知识点。sevlet(Server Applet)是Java servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,servlet是运行在服务器端,具有独立于平台和协议的特性,主要功能在于交互式的浏览和生成数据,生成动态的web内容。

servelt作为来自web浏览器或其他http客户端的请求和HTTP服务器上的数据库或应用程序之间的中间层。

使用servelt,你可以收集来自网页表单中的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

servelt有几点优势:

  • 性能明显更好。
  • Servlet 在 Web 服务器的地址空间内执行。这样它就没有必要再创建一个单独的进程来处理每个客户端请求。
  • Servlet 是独立于平台的,因为它们是用 Java 编写的。
  • 服务器上的 Java 安全管理器执行了一系列限制,以保护服务器计算机上的资源。因此,Servlet 是可信的。
  • Java 类库的全部功能对 Servlet 来说都是可用的。它可以通过 sockets 和 RMI 机制与 applets、数据库或其他软件进行交互

servlet架构

图片

servelt任务

  • 读取客户端(浏览器)发送过来的显示数据,这包括网页上的HTML表单数据,或者是来自applet或自定义的HTTP客户端程序的表单。
  • 读取客户端(浏览器)发送的隐式的HTTP请求数据。这包括cookie、媒体类型和浏览器可以理解的压缩格式等等。
  • 处理数据并产生结果,这个过程可能会需要访问数据库,执行RMI或CORBA调用,调用web服务器,或者直接计算得到相应的响应。
  • 发送显示的数据(文档)到客户端。该文档的格式可以使多种的。
  • 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。

servlet包

Java Servlet 是运行在带有支持 Java Servlet 规范的解释器的 web 服务器上的 Java 类。

Servlet 可以使用javax.servletjavax.servlet.http包创建,它是 Java 企业版的标准组成部分,Java 企业版是支持大型开发项目的 Java 类库的扩展版本。

这些类实现 Java Servlet 和 JSP 规范。在写本教程的时候,二者相应的版本分别是 Java Servlet 2.5 和 JSP 2.1。

Java Servlet 就像任何其他的 Java 类一样已经被创建和编译。在您安装 Servlet 包并把它们添加到您的计算机上的 Classpath 类路径中之后,您就可以通过 JDK 的 Java 编译器或任何其他编译器来编译 Servlet。

servlet生命周期:

图片

servlet原理:

图片

servlet详细可以参考:

https://www.runoob.com/servlet/servlet-intro.html

四:HTTP协议

HTTP协议请参考我以前的博客文章:

https://blog.csdn.net/qq_44762290/article/details/113377047

五:Cookie和session会话跟踪

cookie和session会话跟踪技术请参考我的博客文章:

https://blog.csdn.net/qq_44762290/article/details/113505775

六:Request和Response技术

我们学习web的过程中,客户端与服务端之间的数据交互,信息传递考的就是response和response。我们在创建Servelt时会覆盖service()方法。也就是在servelt的生命周期中的第二步调用service时,调用servlet中的doGet()或doPost()两种方法。在调用这两个方法的时候我们可以发现方法的参数为request和rsponse两个一个代表的是客户端的请求一个代表的是服务端的响应。

service方法中的request的类型是ServletRequest,而doGet()/dopost()方法的request的类型是HttpServeltRequest,HttpServletRequest是servletRequest的子接口,功能和方法更加强大。

service方法中的response的类型是servletResponse,而doGet/doPost方法的response的类型是HttpServletResponse,HttpServletResponse是ServletResponse的子接口,功能和方法更加强大。

运行流程

图片

七:JDBC(Java Database Connectivity)

jdbc是Java连接数据库操作数据库的一种API接口。也就是Java数据库编程接口是一组标准的JAVA数据库编程接口,是一组标准的JAVA语言中的接口和类,使用这些接口和类,java客户端可以访问不同类型的数据库。

产生JDBC的原因?

任何一个新技术都有他诞生的原因,一个新技术的发展必定是为了解决现有的问题。所以jdbc产生的原因是什么,产生jdbc可以给我们带来什么好处。

图片

对于程序员来说,程序员在开发程序的时候,需要进行数据的操作,但是保存数据通常又是保存在数据库中,而不同的数据库又是由不同的厂家所生产,则我们使用不同的数据库就要遵守不同数据库厂家的规范以及使用方法,但是因为数据库产品较多,而且数据库升级就要全部更换数据库的操作,十分麻烦,所以jdbc产生就是为了解决这个麻烦,对于程序问题来说,一切的麻烦增加一层操作就不再是麻烦,所以我们在程序员和数据库之间又添加了一层操作,程序员不用直接关心是什么数据库,只需要按照jdbc的规范来进行编写代码,所以程序员只需要遵守一条jdbc的规范即可,下面使用的是什么数据库程序员不用管,就交个jdbc来进行处理。

这里我们来举例进行讲解:

比如老板想出去旅游,在没有秘书的情况下,老板想去哪个地方旅游就需要自己去找该怎么去,怎么走,做什么去。去哪个城市就需要自己明确如何走。

图片

而如果老板有了秘书之后(JDBC)秘书会去安排去每个地方的路线,老板什么都不用管,老板只用跟着秘书就可以。

图片

JDBC访问数据库的步骤

  • 加载数据库驱动
  • 获取数据库连接
  • 执行数据库语句
  • 对结果集进行处理
  • 关闭数据库连接

图片

了解数据库语句

com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver; 
String url = "jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8";        
String user = "";        
String psw = "";        
Connection con = DriverManager.getConnection(url,user,psw);   

八:JSP(Java server page)

jsp是一种可以响应客户端请求,而动态生成HTML、XML或其他格式文档的Web网页的技术标准。

jsp是Javaweb中十分重要的一种技术。jsp的编译过程为:JSP–>Servlet–>java–>class字节码

JSP是一种动态语言,兼容Java语法,使用<%%>既可以使用java语法。

jsp结构

网络服务器需要一个JSP引擎,也就是一个容器来处理jsp页面,容器负责截获对JSP容器的Apache来支持JSP开发。

JSP容器与web服务器协同合作,为JSP的正常运行提供必要的运行环境和其他服务,并且能够正确识别专属于jsp网页的特殊元素。

图片

JSP处理

以下步骤表明了Web服务器是如何使用JSP来创建网页的:

  • 就像其他普通的网页一样,你的浏览器发送一个HTTP请求给服务器。
  • Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者jsp文件来完成。
  • JSP引擎从磁盘中载入JSP文件,然后将他们转化为servlet。这种转化只是简单的将所有模板文本改用println()语句,并且将所有的jsp元素转化为java代码
  • JSP引擎将servlet编译成可以执行类,并且将原始请求传递给servlet引擎
  • Web服务器的某组件将会调用Servlet引擎,然后载入并执行Servlet类,在执行的过程中,Servelt产生HTML格式的输出并将其内嵌与HTTPresponse中上交给Web服务器
  • web服务器以静态HTML网页的形式将HTTP response返回到你的浏览器中
  • 最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。

图片

JSP语法

内置Java代码块:<% %>
取值表达式:<%=%>  实际就是调用输出流打印到页面上
<%!    %>   Java代码块
<!-- -->   jsp注释
<%-- -->   jsp注释

JSP三大指令

Page:页面指令
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" 
errorPage="/myerror.jsp" :如果当前页面出错,就跳转到对应的页面
isErrorPage="true" :这个页面是否是错误页面(当我们要在页面上直接使用exception的时候就可以加上它)
  • Include : 包含指令
<%@ include file="/include/a.jsp"%>
//这个页面将会把a的布局加进来,可以用来做页面的分割。
//注意:被引入的页面只需要Jsp文档声明即可,不需要body及html头等标签。
  • Taglib:标签指令
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

JSP九大内置对象

  • pageContext
  • request
  • response
  • session
  • exception
  • application
  • config
  • out
  • page

EL表达式作用

EL表达式的作用就是从四大作用域对象中取值

注意EL表达式能够从四大作用域取值的前提是:取得对象必须是符合Javabean规范的

EL表达式语法

${key} //会到四个作用域里面去找到key对应的value

EL取值的顺序

如果在四个作用域存入了相同的名字属性,此时EL表达式查询找的顺序为从小到大,先取小的范围的值,小的没有再去到大的范围的值(pageContext《request<session<application)

${pageScope.msg}         //取pageContext域对象中的msg属性值
${requestScope.msg}      //取request域对象中的msg属性值
${sessionScope.msg}      //取session域对象中的msg属性值
${applicationScope.msg}  //取application域对象中的msg属性值

总结

Javaweb是我们java开发中非常重要的部分,这里我对Javaweb中的一些非常重要的知识点进行了总结分析,希望可以帮到学习中的小伙伴。

猜你喜欢

转载自blog.csdn.net/qq_44762290/article/details/113616285