Servlet概述
什么是Servlet?
Servlet是由SUN公司提供的动态web资源开发技术, 本质上是一段java程序, 这段java程序无法独立运行, 必须放在Servlet容器(比如: tomcat服务器)中, 由容器调用才可以执行!
动态web资源:网页能根据不同的访问条件或者不同的人访问来显示不同的数据。
Servlet是动态WEB资源,不能直接发给浏览器,而且文件在WEB-INF里,不能直接访问。
开发Servlet程序的步骤
1.写一个类, 实现一个Servlet接口, 并添加未实现的方法
2.将编译后的Servlet程序, 放在WEB应用中, 并在WEB应用web.xml文件中配置Servlet对外访问的虚拟路径, 并将WEB应用部署到虚拟主机中即可
用记事本开发一个Servlet程序
需求
浏览器向服务器发送一个请求,访问FirstServlet,FirstServlet将表示当前时间的字符串发送给浏览器
详细开发步骤
1创建FirstServlet.java文件
2.编写FirstServlet类,实现继承Servlet接口的子类GenericServlet,并添加未实现的方法
3实现Servlet中提供的处理请求的方法service方法,将表示当前时间的字符串响应给浏览器
4细节处理(添加servlet类的包路径和导入的依赖包)
package serverapps.servlet;
import java.io.*;
import java.util.*;
import javax.servlet.*;
public class FirstServlet extends GenericServlet{
public void service(ServletRequest req, ServletResponse res)
throws ServletException,IOException{
String dateStr=new Date().toLocaleString();
res.getWriter().write(dateStr);
}
}
5打开cmd窗口,定位到.java文件所在目录,如下图
6去tomcat的目录如D:\apache-tomcat-7.0.59\lib找到servlet-api.jar
在cmd输入set classpath=,然后将servlet-api.jar拖入cmd——生成临时classpath
会生成全路径
set classpath=D:\apache-tomcat-7.0.59\lib\servlet-api.jar
回车后,如下图
表示成功
7输入命令
javac -d . FirstServlet.java
带包编译 如下图表示成功
会发现当前目录多了一个文件夹
这个文件夹就是编译后的class的包
8将这个编译后class的包放在有以下目录结构的WEB应用中的classes文件夹下。
如这个news应用,1.html可以为空
WEB-INF目录下必须有如下文件和文件夹
9更改web.xml文件作如下配置
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<welcome-file-list>
<welcome-file>1.html</welcome-file>
</welcome-file-list>
<!--servlet settings-->
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>serverapps.servlet.FirstServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/FirstServlet</url-pattern>
</servlet-mapping>
</web-app>
10开启tomcat服务器,把整个news文件夹放入tomcat服务器的webapps目录中
11在浏览器输入
http://localhost:8080/news/FirstServlet
即可得到当前时间
如:
2018-8-14 19:01:09