Servlet概述
Jsp的前身就是Servlet。
Servlet是在服务器上运行的小程序。一个Servlet就是一个Java类,并且可以通过“请求-响应”编程模式来访问的这个驻留在服务器内存里的Servlet程序。
Tomcat容器等级
四个等级。 Containner,Engine,HOST,Servlet,Context(上下文)
Servlet容器管理Context容器,一个Context对应一个Web工程
编写一个Servlet
- 创建一个自己的Servlet类,继承HttpServlet
- 重写doGet()或者doPost()方法。具体重写哪个取决去提交请求的方式。
- 在web.xml中注册Servlet
主要是以下两个标签
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
- 通过web页面就可以进行Servlet的访问
举例:
//HelloServlet.java
package servlet;
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 HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("处理get请求");//打印到控制台,
resp.setCharacterEncoding("utf-8");//注意编码问题,转换成UTF-8,否则会出现乱码
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<strong>欢迎光临</strong><br>");//输出到web页面
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//doPost也一样,就不重复写了
super.doPost(req, resp);
}
}
<--web.xml--!>
<?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">
<display-name>ServletDemo</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>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>
<--index.html--!>
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>my first Servlet</h1>
<hr>
<a href="servlet/HelloServlet">get()请求‚HelloServlet</a>
</body>
</html>
注意事项:
- 记得转换编码为UTF-8
- xml文件中的 servlet-class 和 url-pattern必须与index中的链接地址一样,指向servlet类的全地址,src为项目根目录.