今天来介绍一下Web开发的基石,Servlet。 搞Web开发的都知道,从一个浏览器请求到输出到页面就是通过Servlet处理的,我们的Web开发框架Spring也是基于这个玩意升级的。不废话了,开始介绍Servlet吧
Servlet API 概述
![](https://img.haomeiwen.com/i2195233/1e3666407c7aa93b.png)
- javax.servlet 其中包含了Servlet和Servlet容器之间契约的类和接口
- javax.servlet.http 其中包含了HttpServlet和Servlet容器之间契约的类和接口
- javax.servlet.annotation 其中包含标注Servlet、Filter、Listener的标注。
-
javax.servlet.descriptor 其中包含了提供化登录Web应用程序的配置信息的类型
image.png
符合 Web应用的目录结构
![](https://img.haomeiwen.com/i2195233/e6e296ca6eb31f5f.png)
编写一个 Servlet
package com.minglangx.servlert;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class MyServlert implements Servlet{
private transient ServletConfig servletConfig;
@Override
public void init(ServletConfig servletConfig) throws ServletException {
this.servletConfig = servletConfig;
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return servletConfig;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return "MyServlet";
}
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
String servletName = servletConfig.getServletName();
response.setContentType("text/html");
PrintWriter pw = response.getWriter();
pw.print("<html><head>"
+ " <body>"
+ " Hello from " +servletName + " </body</head></html>");
}
}
配置 web.xml 文件映射
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>MyServlert</servlet-name>
<servlet-class>com.minglangx.servlert.MyServlert</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>MyServlert</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
总结
- Web应用的每一个请求就是一个Servlet,Servlet的 service方法执行请求业务处理
- ServletRequest ServletResponse 分别代表请求 和响应 对象数据
- 注意打 war 包命令 jar -cvf xxx.war ./* 必须是在 WEB-INF 目录下打包,将war包丢在 Tomcat的 webapps目录即可,启动Tomcat后会帮你自动解压
网友评论