1.ServletConfig对象
容器初始化一个servlet时,会为这个servlet建一个唯一的ServletConfig。容器从web.xml读出Servlet初始化参数,并把这些参数交给ServletConfig,然后把ServletConfig传递给servlet的init(ServletConfig config)方法。也就是说容器只有在创建servlet实例时才会读web.xml文件中的init-param,并且在servlet一生中只读一次。
在实际应用过程中,为了便于修改我们并不希望直接把某一变量硬编码到servlet类中,这个时候就会用到ServletConfig接口。我们可以把某些变量放在web.xml中,这样如果我们要修改某一值,可以直接改动DD文件即可。
在web.xml中:
<servlet>
<servlet-name>ServletConfigTest</servlet-name>
<servlet-class>com.guo.ServletConfigTest</servlet-class>
<init-param>
<param-name>color</param-name>
<param-value>red</param-value>
</init-param>
</servlet>
在servlet代码中:
out.println(getServletConfig().getInitParameter("color"));
getInitParameter(String name):根据给定的初始化参数,返回匹配的当前servlet初始化参数值。
getInitParameterNames():返回一个Enumeration对象,里面包含了所有的初始化参数。
getServletContext():返回一个servletContext()对象.
getServletName():返回servlet的名字,即web.xml中的的子元素的值。如果没有配置这个子元素,则返回servlet类的名字。
2.ServletContext对象
- WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象
- ServletContext对象是应用程序的环境对象接近于代表这个应用程序。
ServletContext context = this.getServletContext();
context.getRealPath("/");//当前应用的根目录 绝对路径
context.getContextPath();//相对路径
context.getInitParameter();//得到全局的属性
3.
- request(请求)和response(响应)都是由Tomcat创建的。
- Get和Post的区别是前者使用地址栏的形式传值,后者使用requestHeader的形式在流中传输
- 实践应用继承HttpServlet重写doGet或doPost等处理请求
- HttpServlet的service方法调用自身的doGet/doPost方法,自定义子类则重写这两个方法。
4.jsp页面
1. 处理过程:容器编译成servlet,然后按照servlet规范调用处理。
2. 先找到jsp,然后转换为servlet源码编译成字节码文件,运行类文件通过流接收和响应信息。
3. 、jsp页面七元素:指令,动作,声明,脚本程序,表达式,html与注释
指令:
- <%@ page >
- <%@ taglib>
- <%@ include> 静态包含,将包含页面先引入后编译
动作:
<jsp:forword page="realurl.jsp" />
表达式:<%= %>
声明:<%! int sum=30; %> 全局声明
注释:<%– –%> 服务端的注释