搭建Web环境、JSP初识

2023-11-07

理解C/S和B/S架构及其优缺点

B(Browser)/S(Server):网站

优点:

  1. 不需要更新(服务器端更新 客户端基本不受影响 刷新一下可能就更新了)
  2. 跨平台 只需要有浏览器 就可以使用。(write once ,run anywhere)

缺点:

  1. 所有的压力全都在服务器 ( 每一次请求数据 全都需要去服务器重新加载一次 ) 受带宽影响比较大
  2. 在渲染方面 比较差(因为带宽)
  3. 在安全性方面 比较差(很多和钱有关 或者 比较重要的网站 都需要单独下载安全控件)

C(Client)/S(Server):桌面的程序

缺点:

  1. 服务器更新,客户端必须要随之更新。(省流更新/补丁更新)
  2. 每个平台都得适配 (为了一个应用需要开发n套程序)

优点:

  1. 所有的压力主要承载到了客户端,服务器大大降低了负载。
  2. 在渲染方面 它要更强一些
  3. 在安全性方面 要更强

我们想要访问B/S架构的程序(网站),首先需要打开浏览器。

然后在浏览器上输入对应程序的URL。

URL(Uniform Resource Locator) 统一资源定位符。它就是网站的服务器/资源地址。

**组成:**http://主机地址/资源地址/xxx?参数信息

**http / https(加密):**超文本传输协议 Hyper Text Transfer Protocol 交通规则

**主机地址:**主机名/域名/IP地址:端口号 通过它就能绝对的找到一个唯一的计算机 并且找到计算机中唯一的那个程序。

**域名和IP地址的关系:**最开始在网上寻找某台计算机你需要记录一个很长的二进制地址,非常麻烦,所以后来引出了一个十进制的数值,这个数值就是IP地址。例如:192.168.16.131 但是IP地址也没有那么好记忆,所以后来我们的网络服务提供商(联通、移动、电信…) 它们提供了一个DNS(域名解析)服务器,当你输入一个域名时候,它就可以将此域名解析成对应的IP地址。(这个IP地址和域名是需要备案和绑定)

**端口号:**程序运行时占用的 必须唯一绑定。 HTTP协议默认端口号为80

**参数信息:**当我们GET请求时 参数会以key=value的形式传递

常见的HTTP状态码:(用来标识你的请求状态)

200:OK 请求成功

404:Not Found 资源找不到

304:Not Modified 请求未改变 加载的是缓存 Ctrl+F5(强制刷新)

500:服务器错误(一般都是代码写错)

401:未经授权

1. 掌握Tomcat的环境搭建和使用

1.1 了解主流的web服务器

服务器(硬件):

​ 在公网上用来运行特别的程序,或者此程序需要的运行环境的,能够给广大用户提供服务的一台计算机。

​ 一般配置比较高,同样也有人专门进行维护(运维)。

服务器(软件):

​ 如果只有硬件那么用户也是无法访问资源内容,例如使用ServerSocket技术提供接受请求并处理然后响应的能力。

但是ServerSocket技术太接近于底层了,所以有团队和组织已经将这些东西直接封装好了(开发了成熟的产品),我们只需要将此类软件部署在服务器硬件上,启动之后就可以面向用户提供服务了。

主流的服务器:

  • Apache 静态服务器
  • Nginx 静态服务器
  • Jetty
  • Jboss
  • WebLogic
  • Tomcat

1.2 掌握Tomcat环境搭建

  • 下载8.5 https://tomcat.apache.org/download-80.cgi
  • 解压zip文件
  • 启动bin目录下的startup.bat
  • 在浏览器的地址栏输入localhost:8080 Tomcat默认端口号为8080
  • bin目录下的shutdown.bat关闭服务器 / 直接关闭窗口

