servlet学习日志01

javaweb


web开发是基于请求和响应的:
请求:浏览器(客户端)向服务器发送信息
响应:服务器向浏览器回送信息

请求和响应是成对出现的。web资源分类

所谓web资源即放在Internet网上供外界访问的文件或程序,又根据它们呈现的效果及原理不同,将它们划分为静态资源和动态资源。

静态web资源:固定不变数据文件(静态网页 HTML、文本、音频、视频)
静态web技术:HTML+CSS+JavaScript (HTML5+CSS3) ====== DHTML (Dynamic HTML)


动态web资源:一段程序,运行后,生成数据文件
动态web技术:servlet,jsp,php, .net ,ruby、python

servlet学习日志01_第1张图片

tomcat

开源小型web服务器 ,完全免费,主要用于中小型web项目,只支持Servlet和JSP 等少量javaee规范 ,Apache公司jakarta 一个子项目


1、安装和启动tomcat
2、把一个web的工程(把一些资源部署到tomcat中,可以让用户去访问);
3、tomcat和myeclipse的结合使用。

tomcat下载和安装说明

servlet学习日志01_第2张图片


提供的.zip结尾。免安装版本。不需要安装,可以直接使用:
注意事项:
1、JAVA_HOME:环境变量。并且配置到jdk的目录。
例如:
C:\Program Files\Java\jdk1.7.0_72

2、启动tomcat。 tomcat/bin/startup.bat(window启动文件)
找到startup.bat 双击运行。会有一个黑窗口,黑窗口不要关闭。(如果关闭,相当于把tomcat停止了。)

3、在浏览器地址栏中输入:http://localhost:8080 127.0.0.1:8080
如果看到如下页面,证明启动成功



在myclipse中配置 tomcat


servlet学习日志01_第3张图片


servlet学习日志01_第4张图片



servlet学习日志01_第5张图片



servlet学习日志01_第6张图片


启动tomcat:
注意:此时我们的系统只能启动一个tomcat。


servlet学习日志01_第7张图片


 tomcat服务器与servlet版本的关系


servlet:sun公司提供的用于开发动态web资源的技术。
jsp:(java server page),java提供的一门开发web网页的技术。

tomcat软件:java开发的。java软件运行的时候需要jdk。

向下兼容。tomcat7也支持servlet3.0/jsp2.2规范,可以支持javaee6.0

myeclipse自带的tomcat。10.*自带的tomcat是 tomcat 6.*

当前企业常用的版本 7 * / 8 *

servlet学习日志01_第8张图片



tomcat目录结构-----重要


bin目录,启动和关闭
logs目录,日志 目录
webapps目录:web项目部署之后的目录
work目录:jsp的一些文件放到work目录下


servlet学习日志01_第9张图片




将网站目录复制到tomcat/webapps目录----掌握

有一个网站(一个文件夹),把文件夹复制到tomcat的webapps目录下。
文件夹的名字,就是网站的目录.相当于之前配置 Context path

如果webapps下面有一个ROOT的项目。那么在访问的时候,直接可以省略项目的名字/ 表示找到root目录

把war包部署到tomcat中

war:就是一个压缩文件 zip格式的压缩文件。 只不过扩展名不是.zip 而是.war

步骤1、把文件夹中的内容压缩成zip的格式
点击一个要部署的文件夹下面,全选 然后压缩

servlet学习日志01_第10张图片

步骤2、修改文件的后缀名为.war

步骤3.把war文件复制到webapps目录下。tomcat会自己把war的文件进行解压

配置tomcat的端口

tomcat默认的端口是8080(访问端口)
http://www.baidu.com:80

http的默认端口是80.
如果访问的时候
输入http://www.baidu.com
相当于http://www.baidu.com:80

真正在项目上线之后,通常采用80.

在tomcat/conf/server.xml
找到 connectionTimeout="20000"
redirectPort="8443" />
修改port的值。
win7系统,会自带一个软件,把80端口占用了。

配置tomcat在运行中,浏览器访问的端口。


如果启动的时候出现如下错误:表示端口被占用



4.8. 将myeclipse中的web项目部署到tomcat---重点
4.8.1. myeclipse配置tomcat
让tomcat和myeclipse关联起来

