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

相关文章

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),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

C语言指针入门 《C语言非常道》

C语言指针入门 《C语言非常道》 作为一个程序员,我接触 C 语言有十年了。有的朋友让我推荐 C 语言的参考书,我不敢乱推荐,尤其是国内作者写的书,往往七拼八凑,漏洞百出。 但是,李忠老师的《C语言非常道》值得一读。对了,李老师有个官网,网址是: 李忠老师官网 最棒的是,有配套的教学视频,可以试看。 试看点这里 接下来言归正传,讲解指针。以下内容很多都参考了李忠老师的《C语言非

MySQL入门到精通

一、创建数据库 CREATE DATABASE 数据库名称; 如果数据库存在,则会提示报错。 二、选择数据库 USE 数据库名称; 三、创建数据表 CREATE TABLE 数据表名称; 四、MySQL数据类型 MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串类型 4.1 数值类型 数值类型 类型大小用途INT4Bytes整数值FLOAT4By

【QT】基础入门学习

文章目录 浅析Qt应用程序的主函数使用qDebug()函数常用快捷键Qt 编码风格信号槽连接模型实现方案 信号和槽的工作机制Qt对象树机制 浅析Qt应用程序的主函数 #include "mywindow.h"#include <QApplication>// 程序的入口int main(int argc, char *argv[]){// argc是命令行参数个数,argv是