Serlvet入门

2023-11-05 04:50
文章标签 入门 serlvet

本文主要是介绍Serlvet入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Serlvet入门

1.javaee介绍

JAVAEE是一个标准是一个规范(未实现的接口)默认是没有嵌入jdk,apachetomcat实现了JAVAEE的规范(提供了实现类)

JAVAEE 5.0 版本是最稳定 必须tomcat以上版本Serlvet2.5版本  jsp1.1(serlvet1.4是有jsp)

JAVAEE 6.0  servlet 3.0 jsp1.

JAVAEE 7.0是最高版本必须是tomcat8以上版本 Servlet3.0  jsp1.2

JAVAEE 两大技术servletjsp

2.JAVAEE项目开发的目录结构

上下文 文件夹

WEE-INF

-classesjava编译后的class文件

-lib  放依赖jar包目录

-web.xml 核心的配置文件

 

*.html

*.jsp

*.js/css/images

 

Eclipse新建项目的目的就是通过构建工具将项目发布到tomcat/webapps目录

 

3.tomcat目录结构

Conf/server.xml 可以用于tomcat的常用配置(端口)

Bin用于启动和关闭tomcat的命令 startup启动疏通down关闭

Webapps是程序发布目录(重点)

Logs:日志文件(异常)

当手动启动tomcat时一闪在startup.bat中加

Set JAVA_HOME=环境变量

Set TOMCAT_HOME=TOMCAT路径

 

4.本机域名设置

wimdows,c:\windows\system32\drivers\etc

下的hosts文件,(该文件是只读文件,取消只读否则会另存为)

在该文件中设置域名(192.168.14.101  www.qq.com)

5.eclipse中注意

勾上validation中的suspend  all  validators

取消spelling中的Enable spell checking

6.JAVAEE开发工具

 Eclipse

 IntelliJ IDEA

 Jbuilder

 Netbean

7.Getpost区别

 1. 本质区别:get是从服务器上获取数据,post是向服务器传送数据。 在做数据查询时, 建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

 2. 参数传递区别:get是把参数数据队列加到提交表单的ACTION属性所指的URL中,

   http://www.qq.com/a?id=1&password=123   安全性差

  post將數據存放在請求體

 3. 数据大小区别:get传送的数据量较小,不能大于2KBpost传送的数据量较大,一般 被默认为不受限制。但理论上 1TB

 4. 安全性区别:get安全性非常低,post安全性较高。但是执行效率却比Post方法好。 POS 是相對安全  如果 熟悉http協議 基本沒什麼安全性可言

8.服务器端动态处理常见技术

CGI(Common Gateway Interface):公共网关接口

PHP(HyperText Preprocessor):超文本处理器

ASP(Active Server Page):活动服务器页面

Servlet(JSP-Java Server Page):java 服务器页面

 

9.Servlet概述

是一种 Java 编程对象

能够扩展基于Web服务器的服务

是一个强大的,可以替代 CGI 的技术

 

10.HttpServlet

Servlet为了实现基于Http协议的请求和响应,扩展出一个具体的子类HttpServlet,该类专门处理Http协议的请求

 

11.Servlet 的类层次结构

 

Gemericservlet:通用基本servlet实现,对于补偿用的方法在这个实现类中进行了基本的实现

Httpservlet:在通过servlef的基础基于http协议进行了进一步

12.HttpServlet

HttpServlet实现了javax.servlet.GenericServlet

HttpServlet类是专门处理基于HTTP协议的Servlet

对于每种类型的 HTTP 请求方法,HttpServlet 类提供相应的 doXxx()方法,service方法中调用相应的doXxx()方法

程序员重写doXxx()方法 一般不重写service方法

 

 

13.HttpServletRequest

Request表示浏览器的请求(浏览器输入的些回车,表单点击提交按钮)请求获取的是浏览器的一些信息(请求头)

请求头常用方法

getHeader(String):获得给定名的头信息

getHeaderNames:获得请求所包含的所有头名

 

获取用户相关信息:

getRequesURL():获取请求的完整路径URL

Getparament():由键获取值

getMethod():获得请求的方法

getCookies():获得cookie信息

getScheme():获取协议

getServerName() 获取主机名

getServerPort() 获取服务器的端口

getContextPath() 获取上下文路径

getServletPath() 获取路径 中除上下文后的其他路径

getRequesURI() 获取请求的完整路径

 

14.HttpServletResponse

Http状态码:用于服务器将请求的状态传送给客户机

100-199: 临时状态码

200-299: 请求成功

300-399:重定向

400-499:客户端错误

500-599:服务器端错误

设置状态码的方法:

setStatus(int sc)

HttpServletResponse中静态变量定义Http状态码:

SC_OK                     200

SC_MOVED_TEMPORARILY     302

SC_NOT_FOUND    404

SC_INTERNAL_SERVER_ERROR  500

设置响应头:setHeader(name,value);

常见响应报头

Content-Type:定义响应文档的MIME(Multipurpose Internet Mail Extension)类型,maintype/subtype组成

有专门的方法设置该响应头:setContentType

response.setContentType(text/html; charset=GBK );//最常见形式

response.setContenType(application/vnd.ms-excel);//excel文档

response.setHeader("Content-Type",

      "application/vnd.ms-excel; charset=GBK");

response.setContenType(image/jpeg);//图形图像

 

 

重定向

方法一:

设置状态码,302

设置响应头:location

方法二:

示例

sendRedirectresponse.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);response.setHeader("Location","http://www.csdn.net");response.sendRedirect("http://www.csdn.net");


页面重新刷新

response.setIntHeader(Refresh,10);

response.setHeader(Refresh,10 ,url=http://www.csdn.net);

15.JettyTomcat比较

1.Jetty更轻量级。这是相对Tomcat而言的。 
由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。

 

2.jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。

 

3.然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。

 

16.Java生命周期

实例化(new)

Jvm会对对象进行初始化<init>调用构造器

Gc调用finalize对象进行清理完成后销毁对象

这篇关于Serlvet入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347528

相关文章

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能

《POI从入门到实战轻松完成EasyExcel使用及Excel导入导出功能》ApachePOI是一个流行的Java库,用于处理MicrosoftOffice格式文件,提供丰富API来创建、读取和修改O... 目录前言:Apache POIEasyPoiEasyExcel一、EasyExcel1.1、核心特性

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python FastAPI入门安装使用

《PythonFastAPI入门安装使用》FastAPI是一个现代、快速的PythonWeb框架,用于构建API,它基于Python3.6+的类型提示特性,使得代码更加简洁且易于绶护,这篇文章主要介... 目录第一节:FastAPI入门一、FastAPI框架介绍什么是ASGI服务(WSGI)二、FastAP

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联