javaweb基础 - Servlet
Servlet:处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,通过servlet可以实现动态web开发。
<!-- *号通配符格式:"*.扩展名" or "/{path}/*" --> <servlet> <servlet-name>ServletDemo1</servlet-name> <servlet-class>gacl.servlet.study.ServletDemo1</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo1</servlet-name> <url-pattern>/*</url-pattern>
1. 响应过程
Java Servlet API(Servlet <– HttpServlet):Servlet容器(tomcat)和servlet之间的接口,定义了serlvet的各种方法,以及作为参数的对象类(如:ServletRequest和ServletResponse)
1. Tomcat将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象交给servlet(所有的HTTP头数据读可以通过request对象调用对应的方法查询到)2. servlet生命周期
1. load-on-startup参数 > 决定装载并创建Servlet实例对象的时机,同时调用init()方法初始化该 Servlet(对于多次请求,init()方法只执行一次3. Servlet结构
1. Servlet接口
2. ServletConfig接口
3. GenericServlet类
GenericServlet类: 实现了ServletConfig接口,可以直接获得ServletContext
public void init(ServletConfig config) throws ServletException{ this.config = congid; this.init(); } public void init() throws ServletException{ //override(用户只需重写init()方法,而当servlet初始化时,将会调用init(ServletConfig config)方法. }
4. HttpServlet类
Servlet* <– httpServlet* <– *Facade(req,res的实际类型)
1. request和response在Tomcat提交给Servlet时被转换为Servlet* 类型,通过service(ServletRequest req, ServletResponse res)方法转换为HttpServlet*
2. service(HttpServletRequest req, HttpServletResponse res)方法进行调用(doPost(),doGet()等)
5. ServletContext对象
config = getServletConfig(); //多用于Servlet的init(ServletConfig config)方法中 config.getInitParameter("key")和config.getInitParameterNames(); ServletContext context1 = config.getServletContext(); ServletContext context2 = this.getServletContext(); //继承自GenericServlet类的方法,GenericServlet实现了Servletconfig类 context.getRequestDispatcher("/servlet/Servlet1").forward(request, response); //调用forward方法转发给servlet1.(绝对路径) context.getInitParameter("key")和context.getInitParameterNames();
1. web项目中共享数据
setAttribute(String name, Object obj) 在web项目范围内存放内容,以便让在web项目中所有的servlet读能访问到
getAttribute(String name) 通过指定名称获得内容
removeAttribute(String name) 通过指定名称移除内容
2. web项目初始化参数 — 在web.xml的context-param>标签中配置
getInitPatameter(String name) //通过指定名称获取初始化值
getInitParameterNames() //获得枚举类型
3. 获取web项目资源
String realPath = getServletContext().getRealPath(“/WEB-INF/web.xml”);
String src = getResourcePaths(“/WEB-INF’);
InputStream in = getServletContext().getResourceAsStream(“/WEB-INF/web.xml”);
+ View Code
欢迎疑问、期待评论、感谢指点 -- kiqi,愿同您为友
-- 星河有灿灿,愿与之辉
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步