javaweb之Servlet
来源:互联网 发布:java制表符怎么用 编辑:程序博客网 时间:2024/06/11 14:49
1.Servlet认识
servlet在web.xml中配置,由web容器调用
(在tomcat中servlet属于container子级容器,属于context)
servlet在第一次使用时被初始化,调用init()方法
2.HttpServlet
service()转换请求为HttpServletRequest和HttpServletResponse,并路由到具体方法(由父类service()完成)
web应用程序停止或重新启动前,Servlet引擎卸载Servlet,并在卸载之前调用Servlet的destroy()
(web配置Servlet拦截映射,Servlet的service()方法默认路由,具体方法返回response)
3.Servlet映射
映射路径 / 表明为defaultServlet
4.ServletConfig
public void init(ServletConfig config) throws ServletException {
this.config = config;
}
当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。
5.ServletContext
context.setAttribute("data", data);
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象。
由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对象之间可以通过ServletContext对象来实现通讯。ServletContext对象通常也被称之为context域对象。
配置Context参数
<!-- 配置WEB应用的初始化参数 -->
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/test</param-value> </context-param>
/* 获取Context参数
GenericServlet的getInitParameter在内部实现了getServletConfig
*/
ServletContext context = this.getServletContext();
String contextInitParam = context.getInitParameter("url");
实现请求转发
ServletContext context = this.getServletContext();
RequestDispatcher rd = context.getRequestDispatcher("/servlet/ServletContextDemo5");//获取请求转发对象(RequestDispatcher)
rd.forward(request, response);//调用forward方法实现请求转发
读取资源文件(InputStream)
InputStream in = this.getServletContext().getResourceAsStream("/WEB- INF/classes/gacl/servlet/study/db4.properties");
Properties prop = new Properties();
prop.load(in);
String driver = prop.getProperty("driver");
通过类装载器读资源文件J(InputStream)
//获取到装载当前类的类装载器
ClassLoader loader = ServletContextDemo7.class.getClassLoader();
//用类装载器读取src目录下的db1.properties配置文件
InputStream in = loader.getResourceAsStream("db1.properties");
Properties prop = new Properties();
prop.load(in);
String driver = prop.getProperty("driver");
6.在客户端缓存Servlet数据
response.setDateHeader("expires",System.currentTimeMillis() + 24 * 3600 * 1000);
response.getOutputStream().write(data.getBytes());
阅读全文
0 0
- JavaWeb 之 Servlet入门
- javaWeb之手写Servlet
- JavaWeb之Servlet详解
- (1)javaweb 之 servlet
- javaweb开发之servlet
- javaweb之Servlet
- JavaWeb之Servlet篇
- JavaWeb之Servlet
- javaWeb之Servlet开发
- JavaWeb之Servlet编程
- javaweb学习之servlet
- JavaWeb之Servlet day01
- JavaWeb之Servlet day02
- Javaweb学习之servlet
- JavaWeb之Servlet笔记
- JavaWeb之Servlet
- 闲聊javaweb之servlet
- javaWeb之初识Servlet
- python中的对象 一级对象?
- HDU 5628 Clarke and math (Dirichlet卷积)
- OpenGL ES for Android 笔记
- 关于“WireX Botnet”事件Android样本分析报告
- 2017 智慧树英语口语直通车答案单元测试答案
- javaweb之Servlet
- linux的文件及目录的默认权限umask值和chown改变用户属主及组和删除用户及-bash-4.1错误
- MongoDB Native Node.js Driver
- Lucky7 HDU
- 机器学习--SVM
- linux中进行时间同步
- scala如何从文件读取数据并转换成矩阵
- 30.github 搭建 blog
- neo4j使用教程(2)初步使用py2neo