一、 什么是Servlet?
Java Servlet 是运行在 Web 服务器或应用服务器上的程序;他是浏览器(HTTP客户端)请求和HTTP服务器上资源(访问数据库)之间的中间层。
二、什么是Servlet的运行环境?
Servlet容器是Java Servlet程序的运行环境,比如,常用的tomcat,同时它也是web服务器;
三、什么是Servlet的生命周期?
Servlet的创建到销毁的过程称为Servlet的生命周期;具体分为三个阶段:
- Servlet初期化 init()
- Servlet处理请求 service()
- Servlet销毁 destroy()
四、创建一个Servlet示例程序
HellowordServlet.java
//@WebServlet(urlPatterns = {"/helloworldServet"})
public class HellowordServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HellowordServlet() {
super();
// TODO Auto-generated constructor stub
}
/**初始化方法
* @see #init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
System.out.println("Servlet初期化");
}
/**
* servlet销毁方法
* @see #destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
System.out.println("Servlet销毁");
}
/**
* get请求
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //2.重新定义doGet
response.setContentType("text/html;charset=UTF-8"); //3.设置响应类型
PrintWriter out = response.getWriter(); //4.取得响应输出对象
String name = request.getParameter("name"); //5.取得请求参数
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("<BODY>");
out.println("<h1>Hello!" + name + "</h1>"); //6.数据输出到前端
out.print("This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
web.xml配置
<servlet>
<servlet-name>helloworldServet</servlet-name>
<servlet-class>com.critc.servlet.HellowordServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloworldServet</servlet-name>
<url-pattern>/helloworldServet</url-pattern>
</servlet-mapping>
这里面配置一个servlet,指定名称和对应的class,再配置servlet-mapping,指定url映射的类型,这里设置为/helloworldServet
,意思就是以http://localhost:8080/helloworldServet
开头的请求都会指向这个servlet进行处理。
配置servlet有两种方式,在web3.0之前,一般都是通过配置web.xml来进行配置,就是上面说的这种,在web3.0之后,可以采用注解的方式,比如
@WebServlet(urlPatterns = {"/helloworldServet"})
这个注解写在HelloworldServet.java
的定义上。这有一个限制,就是web.xml
的最上方定义得是3.0级以上比如:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID"
version="3.1">
这里面的版本version得是3.0以上
这个工程部署,启动,在浏览器地址栏输入:http://localhost:8080/helloworldServet?name=java
可以看到如下界面:
servlet的get请求,通过获取name参数,并输出字符串的值。
网友评论