servlet学习日志01_第11张图片


servlet学习日志01_第12张图片


注意:选择tomcat的时候,选择到tomcat目录即可。


servlet学习日志01_第13张图片



启动tomcat:servlet学习日志01_第14张图片


需要注意的问题:

servlet学习日志01_第15张图片


一定要配置到jdk的目录


4.8.2. myeclipse创建web工程

servlet学习日志01_第16张图片


Context root URL :配置web项目,要被访问的目录(Context path=“”,部署到webapps目录下文件夹的名字。)

servlet学习日志01_第17张图片


servlet学习日志01_第18张图片


servlet学习日志01_第19张图片

servlet学习日志01_第20张图片


4.8.3. 把web工程(myeclipse创建的)部署到tomcat中

1、deplay



servlet学习日志01_第21张图片


servlet学习日志01_第22张图片


myeclipse会把工程文件的内容,复制到tomcat的webapps目录下。

复制Web-Root下面的内容。到tomcat的webapps下。 更改文件夹名字为工程名(默认是工程名。)

servlet学习日志01_第23张图片

启动tomcat

servlet学习日志01_第24张图片

4.9. 修改工程的部署名字

servlet学习日志01_第25张图片

servlet学习日志01_第26张图片


4.9.1. myeclipse把什么内容部署到tomcat中去了
myeclipse只会把webRoot下面的内容拷贝到tomcat的webapps下面

java文件会被编译成class文件。 class文件放到web-inf目录下classes目下

以后html,js,css的内容,放到 webroot目录下。

在web-inf 下面 有一个web.xml 的文件。包含了当前的web工程的一些信息

servlet学习日志01_第27张图片


4.10. web应用(网站)的目录结构
创建web工程的时候,目录结构很相似。
servlet学习日志01_第28张图片


servlet学习日志01_第29张图片

web.xml中的内容



  
  
  	
    index.html
  


如果工程部署之后,是一个ROOT。ROOT表示的目录相当于/


5. servlet

5.1. servlet简介

servlet学习日志01_第30张图片

servlet学习日志01_第31张图片

serlvet:1、接受浏览器发送过来的消息。

          2、给浏览器返回消息。浏览器认识html。可以动态去输出html

 

Request:请求。客户端向服务端发送的信息。

Response:响应。服务器向客户端放松的信息。

通常请求和响应是成对出现的。

 

 

作用:servlet 编写一个程序生成网页。

 

浏览器请求—servletservlet会生产html。把html传送给浏览器(响应)。浏览器看到内容是html

 

 

sun公司提供过的servlet的api在javaEE的规范中。如果要使用servlet需要使用javaEE的api。(javeEE包)

javaEE相关的包,(myeclipse自带。当新建一个web工程的时候,myeclipse会自动的把javaEE包导入工程中。)

注意:javaEE的api并不在jdk中。




5.2. servlet快速入门
5.2.1. 编写servlet

写servlet做两件事
1、实现servlet接口。 由sun公司定义的一个接口。(定义一个规范)
2、把类部署到web服务器中(tomcat)。

sun公司定义一个servlet的规范。定义了servlet应该有哪些方法,以及方法需要的参数。
1、实现servlet接口(javax.servlet.Servlet)
2、重写service方法

当浏览器输入地址,访问servlet的时候,servlet会执行servcie方法。
servlet学习日志01_第32张图片

3、在WebRoot/WEB-INF/web.xml中配置servlet的路径 。浏览器访问servlet的路径
web.xml(新建web工程的时候,myeclipse自动创建出来的)的位置:
servlet学习日志01_第33张图片

在web.xml的根标签下,直接书写如下内日。

servlet学习日志01_第34张图片


4、把项目部署到tomcat中,去启动tomcat。在地址栏中输入信息,访问servlet


5.2.2. 访问servlet

浏览器地址栏中输入:http://localhost:8080/day09/hello

 

访问过程分析:

servlet学习日志01_第35张图片

5.2.3. servlet入门小结
1、快速创建一个serlvet。
1、创建一个类,去实现java.servlet.Serlvet 这个接口
2、重写类中 service方法
3、在web-inf/web.xml 中去配置serlvet一些信息






