2、给浏览器返回。浏览器认识html。可以动态去输出html
Request:要求。客户端向做事端发送的信息。
Response:相应。做事器向客户端放松的信息。
常日要乞降相应是成对涌现的。
浸染:servlet 编写一个程序天生网页。
浏览器要求—servlet,servlet会生产html。把html传送给浏览器(相应)。浏览器看到内容是html
sun公司供应过的servlet的api在javaEE的规范中。如果要利用servlet须要利用javaEE的api。(javeEE包)
javaEE干系的包,(myeclipse自带。当新建一个web工程的时候,myeclipse会自动的把javaEE包导入工程中。)
把稳:javaEE的api并不在jdk中。
1.2. servlet快速入门1.2.1. 编写servlet
写servlet做两件事
1、实现servlet接口。 由sun公司定义的一个接口。(定义一个规范)
2、把类支配到web做事器中(tomcat)。
sun公司定义一个servlet的规范。定义了servlet该当有哪些方法,以及方法须要的参数。
1、实现servlet接口(javax.servlet.Servlet)
public class Hello implements Servlet{} 实现servlet接口
实现接口的所有方法
public void service(ServletRequest requestred, ServletResponse responsered)
throws ServletException, IOException {
}
public void destroy() {
}
public ServletConfig getServletConfig() {
return null;
}
public String getServletInfo() {
return null;
}
public void init(ServletConfig arg0) throws ServletException {
}
2、重写service方法
public void service(ServletRequest requestred, ServletResponse responsered)
throws ServletException, IOException {
System.out.println(“第次要求都会相应\"大众);
}
当浏览器输入地址,访问servlet的时候,servlet会实行servcie方法。
3、在WebRoot/WEB-INF/web.xml中配置servlet的路径 。浏览器访问servlet的路径
web.xml(新建web工程的时候,myeclipse自动创建出来的)的位置:
在web.xml的根标签下,直接书写如下内日。
4、把项目支配到tomcat中,去启动tomcat。在地址栏中输入信息,访问servlet
1.2.2. 访问servlet浏览器地址栏中输入:http://localhost:8080/day09/hello
访问过程剖析:
1.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的包
1.3. servlet生命周期servlet的生命周期。
什么时候创建一个servlet。
什么时候去销毁一个servlet。
init方法:当做事器创建一个serlvet的时候,会去调用init方法。
当我们第一次去访问一个servlet的时候,会去创建这个servlet工具。并且只会创建一次。
如果配置了load-on-startup 表示做事器启动的时候创建servlet。
service方法:客户端每一次要求,tomcat都会去调用servcie方法。处理用户的要求。并且给其相应。
每一次要求都会调用servcie方法。
destroy 方法:当做事器销毁一个servlet的时候,会调用里面的destory方法。
当我们的web做事器,正常关闭的时候,会去调用destroy方法。
否则不会调用destroy的方法。
1.4. 快速创建一个servlet---节制知道:1、自己去定义的servlet 只须要继续HttpServlet 就可以实现 servlet的接口了。
2、往后处理用户的要求,都写在doGet或者doPost方法中。
节制:
1、如何借助工具创建servlet
2、往后书写的代码 书写在利用doGet 或者doPost 中。
步骤:new---servlet
我们自动创建创建的servlet 是继续 httpServlet
GenericServlet 实现了。servlet的接口。
以是安装工具类创建的servlet ,也是实现了servlet的接口
GenericServlet 已经对一些servlet中定义方法进行了实现。
HttpServlet 是GenericServlet的子类。针对http协议的 包含了一些协议干系的内容的servlet。
我们在通过工具去创建的servlet中,要重写的方法是doGet,doPost . ( post,get提交数据的办法,是http协议中的。)
获取http要求的办法。post 和get
由于httpServlet中, service方法回去调用doGet或者doPost. 可以根据不同的要求方法,进行不同的处理。
1.5. 去除servlet模板:找到myeclipse的按装路径,common搜plugins下面的com.genuitec.eclipse.wizards,用解压工具打开找到templates/servlet.java
把稳:一定要先关闭myeclipse,再进行修正
1.6. 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进行匹配的时候,会探求更详细的进行匹配
1.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。
项目中的资源访问的路径的问题
浏览器输入什么样的路径信息,才可以找到对应的资源。
1.7.1. 如果有一个表单。表单的内容提交到servlet中,怎么去书写路径在html的页面 。书写 / 表示的内容 http://localhost:8080
1.7.2. 相对路径
相对路径的写法
hello 统一个文件夹下
./hello 统一个文件夹下
../ 表示上一层目录
利用相对路径的时候,须要进行路径的比对
例如在
http://localhost:8080/day09/hello.html
http://localhost:8080/day09/login
那么在hello.html 这个页面,可以理解为 hello.html 和 login 在一个路径下
1.7.3. 绝对路径分为做事器端和客户端(浏览器)
•Web系统中的相对路径和绝对路径
–绝对路径:/hello /myweb/hello
•做事器端和客户端对付/ 的差异
如果是在做事器端 / 表示的是 http://localhost:8080/day9
客户端 http://localhost:8080
客户端关于路径问题的编程结论
.html .jsp 内都利用绝对路径
.css 内部利用相对路径---- 背景图片
.js中利用绝对路径
1.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
1.7.5. servletContext解释
ServletContext是全体web项目运用程序运行后的代表工具。(代表当前一个项目)可以通过ServletConfig的getServletContext() 的方法得到,然后可以用该工具取得全体运用程序的干系资源或者信息。
统计一个网站的访问量: (多个不同的servlet 都可以进行访问)
配置全局的字符集:(所有的serlvet都可以利用)
ServletConfig:一个servlet被实例化后,对任何客户端在任何时候访问有效,但仅对本servlet
有效,一个servlet的ServletConfig工具不能被另一个servlet访问。
ServletContext:对任何servlet,任何人在任何韶光都有效,即是是全局的工具。