安装目录介绍:

  • bin 可运行的批处理文件
    • startup.bat/sh
    • shutdown.bat/sh
    • catalina.bat/sh
  • conf 服务器的配置文件
    • server.xml 服务器配置信息
    • web.xml 服务器内项目的配置信息
    • context.xml 服务器内资源的配置信息
  • lib 服务器运行所需要一些相关jar库/包
    • el-api.jar
    • jasper.jar
    • jasper-el.jar
    • jsp-api.jar
    • servlet-api.jar
    • tomcat-dbcp.jar
    • tomcat-jni.jar
  • logs 服务器日志文件夹
    • catalina.日期.log 服务器运行相关信息
    • localhost_access_log.日期.log 服务器访问信息
  • temp 服务器在运行时需要的临时文件存储目录
  • (重要)webapps :web项目存放的目录
    • ROOT(根目录/)
  • work: 它和JSP有关,JSP翻译的代码会存储在这里

1.3 掌握Tomcat的常用配置使用

  1. 端口号修改:

    在安装目录conf下的server.xml中修改端口 (第69行)

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
    
  2. 修改欢迎页:

    在conf目录下的web.xml中的最后一块

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
    

1.4 Tomcat部署项目

  • 找到webapps目录
  • 除了ROOT目录之外,我们可以在webapps目录下新建一个文件夹(英文)
  • 将你的项目资源统一放在其中即可
  • 届时可以在浏览器地址栏中输入完localhost:8080之后继续去写你项目所在的webapps目录下的位置
    • 假如你的项目是在webapps目录下的一个test目录中,访问时需要以localhost:8080/test/前缀
  • 你可以在你项目文件夹内新建一个WEB-INF目录,里面可以新建一个web.xml用于存储你这个项目应用的具体配置,它的优先级比服务器conf目录下的web.xml高。

http://localhost:8080/项目名/访问的文件名

2. 掌握Eclipse创建web项目

  • new -> others -> 搜索dy… 找到dynamic web project

  • 按照下方填写内容

    • 项目名
    • 运行库(Java EE库)
    • 项目模板2.5 因为2.5模板会自动创建web.xml而3.0没有
      在这里插入图片描述
  • web项目2.5版的目录结构如下:

在这里插入图片描述

  • 为了能够部署我们创建的web项目,我们需要对IDE进行一些服务器配置

    • window -> show view -> servers选项卡
    • 点击链接创建新的服务器(这个服务器其实是Eclipse基于真实tomcat去创建的临时/镜像服务器,为的是以免影响到真实tomcat目录)

在这里插入图片描述

  • 为了能够使服务器部署项目时正常被我们所观察,我们需要将其默认的配置目录进行更改,如下。(Ctrl+S)

在这里插入图片描述
在这里插入图片描述
修改路径需要注意 首先 clean所有的项目 然后进行修改启动
其实你修改的是tomcat config目录下的server.xml
是在服务启动之前进行修改
在这里插入图片描述
在这里插入图片描述

也可以在这里修改 你的项目 右键
在这里插入图片描述

  • 接下来可以将我们的项目放到此服务器中了
    • 右键服务器 -> add and remove -> 添加项目
    • 启动服务器(start)

3. 掌握JSP的基本使用

3.0 了解动态网页技术

传统的静态网页技术无法满足动态数据的需求,我们的HTML无法嵌入数据库查询的代码,所以我们需要将HTML结合Java代码进行使用,那么产生了JSP(Java Server Pages)Java服务器页面。 HTML + Java = JSP。

扩展名.jsp,在Eclipse创建JSP小心编码。(window -> 首选项 -> jspfiles -> encoding)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

3.1 掌握JSP的指令

<!-- page指令是用来配置JSP页面的信息的,它可以出现多次,也可以出现在任意位置,一般放在头部
	language:标识此JSP页面可以嵌套的脚本语言
	contentType:设置响应头信息
	pageEncoding:设置本页面的编码
	import:导入本页面Java代码所需要的包
-->
<%@ page language="java" contentType="text/html; charset=UTF-8"  import=""
    pageEncoding="UTF-8"%>

