概述
弄了好久一直404。。。解决方法就是deployment里的application context改成/
servlet执行原理
生命周期方法
注解配置
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet("/demo3")
public class ServletPratice 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("servlet4.0...");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
}
}
这里的value省去了,因为value指代最重要的,显然这里最重要的是urlpattern,只有一个value的时候可以将"value"删去。
idea与tomcat相关配置
HttpServlet
主要是涉及到表单get和post
可以重写doget和dopost方法
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/demo4")
public class DemoClass extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("doget...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("dopost...");
}
}
总是忘记加上虚拟目录导致404。。
定个标识: genericServlet
urlpattern配置
//@WebServlet({"/de1","/de2","/de3"})
//@WebServlet({"/user/gogo) 二级目录
//@WebServlet({"/*"}) 输入啥都显示,但是优先级最低
//@WebServlet({"*.do"}) 不管是哪个都要加.do,不能加/