Servlet简介
- Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
- 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类。
如果想开发Servlet程序,只需要完成两个步骤:- 编写一个类,实现servlet接口
- 把开发好的Java类部署导web服务器中
HelloServlet
1.构建一个Maven项目,父项目中的jar包子项目可以直接用;
父项目:
<modules>
<module>test01</module>
</modules>
子项目:
<parent>
<artifactId>ServletStudy</artifactId>
<groupId>org.example</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
2.编写一个普通类
3.实现servlet接口:Servlet有两个默认实现类:HttpServlet和GenericServlet;
我们直接继承HttpServlet,重写其中的方法
public class servlet extends HttpServlet {
//由于get和post只是请求方式不一样,业务逻辑一样,可以相互调用
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
4.编写Servlet的映射
为什么要映射:我们写的是Java程序,但是要通过浏览器访问,而浏览器需要连接web服务器,所以我们需要在web服务器中注册我们写的Servlet,还需要给他一个浏览器可以访问的路径
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- 注册servlet -->
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.study.servlet</servlet-class>
</servlet>
<!-- servlet的请求路径 -->
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
- 配置Tomcat:配置项目发布的路径
- 启动测试
原理
Servlet是由Web服务器调用,web服务器在经过浏览器调用之后,
Mapping问题
1.一个servlet可以指定一个/多个映射路径;
2.一个servlet可以指定通用映射路径;
3.指定一些后缀或者前缀,可以自定义后缀实现请求,但是*前面不能加项目映射路径;
4.默认请求路径
5.指定了固有路径的优先级最高,找不到就会走默认路径
ServletContext
this.getInitParameter();获得初始化参数
this.getServletConfig();获得配置
this.getServletContext();获取上下文信息
web容器在启动的时候,它会为每个web程序创建一个对应的servletcontext对象,它代表了当前的web应用
作用:
- 共享数据:ServletContext全局唯一
- 获取初始化参数
<!-- 配置一些web初始化参数-->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhos