servlet-api
本次内容总结
1、再次学习Servlet的初始化方法
2、学习Servlet中的ServletContext和<context-param>
3、什么是业务层
4、IOC
5、过滤器
7、TransActionManager、ThreadLocal、OpenSessionInViewFilter
1、再次学习Servlet的初始化方法
1)Servlet生命周期:实例化、初始化、服务、销毁。
2)Servletz中的初始化方法有两个:init(),init(config)--->使用时会调用无参的
其中带参数的方法如下
public void init(ServletConfig config) throws ServletException {
this.config = config;
this.init();
}
无参的方法如下
public void init() throws ServletException {
}
所以我们要是想在初始化的时候做一些自定义操作,那么就可以重写无参的init方法,比如通过config.getInitParameter()获取初始化参数、通过getConfig()获取ServletConfig对象等,即:
我们可以通过如下步骤获取初始化设置的数据
获取config对象: ServletConfig servletConfig = getServletConfig();
获取初始化参数值: String helloValue = servletConfig.getInitParameter("hello");
那初始化怎么去配
3)在web.xml文件中配置Servlet
<servlet>
<servlet-name>Demo01Servlet</servlet-name>
<servlet-class>com.wenrui.servlet.Demo01Servlet</servlet-class>
<init-param>
<param-name>hello</param-name>
<param-value>world</param-value>
//根据这个hello来获取world值,key-value类型
</init-param>
<init-param>
<param-name>username</param-name>
<param-value>jim</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Demo01Servlet</servlet-name>
<url-pattern>/demo01</url-pattern>
</servlet-mapping>
4)也可以通过注解的方式配置
一开始是这样的写法@WebServlet("/demo01"},WebServlet是一个属性名,点进去发现urlPatter后面+s,说明可以有多个,这也就对应配置文件当中servlet-mapping可以有多个,
咱们现在用这个@WebServlet(urlPatterns = {"/demo01"},initParams = {
// @WebInitParam(name = "hello",value = "world"),
// @WebInitParam(name = "username",value = "jim")
//})优化配置文件感觉
2.通过ServletContext(Servlet上下文,和config一样都是接口)获取配置的上下文参数(<context-param>)
1)获取ServletContext,有很多中方法
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
在初始化方法中:
ServletContext servletContext = getServletContext();//其实servletContext就是application
在服务方法中也可以通过request对象获取:
ServletContext servletContext = req.getServletContext();
ServletContext servletContext1 = req.getSession().getServletContext();
2)获取初始化值:
String contextConfigLocationValue = servletContext.getInitParameter("contextConfigLocation");