后端开发从零起步【7】Servlet
2022-05-22 本文已影响0人
万里寻龙
【江湖秘籍】
Servlet是一个java的类,Server Applet,服务连接器,用于响应客户端请求
创建一个java类实现JAVA的Servlet接口即可
public class DemoServlet implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("接收到浏览器的请求!");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
然后在web.xml中进行配置,在<web-app>标签中添加以下代码
<servlet>
<!-- Servlet别名 -->
<servlet-name>DemoServlet </servlet-name>
<!-- 别名所对应的Servlet类 -->
<servlet-class>com.DemoServlet </servlet-class>
</servlet>
<!-- Servlet映射配置 -->
<servlet-mapping>
<servlet-name>DemoServlet </servlet-name>
<!-- 浏览器的访问地址 -->
<url-pattern>/firstblood</url-pattern>
</servlet-mapping>
完事儿以后浏览器访问该地址,或者直接run程序,IDEA自动打开浏览器加载该地址,tomcat就会调用我们已经实现的service()方法,在输出中可以看到我们sout的"接收到浏览器的请求!"
一个请求就成功被处理了。
以上是实现Servlet接口的方式,java还提供了一个叫做GenericServlet的类帮我们实现了这些接口,继承这个类的话,只需重写service一个方法就可以,不用像上面那样把接口的方法都实现一遍。
public class DemoServlet extends GenericServlet {
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("GenericServlet类的service接口响应");
}
}
和上面一样,做一下映射配置即可。
效果是一样的。但我们还可以使用GenericServlet 的一个子类,叫做HttpServlet
public class DemoServlet extends HttpServlet {
public DemoServlet () {
System.out.println("构造方法");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("响应Post请求");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("响应Get请求");
}
@Override
public void destroy() {
System.out.println("销毁");
}
@Override
public void init() throws ServletException {
System.out.println("初始化");
}
}
还是做一下映射配置。
可以看到这里能够分别响应post和get请求,所以一般用这个会更方便。
实际上,在IDEA中,可以直接右键New一个Servelet, New的下级菜单下面直接有create new servelet,输入名称之后,IDEA就帮我们自动继承了HttpServelet。
这里IDEA可以自动生成一个注解,@WebServlet(name = "DemoServlet", url = @"/firstblood")
用这个注解可以帮我们自动完成映射配置,不用单独再去找xml配置了,省不少事儿