<%@include %>
<%@taglib %>

3.2 掌握JSP的脚本

<% Java代码 %> 能写一部分Java代码,但是无法定义方法,它可以定义在JSP页面的任意位置。

它的代码是被放到了JSP转成的.java文件的_jspService方法内。

在这里插入图片描述
在这里插入图片描述
out.write(); // 输出字符串 或者 HTML代码

out.print(); // 输出任何数据类型

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

3.3 掌握JSP的表达式

<%=Java代码 %>
它的代码是被放到了JSP转成的.java文件的_jspService方法内。

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

3.4 掌握JSP的声明

<%! Java代码 %> 能写一部分Java代码,但是虽然能定义方法,却不能调用方法

它的代码是被放到了JSP转成的.java文件的成员位置。

在这里插入图片描述

在这里插入图片描述

3.5 理解并掌握JSP的执行原理

Java代码想要运行:.java -> .class才能运行

**Tomcat中的work目录(它和JSP有关):**存储着JSP翻译后的内容。

在这里插入图片描述

JSP在运行的时候,需要经历三个步骤。

  1. 翻译:JSP本质上是一个模板,到时候Tomcat中的一个Jasper程序会对这个模板进行翻译,翻译成一个Java类。如果内容改变了,需要重新进行翻译。
  2. 编译:翻译好的Java类要进行编译
  3. 运行:编译好的字节码文件要运行 执行结果就可以展示给你了!

JSP当在第二次或更多次访问的时候,Tomcat如果发现它没有改变,直接拿曾经的.class文件执行即可。而如果发现改变了内容,会重新进行上述操作。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

搭建Web环境、JSP初识 的相关文章

