servlet学习日志01

本文详细介绍JavaWeb的基础概念,包括请求与响应的工作原理、静态与动态资源的区别、Tomcat服务器的安装与配置流程、Servlet的基本使用及其生命周期管理等内容。

javaweb


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

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

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

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


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



tomcat

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


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

tomcat下载和安装说明



提供的.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












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




 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 *





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


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






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

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

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

把war包部署到tomcat中

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

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


步骤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
找到<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改port的值。
win7系统,会自带一个软件,把80端口占用了。

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


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



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





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





启动tomcat:


需要注意的问题:



一定要配置到jdk的目录


4.8.2. myeclipse创建web工程



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









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

1、deplay







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

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


启动tomcat



4.9. 修改工程的部署名字




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

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

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

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



4.10. web应用(网站)的目录结构
创建web工程的时候,目录结构很相似。



web.xml中的内容

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name></display-name>
  <welcome-file-list>
  	<!-- 欢迎页面,当访问我们这个工程的时候,如果后面什么也不输入。就会进入欢迎也没 -->
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

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


5. servlet

5.1. servlet简介



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方法。

3、在WebRoot/WEB-INF/web.xml中配置servlet的路径 。浏览器访问servlet的路径
web.xml(新建web工程的时候,myeclipse自动创建出来的)的位置:

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



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


5.2.2. 访问servlet

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

 

访问过程分析:



5.2.3. servlet入门小结
1、快速创建一个serlvet。
1、创建一个类,去实现java.servlet.Serlvet 这个接口
2、重写类中 service方法
3、在web-inf/web.xml 中去配置serlvet一些信息
<serlvet>
<serlvet-name>
<serlvet-class>
<serlvet>
<serlvet-mapping>
<serlvet-name>
<url-pattern> servlet的访问路径
<servlet-mapping>
2、Servlet的访问过程?

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

5.3. servlet生命周期

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





 

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

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




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




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

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




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

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

否则不会调用destroy的方法。








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

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

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

掌握:

1、如何借助工具创建servlet

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



步骤:new---servlet










GenericServlet 实现了。servlet的接口。

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

 

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

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

 

 

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

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




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

 



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

1.2. url-pattern三种配置

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

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

在访问的时候 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


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

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



在浏览器中,如何去访问一个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


相对路径的写法

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中使用绝对路径

 


5.7.4. servletConfig说明

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


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



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

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



示例

web.xml




servlet.java




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


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

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





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












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值