Servlet(8)Servlet配置细节(包括web应用启动即加载Servlet类)及ServletConfig使用

来源:互联网 发布:淘宝怎么同步付款 编辑:程序博客网 时间:2024/06/09 20:54

①一般,习惯上将doGet和doPost合二为一

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    response.setContentType("text/html");    response.setCharacterEncoding("UTF-8");    response.getWriter().append("Served at: ").append(request.getContextPath());}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    // TODO Auto-generated method stub    doGet(request, response);}

——————————————————————————————————

Servlet细节问题

① 一个已经注册<servlet>的Servlet可以被多次映射<servlet-mapping>
② 在Servlet映射到URL中也可以使用*通配符

<servlet-mapping>    <servlet-name>MyServlet</servlet-name>    <url-pattern>/*</url-pattern></servlet-mapping><servlet-mapping>    <servlet-name>MyServlet</servlet-name>    <url-pattern>/news/*</url-pattern></servlet-mapping>

③ Servlet是一个供其他Java程序(Servlet引擎)调用的类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。
Servlet被第一次访问后,被加载到内存,以后该实例对各个请求服务,即在使用中是单例。
④servlet中<load-on-startup>配置
当我们启动网站的时候,可能我们会要求初始化一些数据,比如创建临时表。或有一些要求定时完成的任务,如定时写日志,定时备份数据,定时发送邮件等。这类需求可通过此配置配合线程完成。

<servlet>   <servlet-name>MyInitServlet</servlet-name>   <servlet-class>com.jiaozl.servlet.MyInitServlet</servlet-class>   <!-- 1代表启动顺序    配置好后,在响应的servlet类的init方法,添加初始化操作    -->   <load-on-startup>1</load-on-startup> </servlet>

⑤在servlet配置文件中,可以使用一个或多个<init-param>标签为servlet配置初始化参数。
当Servlet配置了初始化参数后,web容器在创建Servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象传递给Servlet。进而,我们可以通过ServletConfig对象就可以得到当前Servlet的初始化参数。

<servlet>   <servlet-name>MyServlet</servlet-name>   <servlet-class>com.jiaozl.servlet.MyServlet</servlet-class>   <init-param> <!-- 初始化参数配置 -->    <param-name>encoding</param-name>    <param-value>UTF-8</param-value>   </init-param> </servlet>----------------使用初始化参数--------------------response.setCharacterEncoding(this.getServletConfig().getInitParameter("encoding"));-----取出多个参数Enumeration names = this.getServletConfig().getInitParameterNames();while(names.hasMoreElements()) {    String name = (String) names.nextElement();}
------另一种配置全局初始化参数方法 可被多个Servlet读取----------------<context-param>    <param-name></param-name>    <param-value></param-value></context-param>
0 0
原创粉丝点击