servlet的访问路径

2、Servlet的访问过程?
servlet学习日志01_第36张图片

3、Servlet的api在那里?javaEE的包里面。
myeclipse在创建web工程的时候会自带上。
tomcat的lib目录中也包含了javaEE的包

5.3. servlet生命周期

servlet的生命周期。
什么时候创建一个servlet。
什么时候去销毁一个servlet。

servlet学习日志01_第37张图片


servlet学习日志01_第38张图片


servlet学习日志01_第39张图片

 

init方法:当服务器创建一个serlvet的时候,会去调用init方法。

       当我们第一次去访问一个servlet的时候,会去创建这个servlet对象。并且只会创建一次。




如果配置了load-on-startup表示服务器启动的时候创建servlet。


servlet学习日志01_第40张图片


service方法:客户端每一次请求,tomcat都会去调用servcie方法。处理用户的请求。并且给其响应。

                           每一次请求都会调用servcie方法。


servlet学习日志01_第41张图片


destroy 方法:当服务器销毁一个servlet的时候,会调用里面的destory方法。

                     当我们的web服务器,正常关闭的时候,会去调用destroy方法。

否则不会调用destroy的方法。



servlet学习日志01_第42张图片

servlet学习日志01_第43张图片


servlet学习日志01_第44张图片


5.4. 快速创建一个servlet---掌握

知道:1、自己去定义的servlet 只需要继承HttpServlet 就可以实现servlet的接口了。

      2、以后处理用户的请求,都写在doGet或者doPost方法中。

掌握:

1、如何借助工具创建servlet

2、以后书写的代码书写在使用doGet 或者doPost 中。

servlet学习日志01_第45张图片

步骤:new---servlet


servlet学习日志01_第46张图片


servlet学习日志01_第47张图片


servlet学习日志01_第48张图片


servlet学习日志01_第49张图片


GenericServlet 实现了。servlet的接口。

所以安装工具类创建的servlet,也是实现了servlet的接口

 

GenericServlet 已经对一些servlet中定义方法进行了实现。

HttpServlet 是GenericServlet的子类。针对http协议的 包含了一些协议相关的内容的servlet。

 

 

我们在通过工具去创建的servlet中,要重写的方法是doGet,doPost . ( post,get提交数据的方式,是http协议中的。)

获取http请求的方式。post 和get




因为httpServlet中, service方法回去调用doGet或者doPost. 可以根据不同的请求方法,进行不同的处理。

 

servlet学习日志01_第50张图片

1.1. 去除servlet模板:
找到myeclipse的按装路径,common搜plugins下面的com.genuitec.eclipse.wizards,用解压工具打开找到templates/servlet.java

1.2. url-pattern三种配置
servlet学习日志01_第51张图片

url-pattern 配置servlet的访问路径。

1、完全路径匹配,以”/”开头 后面是具体的路径信息。
你输入什么内容。访问的时候,就需要输入什么内容,才可以找到对应的servlet
例如
/hello

