什么是servlet:
Servlet是一个java类,是sun公司提供专门用于web应用开发的一个类
Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
Servlet是JavaEE三大组建之一,是使用Java语言编写服务器端的程序,主要用来处理Web应用程序中的请求-响应。Servlet并没有main之类的执行方法,当用户访问服务器的时候,Tomcat是通过调用Servlet的某些方法来完成整个处理过程的。Servlet是运行在Tomcat服务器提供的Servlet容器中的,所以Servlet是不用程序指定调用的。
创建Servlet:
Servlet有三种创建方式
1、继承HttpServlet类(重点掌握这种)
2、继承GenericServlet类
3、实现Servlet的接口
推荐使用:继承HTTPServlet这种方式是最常用的
配置文件
如何配置Servlet:
1、xml配置
<servlet>
<servlet-name>MyServlet03</servlet-name>
<servlet-class>com.openlab.servlet.day01.MyServlet03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet03</servlet-name>
<url-pattern>/s3</url-pattern>
</servlet-mapping>
<?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">
<servlet>
<servlet-name>MyServlet01</servlet-name>
<servlet-class>com.oplab.servlet.myPro01.MyServlet01</servlet-class>
</servlet>
<servlet>
<servlet-name>MyServlet02</servlet-name>
<servlet-class>com.oplab.servlet.myPro01.MyServlet02</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet01</servlet-name>
<url-pattern>/s1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>MyServlet02</servlet-name>
<url-pattern>/s2</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>MyServlet03</servlet-name>
<servlet-class>com.oplab.servlet.myPro01.MyServlet03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet03</servlet-name>
<url-pattern>/s3</url-pattern>
</servlet-mapping>
<!-- 这个 display-name选项是项目描述配置项-->
<display-name>myPro01</display-name>
<!-- 项目默认的首页面 -->
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
1、
package com.oplab.servlet.myPro01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet01 extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//当get请求过来的时候,默认会进入这个方法
//setContentType("")设置响应头的规则
resp.setContentType("text/html;charset=utf-8");
System.out.println("get请求过来了 ");
//文本输出流,自动换行
PrintWriter out=resp.getWriter();
out.print("<!doctype html>");
out.print("<html>");
out.print("<head>");
out.print("<title>这个是一个servelet生成的页面 </title>");
out.print("</head>");
out.print("<body>");
out.print("<h1>hellow</h1>");
out.print("<table>");
for(int i=1;i<=9;i++) {
out.print("<tr>");
out.print("<td>"+i+"</td>");
out.print("</tr>");
}
out.print("</table>");
out.print("</body>");
out.print("</html>");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//当页面刚访问时候,默认会进入这个方法这个方法
System.out.println("post请求过来了");
this.doGet(req, resp);
}
}
2、
package com.oplab.servlet.myPro01;
import java.io.IOException;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyServlet02 implements Servlet {
@Override
public void init(ServletConfig arg0) throws ServletException {
//init方法只会执行一次
System.out.println("sevrlet初始化方法");
}
@Override
public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
System.out.println("服务请求");
}
@Override
public void destroy() {
//只会执行一次,服务器重启的时候或者关闭的时候
System.out.println("sevrlet被销毁的方法");
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
}
3、
package com.oplab.servlet.myPro01;
import java.io.IOException;
import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyServlet03 extends GenericServlet {
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
System.out.println("servlet");
}
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
}
@Override
public void init() throws ServletException {
// TODO Auto-generated method stub
super.init();
}
}