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

方法二:

示例

sendRedirect

response.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对象进行清理完成后销毁对象

猜你喜欢

转载自blog.csdn.net/XCL18215166914/article/details/78998133