Servlet

1.Servlet简介

Servlet(Server Applet),全称Java Servlet,是用Java编写的服务器端程序,是在服务器上运行并处理客户端的请求做出响应的程序,其主要功能在于交互式地浏览修改数据,生成动态Web内容。


2.Servlet工作模式

客户端发送请求至服务器——>服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器——>服务器将响应返回客户端


3.Servlet的生命周期(出生——工作——死亡)

init( ),service( ),destroy( )是Servlet生命周期的方法

init():当Servlet第一次被创建对象时执行该方法,该方法在整个生命周期中只执行一次
service():对客户端响应的方法,该方法会被执行多次,每次请求该servlet都会执行该方法
                 作用:把Tomcat(Servlet容器)传入的请求进行处理,并让Tomcat知道向客户端发送怎样的回应。
destroy():Servlet被销毁时执行该方法


4.实现Servlet的三种方式

4.1:实现 Servlet 接口

public class MyServlet implements Servlet {//实现servlet接口
	//初始化
    public void init(ServletConfig arg0) throws ServletException {
                System.out.println("servlet初始化!");
        }
	//服务
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("Servlet正在提供服务!");
    }
	//销毁
    public void destroy() {
        System.out.println("Servlet正在被销毁!");
    }
}

4.2:继承 GenericServlet 类(少用)

public class MyServlet extends GenericServlet {//继承GenericServlet
        //服务
    @Override
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
        System.out.println("Servlet正在提供服务!");
    }
}

4.3:继承 HttpServlet 方法(推荐)

​
public class MyServlet extends HttpServlet {//继承HttpServlet
	/**
	 * 1.继承HttpsServlet;
	 * 2.重写doGet和doPost方法
	 */
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//编写处理Get方式的请求
		doPost(req, resp);//调用doPost方法
		System.out.println("Get方法");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		//编写处理post方式的请求
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");

        //获取out内置对象
        PrintWriter out = resp.getWriter();

		System.out.println("Post方法");
	}
}

​

5.部署Servlet

在 web.xml 文件中的 <web-app>...</web-app> 标签内创建

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>jsp_servle</display-name>
  <welcome-file-list>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置servlet -->
  <servlet>
  <!-- 对象名:遵循小驼峰命名法 -->
  <servlet-name>myServlet</servlet-name>
  <!-- 配置的servlet的完整类名/全限定名:包名+类名 -->
  <servlet-class>com.zking.servle.MyServlet</servlet-class>
  
  <!-- 初始化参数 -->
  <init-param>
  	<param-name>name</param-name>
  	<param-value>苏墨</param-value>
  </init-param>
  
  <!-- 设置servlet加载的顺序 -->
  <load-on-startup>1</load-on-startup>
  </servlet>
  
  <!-- 配置servlet眏射 -->
  <servlet-mapping>
  	<servlet-name>myServlet</servlet-name>
  	<!--路径-->
  	<url-pattern>/myServlet.do</url-pattern>
  </servlet-mapping>
</web-app>

上一篇:Unity UGUI实现折叠菜单功能


下一篇:c – GetProcAddress与__declspec(dllimport)