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联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

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