1.Servlet简介

  • Servlet就是sun公司开发动态web的一门技术
  • Sun在这些API中提供一个接口叫做:Servlet,如果你想开发一个Servlet程序,只需要完成两个小步骤:
    • 编写一个类,实现Servlet接口
    • 把开发好的Java类部署到web服务器中。

把实现了Servlet接口的Java程序称为,Servlet

2.Servlet的创建

1.在pom.xml中添加依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
<dependencies>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
2.创建java类实现Servlet 接口(直接继承HttpServlet)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class HelloServlet extends HttpServlet {

//由于get或者post只是请求实现的不同的方式,可以相互调用,业务逻辑都一样;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//ServletOutputStream outputStream = resp.getOutputStream();
PrintWriter writer = resp.getWriter(); //响应流
writer.print("Hello,Serlvet");
}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
3.web.xml中添加映射
<!--注册Servlet-->
<servlet>
    <servlet-name>hello</servlet-name>
    <servlet-class>cn.howsyc.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet的请求路径-->
<servlet-mapping>
    <servlet-name>hello</servlet-name>
    <!--‘/’不能少了-->
    <url-pattern>/hello</url-pattern>
</servlet-mapping>
4.配置tmocat

注意:配置项目发布的路径就可以了

3.Servlet原理

DVxQGq.png

4.Mapping问题:

1.一个Servlet可以指定一个或多个映射路径
1
2
3
4
5
6
7
8
9
10
11
12
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello3</url-pattern>
</servlet-mapping>
2.一个Servlet可以指定通用映射路径
1
2
3
4
5
<!--通用-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
3.可以指定默认请求路径及后缀
1
2
3
4
5
<!--默认请求路径-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
1
2
3
4
5
6
7
8
9

<!--可以自定义后缀实现请求映射
注意点,*前面不能加项目映射的路径
hello/xiaotong.howsyc
-->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>*.howsyc</url-pattern>
</servlet-mapping>

4.优先级:1指定->2通用->3默认