随机推荐

  • 【目标检测】42、目标检测回顾

    文章目录 Abstract 1 Introduction 2 Problem Setting 3 Detection Components 3 1 Detection Settings 3 2 Detection Paradigms 3 2
  • JS 中 replace 和 replaceAll 的区别?

    方法解释 两种方法都返回一个新字符串 原始字符串保持不变 并且改方法可以传两个参数 参数一 pattern pattern 可以是一个 字符串 或一个 正则表达式 参数二 replacement replacement 可以是一个字符串或一
  • c语言const字符串,C语言之正确使用const

    一 const用途 const是一个C语言的关键字 它限定一个变量不允许被改变 1 const与基本类型 const char m 限定m不可变 2 const与指针 1 const在 前面 const char p p是const p可变
  • 浅析eTS的起源和演进

    引言 Mozilla创造了JS Microsoft创建了TS Huawei进一步推出了eTS 从最初的基础的逻辑交互能力 到具备类型系统的高效工程开发能力 再到融合声明式UI 多维状态管理等丰富的应用开发能力 共同组成了相关的演进脉络 原文
  • zookeeper常用命令详解

    目录 1 zkCli sh客户端 2 多节点类型创建 3 查询节点 4 set数据 5 删除节点 6 权限设置 7 其他命令 注意我这里用的是官方最稳定的版本3 7 1 版本之间有个别命令是有差距的 1 zkCli sh客户端 zkCli
  • 区块链技术在金融行业的应用

    作为比特币背后的分布式账本技术 区块链 它的热潮似乎已经无可阻挡 在区块链的创新和应用探索中 金融是最主要的领域 现阶段主要的区块链应用探索和实践 也都是围绕金融领域展开的 在金融领域中 区块链技术在数字货币 支付清算 智能合约 金融交易
  • tmux的使用方法和个性化配置

    tmux的使用方法和个性化配置 tmux是一个优秀的终端复用软件 即使非正常掉线 也能保证当前的任务运行 这一点对于 远程SSH访问特别有用 网络不好的情况下仍然能保证工作现场不丢失 此外 tmux完全使用键盘 控制窗口 实现窗口的切换功能
  • autorelease(IOS开发)的原理详解

    转载出处 http tieba baidu com p 3427605546 转载出处 http blog csdn net c395565746c article details 7613814 当您向一个对象发送一个autoreleas
  • [激光原理与应用-64]:激光器-器件 - 光电二极管

    第1章 概述 光电二极管 Photo Diode 和普通二极管一样 也是由一个PN结组成的半导体器件 也具有单方向导电特性 但在电路中它不是作整流元件 而是把光信号转换成电信号的光电传感器件 普通二极管在反向电压作用时处于截止状态 只能流过
  • STM3216位IO口操作的一些教训,STM32操作IO口的寄存器是16位,但是高低8位分别并口操作不同的器件,怎么办,会覆盖数据。BSRR 设计的目的就是为了能同时操作想修改的位0不影响1或置1或0

    STM3216位IO口操作的一些教训 yuanmeixiang 2017 05 05 20 12 24 8783 收藏 9 分类专栏 STM32 文章标签 stm32 8位操作 版权 最近在用TFT屏的时候走啦不少弯路 因为TFT屏都是16
  • sublimeText竖向多行选择快捷键

    Shift 鼠标右键
  • Navicat使用HTTP通道连接MySQL(通过php代理连接数据库)

    文章来源 https blog ll00 cn archives 127 html 问题描述 通过web服务器访问db服务器 因为db服务器没有外网ip 不支持外网直接访问 web服安装了php 有外网IP 支持外网http访问 补充 什么
  • unity 3D 远程关机

    远程关机的方法很多 首先就是调用系统的运行命令 其次也可以费别写一个服务端和客户端 当然我们也可以借助第三方插件来实现远程关机 第一种 调用系统的运行命令 这个就非常简单了 直接打开cmd exe文件 写入关机命令就行了 System Di
  • 因子【Wannafly挑战赛25 A】

    题目链接 思路 遇到N 这样的大数很显然是没办法直接去处理的 题目中告诉我们的已知是 N P k 0与 N P k 1 0 怎么处理N 是一个很复杂的事情 那我们从P开始考虑 尝试着将P拆成几个质因子的乘积形式 例如12可以拆成2 2 3的
  • 整数乘法运算

    在高级语言中 两个n位整数相乘得到的结果通常也是一个n位整数 即结果只取2n位乘积中的低n位 这导致乘法运算得到结果必须在范围 2n 1 lt x y lt 2n 1才不会溢出 假设为4位 进行52 0101 0101 0101 0101
  • 用Rust生成Ant-Design Table Columns

    经常开发表格 是不是已经被手写Ant Design Table的Columns整烦了 尤其是ToB项目 表格经常动不动就几十列 每次照着后端给的接口文档一个个配置 太头疼了 主要是有时还会粘错就尴尬了 那有没有办法能自动生成columns配
  • ​EcomGPT:指令微调的电商领域大模型

    论文链接 https arxiv org abs 2308 06966 GitHub链接 https github com Alibaba NLP EcomGPT 今天给大家介绍下我们在训练电商领域大模型方面的尝试 希望对研发相关或其他领域
  • RTL8762DK-最小系统板

    目录 概述 一 原理图 二 PCB 三 总结 概述 此 RTL8762DK 最小系统板 已画了有一段时间 思来想去 还是开源了 供大家参考 环境是使用AD绘制 学习RTL8762DK 可以在淘宝购买一块开发板 当然 喜欢折腾的人 自己动手画
  • 解决master主分支与其他分支冲突的问题

    我们在拉取代码的时候 有时候会本地修改一些东西 这就需要解决方法 出现 MERGING 报错后 先手动清除报错的地方 然后操作 git add git commit m ceshi git pull origin master 由于我在本地
  • 搭建Web环境、JSP初识

    理解C S和B S架构及其优缺点 B Browser S Server 网站 优点 不需要更新 服务器端更新 客户端基本不受影响 刷新一下可能就更新了 跨平台 只需要有浏览器 就可以使用 write once run anywhere 缺点