2021/12/12 Java开发之Java Web编程 第一章初始动态网页

目录

1丶B/S与C/S架构

        1.1B/S架构:

        1.2C/S架构:

        1.3两者区别

2丶配置Tomcat

        2.1安装Tomcat 

        2.2Tomcat启动和配置

3丶发布一个web网页

4丶Http

        4.1丶什么是HTTP

        4.2丶两个时代

        4.3丶Http请求

        4.4丶Http响应

5丶JSP

        5.1什么是JSP

        5.2JSP的页面元素

        5.3JSP的工作原理

本章总结


1丶B/S与C/S架构

        1.1B/S架构:

(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

        1.2C/S架构:

C/S结构(Client/Server,客户端/服务器模式)服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如ORACLE、SYBASE、InfORMix或 SQL Server。客户端需要安装专用的客户端软件。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。客户端进行用户界面/事物处理,服务器进行数据处理。

        1.3两者区别

1.硬件环境不同

C/S一般建立在抓用的网络上,小范围里的网络环境,局域网之间在通过专门服务器提供链接和数据交换服务。
B/S建立在广域网之上的,不必是专门的网络硬件环境,比如:电话上网,租用设备,信息自己管理有比C/S更强的适应范围,一般只要有操作系统和浏览器就行

2.对安全要求不同

C/S一般面向相对固定并且相同区域,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S结构适宜,可以通过B/S发布可公开信息
B/S建立在广域网之上,对安全的控制能力相对弱,可能面向不可知的用户

3.处理问题不同

C/S程序可以处理用户固定,并且在相同区域,安全要求高需求,与操作系统相关,应该都是相同的系统。
C/S的客户端由于是本地程序,因此和本地硬件,程序的交互性很强,比如可以控制本机的其他程序,可以读写本地磁盘文件,可以与硬件交互。

B/S建立在广域网上,面向不同的用户群,分在地域,这是C/S无法做到的,与操作系统平台关系最小,正因为如此B/S很难和本地硬件,程序,文件进行交互。比如:很难控制本机的其他程序,很多那都写本地磁盘文件,很难与硬件交互,当然可以用ActiveX技术解决,比如网银,这样做的问题就是可能会被客户拒绝,而且只能Windows操作系统。

项目 B/S C/S
安全性 安全性较差 固定区域相对安全
环境 通过浏览器使用,无需安装 客户端需要安装
更新 无需用户操作 用户手动更新
网络 易用性差,依赖网络 无网络部分功能可使用

2丶配置Tomcat

        2.1安装Tomcat 

2021/12/12 Java开发之Java Web编程 第一章初始动态网页

2021/12/12 Java开发之Java Web编程 第一章初始动态网页

        2.2Tomcat启动和配置

2021/12/12 Java开发之Java Web编程 第一章初始动态网页

可以配置启动的端口号

  • tomcat的默认端口号为:8080

  • mysql:3306

  • http:80

  • https:443

 <Connector port="8080" protocol="HTTP/1.1"
            connectionTimeout="20000"
            redirectPort="8443" />
可以配置主机的名称
  • 默认的主机名为:localhost->127.0.0.1

  • 默认网站应用存放的位置为:webapps

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true">

3丶发布一个web网页

不会就先模仿

  • 将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应该有的结构

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

HTTP协议:面试

Maven:构建工具

  • Maven安装包

Servlet入门

  • HelloWorld!

  • Servlet配置

  • 原理

4丶Http

        4.1丶什么是HTTP

HTTP(超文本传输协议)是一个简单的请求~响应协议,它通常运行在TCP之上。

  • 文本:html,字符串,~....

  • 超文本:图片,音乐,视频,定位,地图......

  • 默认端口:80

Https:安全的

  • 默认端口:443

        4.2丶两个时代

  • http1.0

    • HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,断开连接。

  • http2.0

    • HTTP/1.1:客户端可以与web服务器连接后,可以获得一个web资源。

        4.3丶Http请求

  • 客户端---发请求(Request)---服务器

百度:

Request URL:https://www.baidu.com/  请求地址
Request Method:GET  get方法/post方法
Status code:200 OK  状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip,deflate, br
Accept-Language:zh-CN,zh;q=0.9  语言
Cache-Control:max-age=0
Connection:Keep-alive

1丶请求行

  • 请求行中的请求方式:GET

  • 请求方式:Get,Ppost,HEAD,DELETE,PUT,TRACT...

    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址显示数据内容,不安全,但高效

    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址显示数据内容,安全,但不高效

2丶消息头

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

        4.4丶Http响应

  • 服务器---响应-----客户端

百度:

Cache-Control:private   缓存控制
Connection:keep-Alive   连接
Content-Encoding:gzip   编码
Content-Type:text/html  类型

1.响应体

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

2丶响应状态码(重点)

200:请求响应成功 200

3xx:请求重定向

  • 重定向:你重新到我给你的新位置;

4xx:找不到资源 404

  • 资源不存在;

5xx:服务器代码错误 500 502:网关错误

5丶JSP

        5.1什么是JSP

JSP: 全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP的本质是servlet, 通过response的printWriter返回,response的getOutputStream只能调用一次,返回流就不能返回页面刷新。

        5.2JSP的页面元素

1. 静态内容
就是html,css,javascript等内容
2. 指令
以<%@开始 %> 结尾,比如<%@page import="java.util.*"%>
3. 表达式 <%=%>
用于输出一段html
4. Scriptlet(小脚本)
在<%%> 之间,可以写任何java 代码
5. 声明
在<%!%> 之间可以声明字段或者方法。但是不建议这么做。
6. 动作
<jsp:include page="Filename" > 在jsp页面中包含另一个页面。在包含的章节有详细的讲解
7. 注释 <%-- -- %>
不同于 html的注释 <!-- --> 通过jsp的注释,浏览器也看不到相应的代码,相当于在servlet中注释掉了

2021/12/12 Java开发之Java Web编程 第一章初始动态网页


        5.3JSP的工作原理

1.当一个JSP文件第一次被请求的时候,JSP引擎(本身也是一个Servlet)首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。

2.其次创建一个该Servlet的实例,并执行该实例的jspInit()方法(jspInit()方法在Servlet的生命周期中只被执行一次)。

3.然后创建并启动一个新的线程,新线程调用实例的jspService()方法。(对于每一个请求,JSP引擎会创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程,每个客户端请求对应一个线程)。

4.浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同时调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService()方法中。

5.jspService()方法执行后会将HTML内容返回给客户端。

6.如果JSP文件被修改了,服务器将根据设置决定是否对该文件进行重新编译。如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。 如果在任何时候由于系统资源不足,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用, 然后Servlet实例便被标记加入“垃圾收集”处理。

执行流程:

1.客户端发出请求,请求为JSP,web容器就会找出相应的servlet进行处理
2.将servlet转成字节码文件
3.将字节码文件加载到web容器里
4.这时会在web容器里建立实例
5.进行初始化
6.通过service接受请求
7.然后web容器会自动产生两个对象servlet和service最后进行销毁

 

本章总结

  1. B/S架构是对C/S架构的一种变化或改进的结构。在这种结构下,程序完全放在应用服务器上,通过应用服务器同数据库服务器进行通信。
  2. URL为统一资源定位符,是Internet中标准的资源地址。URL主要由协议丶主机名(有时包含端口号)及路径三部分组成。
  3. GET方法和POST方法是HTTP最常使用的两个方法。GET方法多用于从指定资源获取数据,POST方法多用于向指定资源提交需要处理的数据。
  4. Java Web应用的核心文件是web.xml文件,位于WEB-INF文件目录下,该文件目录不允许外部用户访问。通过修改web.xml文件可以实现对Web应用的配置,如设置欢迎页。
  5. 手动部署Web应用的步骤如下。
    1. 遵循Web应用目录的结构,创建Web应用的目录。
    2. 编写Web应用的代码。
    3. 复制Web应用目录到Tomcat目录的webapps子目录下。
    4. 启动Tomcat服务,在浏览器中进行访问。
  6. 动态网页是在服务器端运行的程序,它会随着不同的用户丶不同条件,返回不同的内容。
  7. JSP技术在HTML中嵌入Java脚本语言,然后由应用服务器中的JSP容器翻译丶编译和执行,之后将生成的结果返回给客户端。
  8. JSP由静态内容丶指令丶表达式丶小脚本丶声明丶注释等元素构成。
  9. Web容器处理JSP文件请求需要经过三个阶段。
    1. ​​​​​​​翻译阶段:JSP文件会被Web容器中的JSP引擎转换成Java源码。
    2. 编译阶段:Java源码会被编译成可执行的字节码文件。
    3. 执行阶段:容器在接受了客户端的请求后,执行编译好的字节码文件。在处理完请求后,容器把生成的页面反馈给客户端进行显示。

​​​​​​​

上一篇:SpringMvc控制层数据渲染到页面


下一篇:计算机课程设计jsp+servlet社区居民健康档案管理系统【安装调试+代码讲解+文档报告】