sevlet是用于开发动态网站的一个技术
servlet 是运行在 Web 服务器(tomcat上)中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。servlet可以接收请求,接收请求后会给客户端一个响应.
由于servlet是一个接口 所以我们通过查看文档 找到他的实现子类 httpservlet 定义一个类继承httpservlet .需要重写2个方法一个是doget方法和dopost方法 doget方法用来处理get请求 dopost方法处理post请求
servlet创建后需要在web.xml文件配置 类似于Android中mainActivity—可以创建n个servlet,到底用哪个来解决请求,需要在web.xml中配置一下
因为一个应用可以有多个servlet,如果不配置不知道用哪个servlet来处理请求
代码实现
1-创建一个类,使用这个类继承HttpServle类
@MultipartConfig
public class HelloWorldServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//doGet处理客户端get的请求
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//拿到一个字符输出流
PrintWriter writer = resp.getWriter();
//向客户端输出一个数据
writer.write("aabc");
}
/**
* doPost处理客户端post请求
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
2-servlet创建后需要在web.xml文件配置
servlet-name代表当前的名字(可可随意起名(最好见名知意))
servlet-class:具体指定哪个servlet,(完整的包名+类名)
url-pattern:浏览器访问的具体路径,先写个/,再写(随意些)映射地址
<!-- 配置hellowordServlet -->
<servlet>
<servlet-name>hellworld</servlet-name>
<servlet-class>com.itheima.day08.HelloWorldServlet</servlet-class>
</servlet>
<!--配置浏览器访问的路径(映射的地址) -->
<servlet-mapping>
<servlet-name>hellworld</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
**urlpattern的写法 **
1)完全路径匹配 /life
2)目录匹配 /*
3)扩展名匹配 *.do *.action
优先级:1)完全路径匹配 > 2)目录匹配>3)扩展名匹配
<servlet-mapping>
<servlet-name>lifeservlet</servlet-name>
<url-pattern>/life</url-pattern>
<url-pattern>/*</url-pattern>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
3-运行到服务器上
把工程跑到服务器上,工程就集成到了tomcat里,tomcat启动,默认访问(在web.xml中的配置中的欢迎页面)
servlet执行流程
回车—向服务器发请求—先把后面的映射解析出来—去找web.xml配置文件匹配—找url-pattern--找到后—对应的名字servlet-name—再通过名字找到具体的servlet