JavaEE (1)

news/2024/9/5 19:30:04 标签: java-ee, java

web开发概述

所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行 交互. 流程图如下

Web服务器是指驻留于因特网上某种类型计算机的程序.

可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览; 它是一个容器,是一个连接用户与程序之间的中间件

WEB服务器有很多,流行的WEB服务器有Tomcat 、 WebSphere 、 WebLogic、Jboss等

在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器: Apache 的Tomcat,该服务器支持全部JSP以及Servlet规范

Apache软件基金会(也就是Apache Software Foundation,),是专门为运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织。

web开发环境搭建

Tomcat官方站点:http://tomcat.apache.org

获取Tomcat安装程序包

● tar.gz文件是Linux操作系统下的安装版本

● zip文件是Windows系统下的压缩版本

安装JDK

● 设置JAVA_HOME环境变量

● 设置PATH环境变量

● 安装Tomcat ● 解压tomcat压缩文件

步骤

1. 双击 bin 目录下的 startup.bat 文件 输入 http://localhost:端口号 或http:127.0.0.1:端口号 或局域网ip:端口号

● server.xml是Tomcat的主配置文件

提供Tomcat组件的初始配置,tomcat启动的时候执行这些初始化设置。 修改此文件后,需要重新启动tomcat。如果此文件修改错误,则tomcat不能正常启动。

● 修改服务器端口号

2.创建并发web项目

        1.创建javaWeb项目

         2.发布web应用到服务器

                自动将web应用发布到web服务器下,需要在开发工具中集成tomcat进来

Servlet概述

● Servlet是Server Applet的简称,意思为用Java编写的服务器端的程序. 它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用 Servlet方法。

● Servlet的作用: 1.接收用户发送的请求数据 2.调用其他的java程序来处理请求 3.根据处理结果,将结果响应给客户端

● 1.创建一个类继承javax.servlet.http包下的HttpServlet

● 2.在web.xml文件中配置Servlet

● 3.运行Servlet程序 通过浏览器访问http:localhost:8080/ 项目名/配置的url

● 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被 外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文 件中使用元素和元素完成。

Servlet创建和使用-Servlet配置

元素用于注册Servlet,它包含有两个主要的子元素: <servlet-name> 和<servlet-class>,分别用于设置Servlet的注册名称和 Servlet的完整类名。 一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路 径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定 Servlet的注册名称和Servlet的对外访问路径。

创建发布web项目- web.xml文件

1.Web.xml文件为web应用的配置文件,它必须放在web应用 目录WEB-INF目录下。

2. Web.xml文件用于对web应用下的web资源进行配置,服务 器在启动时会读取web.xml文件中的内容。

Servlet生命周期

创建一个类 继承httpservlet,这个类就是一个javaEE程序,在web.xml文件中为程序配置信息,向外提供一个访问地址,就可以在浏览器中访问,找到相应的javaEE程序

无参构造方法:默认是存在,初始化创建的对象,只被调用一次(始终创建了一个对象),在第一次访问servlet程序有服务器创建执行

init()初始化:在构造方法执行完成后,立即被调用执行,完成一些servlet程序的初始化(例如,读取配置文件中的参数),只执行一次

service()服务:用来接收前端请求,为前端提供服务,每次前端发送的请求,都会调用service(),多次调用.

HttpServletRequest req:表示请求对象,前端提交过来所有的数据,都有服务器封装在此对象中

HttpServletResponse resp:表示响应前端请求,响应对象

destory()销毁:在服务器关闭时,如果我们的程序想要最终执行某些操作,就可以在destory()方法中实现

http协议

从前端向后端发送的请求,都是http请求.

超文本传输协议 (HyperText Transfer Protocol)服务器传输超文本 到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于 定义客户端浏览器和服务器之间交换数据的过程。

HTTP是一个基于TCP/IP通信协议来传递数据.

HTTP是一个属于应用层的协议,由于其简捷、快速的方式,适用于分布 式超媒体信息系统.

http请求

一次 http请求包含请求行,请求头,请求体 三步.

1.请求行:请求行包含http请求方式,请求资源名称,http版本

2.请求头包含主机地址,以及客户端的一些环境信息,以键值对的形式传递. Host: 127.0.0.1:8088 请求的主机地址 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 浏览器能够处理的内容类型 Accept-Encoding: gzip, deflate, br 浏览器能够处理的压缩编码 Accept-Language: zh-CN,zh;q=0.9 浏览器当前设置的语言 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36 使用的浏览器和操作平台信息 Connection: keep-alive 浏览器与服务器之间连接的类型

3.请求体代表着浏览器在post请求方式中传递给服务器的参数,请求体中参数以 键值形式传递, 多个用&链接,服务器接收到后再解析. username=admin&userpwd=123

请求和响应是Web交互最基本的模式,在Servlet中,用HttpServletRequest 来表示请求。

● HttpServletRequest :封装了请求的信息,可以从中获取任何请求信息。

getParameter(name) --- String 通过name获得值

● 处理post请求中文乱码 request.setCharacterEncoding(编码格式)

GET请求

主要从后端获取信息,例如网页上的超链接,向后端传递少量信息,获得大量信息.请求数据在请求地址中直接拼接,所以传输的数据有限,并且敏感数据不安全

传递的参数,在请求地址?后面 键=值&键=值

POST请求

主要用于向后端发送大量数据,请求数据在请求体中,可以传输大量数据,不会在地址中显示,所以相对安全

Get方式与post方式的区别

