JAVAWEB的基本入门(JSP、Tomcat)>从零开始学JAVA系列
JAVAWEB的基本入门(JSP、Tomcat)
使用idea创建web项目的两种方式
1、直接创建一个web项目(这样创建好的项目可以直接运行)
2、创建一个普通的java项目并配置web模块
新建一个普通的java项目
添加web模块
添加一个打包构建(因为必须要打包才能部署到tomcat中)
配置tomcat并且部署项目到tomcat中
第一步:
第二步:
第三步:配置好该配置的名字(自定义),指定tomcat
第四步:将项目部署到tomcat服务器中
JAVAWeb项目与JAVA项目的区别?
- JAVAWEB项目相比于JAVA项目需要用到JAVAEE的jar包
- JAVAWEB相比于JAVA项目,实现了B/S架构
- JAVAWEB项目可以存放动态网页与静态网页
工作目录与部署目录的区别
- 工作目录是你写的代码所在的目录
- 部署目录是发布到服务器上后映射的目录(访问项目时,以该目录为根目录)
验证:tomcat启动后,访问资源(正常访问),然后删除该目录下的文件就访问不到了
稍微说一嘴,idea在运行tomcat的机制
idea会按照你配置的tomcat为模板,创建一个copy后的tomcat来运行你的项目,每一个项目都会创建一个新的tomcat,以你配置的tomcat为模板
这个路径就是生成的tomcat
浏览器与服务器的小问题
获取浏览器时间和服务器时间
<%@ page import="java.time.LocalDateTime" %>
<%@ page import="java.time.format.DateTimeFormatter" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<%
LocalDateTime date = LocalDateTime.now();
String localDate = date.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
out.print("服务器时间为:"+ localDate);
Thread.sleep(3000);
%>
<script type="text/javascript">
var date = new Date().toLocaleTimeString();
document.write("浏览器时间为:" + date);
</script>
</head>
<body>
<h1>获得服务器时间和浏览器时间小案例</h1>
</body>
</html>
浏览器向服务器发送请求的3种方式
- 在地址栏中直接输入URL访问(get)
- 超链接的方式(get)
- 表单提交的方式(get/post),推荐使用post
Get请求与Post请求的区别
Get请求的特点
- 传输方式:数据通过URL传递
- 传输格式:只能传输文本格式
- 大小: 传输的数据大小受到限制(URL有最长限制)
- 传输速度快
Post请求的特点
- 请求方式:数据通过数据包的方式隐式传递
- 传输格式:支持任意类型的传输格式
- 大小: 理论上无大小限制(除非服务器端限制上传大小)
- 传输速度相比get慢
Tomcat各目录的作用,以及在IDEA中时候tomcat的一点细节
Tomcat各目录的作用
IDEA中时候tomcat的一点细节
- 运行tomcat项目时,解决修改了静态文件需要重启tomcat服务器的问题
- 在浏览器中访问时,虚拟路径太长的问题
理解HTTP协议
什么是HTTP协议
HTTP协议是超文本传输协议,用于规定发送各种请求,返回何种响应
HTTP工作原理
- HTTP协议遵循 请求(request)/响应(response)模型
- 在客户端没有发送请求给服务端时,服务端无法推送信息给客户端
- 请求时需要建立连接,在服务器完成响应后断开,连接不会一直存在(意味着每一次请求对于服务器来说都是一个新的用户访问了一个请求)
- 一个请求的页面中一旦引入了n个资源文件,则会多出n个请求
- HTTP1.0时,每次请求都会建立新的TCP连接,HTTP1.1 建立的TCP连接可以复用
HTTP协议的特点
- 支持B/S模式
- 简单快速>能够快速有效的处理大量请求
- 灵活> HTTP允许任意传输文件类型,使用content-type设置
- 无状态> 浏览器与服务器之间的连接是不持久的,无法保持事物处理的状态。例如记忆用户名等(需使用cookie或者session解决)
HTTP请求规则
HTTP协议默认端口为:80
HTTPS协议默认端口为:443
requet请求的格式为:
- 请求行:统一资源定位符(URL)、协议版本号
- 消息报头:包含请求的各种信息
- 可能的内容:POST请求发送的数据
response响应的格式为:
- 状态行:包含协议的版本号、响应码
- 消息报头:服务器信息、字符编码格式、MIME类型(文件类型)
- 响应的正文
常见的响应码
1XX:信息相响:表示接受到请求并且继续处理
2XX:处理成功响应:表示动作被成功的接收、理解和接受
3XX:重定向响应:为了完成指定的动作,必须完成进一步处理和操作
4XX:客户端错误:客户请求包含语法错误或者是不能正确执行
5XX:服务器端错误:服务器端不能正确执行一个正确的请求
200 OK //客户端请求成功
302 REDIRECT //重定向
403 Forbidden //服务器收到请求,但是拒绝提供服务(没有权限)
404 Not Found //请求资源不存在,如输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
JAVAWEB的基本入门(JSP、Tomcat)>从零开始学JAVA系列的更多相关文章
- JSP的执行原理、JSP的内置对象、四大作用域解析、MVC模式理解>从零开始学JAVA系列
目录 JSP的执行原理.JSP的内置对象.四大作用域解析.MVC模式理解 JSP的执行原理 这里拿一个小例子来解析JSP是如何被访问到的 首先将该项目部署到tomcat,并且通过tomcat启动 通过 ...
- JAVAWEB过滤器、监听器的作用及使用>从零开始学JAVA系列
目录 JAVAWEB过滤器.拦截器的作用及使用 过滤器Filter 什么是过滤器 为什么要使用过滤器(过滤器所能解决的问题) 配置一个过滤器完成编码的过滤 编写一个EncodingFilter(名称自 ...
- JAVAWEB - Servlet原理及其使用>从零开始学JAVA系列
目录 Servlet原理及其使用 什么是Servlet Servlet的使用 编写一个Servlet,使用继承HttpServlet的方式 配置web.xml 很简单的几个JSP文件 小提示,如果继承 ...
- JAVA数组的基础入门>从零开始学java系列
目录 JAVA数组的基础入门 什么是数组,什么情况下使用数组 数组的创建方式 获取数组的数据 数组的内存模型 为什么数组查询修改快,而增删慢? 查询快的原因 增删慢的原因 数组的两种遍历方式以及区别 ...
- IDEA使用Tomcat时控制台乱码的解决方案>从零开始学JAVA系列
IDEA使用Tomcat时控制台乱码的解决方案 解决方案1,修改启动时虚拟机参数 解决方案2,修改idea的设置 解决方案3,修改idea配置文件 在最后添加一行 '-Dfile.encoding=U ...
- spring框架的学习->从零开始学JAVA系列
目录 Spring框架的学习 框架的概念 框架的使用 Spring框架的引入 概念 作用 内容 SpringIOC的学习 概念 作用 基本使用流程 SpringIOC创建对象的三种方式 通过构造器方式 ...
- Session与Cookie的原理以及使用小案例>从零开始学JAVA系列
目录 Session与Cookie的原理以及使用小案例 Cookie和Session所解决的问题 Session与Cookie的原理 Cookie的原理 Cookie的失效时机 小提示 Session ...
- 数据库建模、面向对象建模>从零开始学java系列
目录 数据库建模 前置知识 使用PowerDesigner数据库建模设计 一对多CDM概念数据模型设计 多对多的PDM物理数据模型设计(针对mysql) PowerDesigner将不同的模型进行转换 ...
- 进入mysql的学习>从零开始学JAVA系列
目录 MySQL的学习 什么是MYSQL 安装MYSQL Window安装MYSQL(压缩包版) 什么是MYSQL 安装MYSQL Window安装MYSQL(压缩包版) MYSQL基本指令 DDL ...
随机推荐
- 轻松吃透实时时钟芯片DS1302软硬件设计,看完秒懂
今天我们来讨论一款老掉牙的实时时钟芯片DS1302.什么是实时时钟(RealTime Clock, RTC)呢?为什么我们需要它呢?假设你使用单片机实现万年历应用,一般的做法是这样的:设置中断后判断1 ...
- 在vue中下拉框切换事件中改新建表单中的一个值,页面不显示
事件中改新建表单中的一个值,页面不显示,当另一个对象值发生改变时,这个页面上的值才会显示 由于新建表单是弹窗,在弹出时会重新给每个字段重新赋值,在赋值时没给这个字段赋值(常见新加功能时,加了一个字段, ...
- 微信sdk上传图片大小1k,损坏的问题以及微信上传图片需要的配置
微信公众号的appid和appsecret有问题,会导致上传图片大小为1k这个问题 微信上传图片需要设置公众号的'JS接口安全域名'
- Golang编写Windows动态链接库(DLL)及C调用范例
一.准备. 1.GoLang在1.10版本之后开始支持编译windows动态链接库,可以打开命令行工具使用go version 查看自己的go版本. 2.你的电脑上需要gcc,如果没有的话[点击这里] ...
- 七、JavaSE语言基础之方法
关于方法的几个简单概念 关于方法的学习,先来明确几个简单的概念: 方法的作用:处理数据(把原始数据通过指定的算法处理后得到结果数据) 方法:在类中定义的具有特定功能的代码块 方法的意义(作用):提高代 ...
- 解决CentOS下service 功能 不能使用 bash: service: command not found
首先检查自己是否 使用的是root用户 在centos系统中,如果/sbin目录下没有service这个命令,就会出现 bash: service: command not found 解决步骤如下: ...
- 1、mysql基础入门(1)
1.mysql基础入门: 1.1.数据库介绍:
- js--你需要知道的字符串使用方法(含es6及之后)
前言 字符串作为 JavScript 的基本数据类型,在开发以及面试过程中作为程序员对基础掌握情况的重要考点,本文来总结一下字符串的相关属性以及用法.包含了ES6中的一些新语法特性. 正文 1.字符串 ...
- bugku--cookie欺骗
打开题目一看,是一串的东西,再看了一下filename发现不对劲了,明显是base64编码,拿去解码一下, 发现是这个,说明是filename,是需要解析的哪个文件名,把index.php编码一下,试 ...
- QT. 学习之路 三
添加一个动作: Qt 使用QAction类作为动作.QAction包含了图标.菜单文字.快捷键.状态栏文字.浮动帮助等信息.当把一个QAction对象添加到程序中时,Qt 自己选择使用哪个属性来显示, ...