在访问的时候 http://ip:端口/应用名/hello 才可以找到hello的servlet
2、目录匹配,以/*结尾
例如 /abc/* ---这这个url-patten 对应的servlet
在访问的时候只有/abc/xx /abc/dd /abc/cc
http://ip:端口/abc/abx
http://ip:端口/abc/bdsf
/abc/ssss
/abc/fdsafd/asdf/asdf


3、扩展名匹配 *.扩展名
*.do
*.action
当访问的时候 输入a.do b.do
/ddd/asdf/a.do


访问的时候aa.do
/abc/a.do

在url进行匹配的时候,会寻找更具体的进行匹配


5.7. web中的资源路径

告诉大家:如何去访问一个web中的资源。

web资源路径访问的问题;

1、部署工程文件的位置
WebRoot 下所有资源全部发布到服务器webapps 目录应用名下 所有静态页面放在WebRoot 下或者 WebRoot 子目录

项目部署的时候,会把工程中的WebRoot这个文件夹拷贝到tomcat的webapps目录下。把WebRoot文件夹的名字修改成项目的目录名字;

考虑问题:
在webroot外面去创建了一个html a.html
servlet学习日志01_第52张图片


此时a.html 不能被访问的。 因为项目部署的时候,至部署了。webRoot 里面的内容。

以后我们把html文件,css。js都放到webRoot 下

servlet学习日志01_第53张图片


在浏览器中,如何去访问一个html内容。

http://localhost:8080/day09/直接书写html文件的路径,相对与WEBROOT这个文件夹路径
例如b.html 和c.html的访问路径可以是:
http://localhost:8080/day09/b.html
http://localhost:8080/day09/html/c.html



关于servlet 。在web.xml中进行配置servlet路径 url-pattern . 相当于servlet的访问路径
之前的内容:http://localhost:8080/day09/url-pattern
例如我们在web.xml中配置了

访问的时候,可以书写:http://localhost:8080/day09/login

 

 

2:  源码 servlet 全部在src  ---> 映射 WEB-INF /classes 目录下!!

 

src存放的java源文件。

 

把java文件进行编译,编译好的classes放到到WEB-INF/classes。

 

 

项目中的资源访问的路径的问题

浏览器输入什么样的路径信息,才可以找到对应的资源。


5.7.1. 如果有一个表单。表单的内容提交到servlet中,怎么去书写路径
在html的页面 。书写 / 表示的内容 http://localhost:8080

servlet学习日志01_第54张图片

相对路径的写法

hello  统一个文件夹下

./hello  统一个文件夹下

 ../  表示上一层目录

 

使用相对路径的时候,需要进行路径的比对

例如在

http://localhost:8080/day09/hello.html

http://localhost:8080/day09/login

那么在hello.html 这个页面,可以理解为 hello.html  和 login 在一个路径下

 


绝对路径的写法


分为服务器端和客户端(浏览器)

 

•       Web系统中的相对路径和绝对路径

–      绝对路径:/hello   /myweb/hello

•       服务器端和客户端对于/ 的区别

如果是在服务器端  / 表示的是 http://localhost:8080/day9

 客户端 http://localhost:8080

 

 

客户端关于路径问题的编程结论

*.html *.jsp 内都使用绝对路径

*.css 内部使用相对路径---- 背景图片

*.js中使用绝对路径

 servlet学习日志01_第55张图片


5.7.4. servletConfig说明

servletConfig 是一个对象。javaee规范中定义的一个对象。要求web服务器(tomcat),创建一个servlet的同时,也要去创建一个servletConfig对象。还要给servlet去使用。
serlvetConfig 是我们servlet 一些的配置信息。如果一个servlet 使用的过程中需要一些参数信息。这些参数信息,可以配置到servletConfig中。 之后servlet去使用。


serlvetConfig对象使用总结:
1、如果servlet需要一些参数。我们可以在servlet这个标签内去进行配置(web.xml)

servlet学习日志01_第56张图片


2、tomcat去工作:读取servlet中init-param这个标签。把里面的内容封装到servletConfig对象中。
3、tomcat去工作,调用servlet中init方法。把封装好的servletConfig对象。传递到对应的servlet中。

4、如何去使用:
4.1 需要获取servletConfig,getServletConfig方法去获取对象
4.2获取里面具体的值。servletConfig.getInitParameter(key);

servlet学习日志01_第57张图片


示例

web.xml


servlet学习日志01_第58张图片


servlet.java

servlet学习日志01_第59张图片



5.7.5. servletContext说明
ServletContext是整个web项目应用程序运行后的代表对象。(代表当前一个项目)可以通过ServletConfig的getServletContext() 的方法得到,然后可以用该对象取得整个应用程序的相关资源或者信息。
servlet学习日志01_第60张图片


统计一个网站的访问量:   (多个不同的servlet 都可以进行访问)

servlet学习日志01_第61张图片

配置全局的字符集:(所有的serlvet都可以使用)

servlet学习日志01_第62张图片

servlet学习日志01_第63张图片

ServletConfig:一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet
有效,一个servlet的ServletConfig对象不能被另一个servlet访问。
ServletContext:对任何servlet,任何人在任何时间都有效,等于是全局的对象。

servlet学习日志01_第64张图片

servlet学习日志01_第65张图片










你可能感兴趣的:(servlet学习日志01)