1、Servlet
- sun公司开发动态web的一门技术
- 在API中提供了一个接口叫做:Servlet。--编写一个类,实现Servlet接口;把开发好的Java类部署到web服务器中
2、HelloServelt
1、新建一个maven工程(Servlet),选中new-Project-maven选中webapps模板,创建项目(如果配置好了全局变量的话是不需要在选择仓库的)。
2、在创建一个子工程(Servlet01),点击Servlet,新建Module。此时Servlet中会自动生成:
<modules> <module>Srevlet01</module> <module>servlet-02</module> </modules>
3、(第一步也需要改)在web.xml中修改配置,如果下载了tomcat到本地可以到D:\Tomcat\apache-tomcat-9.0.38\webapps\ROOT\WEB-INF\web.xml下复制。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"></web-app>
4、在src下目录下,创建java、Resources目录。在java目录下新建包com.xxx.servlet(包名可以随便取,尽量英文)。新建class类HelloServelt.class。
package liyu.demo01.servlet;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
//由于doget和post只是请求实现的不同方式
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("进入doGet方法");
// ServletOutputStream outputStream = resp.getOutputStream();
PrintWriter writer = resp.getWriter();
writer.print("Hello Servlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
5、去web.xml中注册一个Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<!--mapping中的servlet-name(servlet01)找到servlet中的servlet-name在去找class中具体哪个类-->
<!--注册一个Servlet-->
<servlet>
<servlet-name>servlet01</servlet-name>
<servlet-class>liyu.demo01.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径 可以找到class类-->
<servlet-mapping>
<servlet-name>servlet01</servlet-name>
<url-pattern>/servlet01</url-pattern>
</servlet-mapping>
</web-app>
6、配置tomcat。点击Idea右上角Edits Configurations,配置好tomcat。运行即可。
Servlet原理
个人理解:
浏览器发出request请求,到服务器上通过servlet寻找对应的class类,找到类后在response给浏览器。