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

Request:要求。
客户端向做事端发送的信息。

Response:相应。
做事器向客户端放松的信息。

jsp访问servlet报404java四  servlet入门详解远离404 SQL

常日要乞降相应是成对涌现的。

浸染: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,任何人在任何韶光都有效,即是是全局的工具。