● Get方式主要是从服务器获取信息;post主要是想服务器提交信息

● Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据 放置在请求体中提交。

● GET方式提交的数据大小受限制一般1kb(不同浏览器也会有不同);而 POST则没有此限制

由于前端请求有get 和 post两种,在后端处理上略有不同,所以在父类的service方法中会根据请求方式的不同调用doGet或者doPost方法分别处理

http响应

一个http响应代表服务器向客户端回送的数据,它包括:响应行,响应头,响应体。 响应行里包含了http协议版本,以及用于描述服务器对请求的处理结果。 HTTP/1.1 (协议版本) 200(状态吗) OK(状态码描述) 状态码:服务器和浏览器用于确定状态的固定数字号码 200:请求成功 302:请求重定向 400:语义有误,当前请求无法被服务器理解或请求参数有误 404:请求资源不存在,通常是路径写错了或者服务器资源删除了 500:服务内部错误(代码异常) 响应头用于描述服务器的基本信息,以及数据描述 Ser ver Apache-Coyote/1.1 Content-Type text/html;charset=UTF-8 Content-Length 0 Date Wed, 13 Sep 2017 02:26:07 GMT 响应体代表服务器向客户端浏览器回送的正文

● Web服务器收到客户端的http请求,会针对每一次请求,分别创建 一个代表响应的HttpServletResponse对象。

●HttpServletResponse对象代表响应

● 用getWriter()获得一个PrintWriter字符输出流输出数据 response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

●response.setContetnType("text/html;charset=utf-8");方法 可以同时设定response所使用的字符集编码和浏览器打开所用的字符集 编码

Httpservletrequest 表示请求对象,服务器将请求到数据都封装到httpservletrequest对象中,通过此对象可以获得请求中的任意的数据

● Web服务器收到客户端的http请求,会针对每一次请求,分别创建 一个代表响应的HttpServletResponse对象。

● HttpServletResponse对象代表响应

● 用getWriter()获得一个PrintWriter字符输出流输出数据 response会默认以ISO8859-1将需要输出到浏览器的字符进行解码, 如果输出的字符在ISO8859-1中不存在,就会导致乱码问题。

● response.setContetnType("text/html;charset=utf-8");方法 可以同时设定response所使用的字符集编码和浏览器打开所用的字符集 编码


http://www.niftyadmin.cn/n/5564819.html

相关文章

【Linux服务器Java环境搭建】011在linux中安装Nginx,以及停止或启动Nginx服务

系列文章目录 【Linux服务器Java环境搭建】 前言 又到了周五晚上了&#xff0c;最近工作上有些忙&#xff0c;忙于一个需求频繁变更的项目&#xff0c;都快吐血了&#xff0c;懂得都懂&#xff0c;哈哈&#xff0c;正好有时间了&#xff0c;继续写系列【Linux服务器Java环境搭…

【数据结构】二叉树全攻略,从实现到应用详解

​ &#x1f48e;所属专栏&#xff1a;数据结构与算法学习 &#x1f48e; 欢迎大家互三&#xff1a;2的n次方_ ​ &#x1f341;1. 树形结构的介绍 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做…

【数据结构】二叉树OJ题_单值二叉树_相同的树

单值二叉树 题目 965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; 如果二叉树每个节点都具有相同的值&#xff0c;那么该二叉树就是单值二叉树。 只有给定的树是单值二叉树时&#xff0c;才返回 true&#xff1b;否则返回 false。 示例 1&#xff1a; 输入&#…

蚁群算法路径规划

蚁群算法&#xff08;Ant Colony Optimization, ACO&#xff09;是通过模拟自然界蚂蚁觅食行为来解决优化问题的启发式算法。其核心思想是利用蚂蚁之间通过信息素传递来寻找最优解。以下是蚁群算法的基本原理&#xff1a; 1. 基本概念 信息素&#xff1a;蚂蚁在路径上释放的化…

Perl与数据库交互:深入理解DBI模块

Perl是一种非常强大的语言&#xff0c;特别是在处理文本和数据方面。在现代软件开发中&#xff0c;数据库的使用几乎是不可或缺的。Perl通过DBI&#xff08;Database Interface&#xff09;模块提供了一种标准的方式来与数据库进行交互。DBI是Perl中用于数据库交互的接口&#…

作为爬虫工程师,在封装API时如何做得更好

在数据驱动的时代&#xff0c;爬虫工程师的角色日益重要。他们不仅是数据的收集者&#xff0c;更是数据的桥梁构建者&#xff0c;通过编写高效、稳定的爬虫程序&#xff0c;将互联网上的海量信息转化为有价值的数据集。而在这一过程中&#xff0c;API&#xff08;应用程序接口&…

docker 部署 LaTeX 环境

docker 部署 LaTeX 环境 需求表述部署步骤环境补丁&#xff08;解决 picins.sty 缺失问题&#xff09; 同步发布在个人笔记docker 部署 LaTeX 环境 需求表述 想做一个项目&#xff0c;需要一个 LaTeX 的中文环境&#xff0c;由于习惯了在服务器上用 docker 部署环境&#xff0…

使用 tcpdump 进行网络流量捕获与分析

目录 安装 tcpdump基本用法捕获网络流量指定网络接口捕获特定主机的流量捕获特定端口的流量捕获特定协议的流量 常用选项保存捕获的数据包从文件读取数据包显示数据包内容指定捕获数据包的长度限制捕获的数据包数量显示详细信息过滤表达式 示例捕获本地回环接口上的HTTP流量捕获…