1、web.xml中Servlet的注解

 <servlet>
<!-- servlet的内部名称,自定义 -->
<servlet-name>DemoAction</servlet-name>
<!-- servlet的类全名:包名+类名 -->
<servlet-class>com.uplooking.controller.DemoAction</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- servlet的映射配置 -->
<servlet-mapping>
<!-- servlet的内部名称,一定要和上面的内部名称保持一致 -->
<servlet-name>DemoAction</servlet-name>
<!-- servlet的映射路径(访问serclet的名称 -->
<url-pattern>/DemoAction</url-pattern>
</servlet-mapping>

1、首先,从浏览器中发送请求,是从当前工程中的路径与servlet-mapping标签中的url-pattern的标签值进行匹配。

  2、根据这个映射值,找到servlet-mapping标签中的servlet-name的值与servlet标签中的servlet-name进行匹

3、匹配到以后,找到servlet标签中的servlet-class标签中对应servlet类的src文件夹下的全路径。

4、从而调用并执行相应的servlet类。

注意:servlet-mapping标签中的servlet-name的值与servlet标签中的servlet-name必须相同。

<init-param>初始化参数

 <init-param>
<param-name>abc</param-name>
<param-value>123</param-value>
</init-param>

一个Servlet可以配置一个或多个初始化参数。

在应用程序中,可以使用Servlet的getInitParameter(String param)来读取初始化param对应的参数;若要读取所有的初始化参数名称,则可以使用getInitParameterNames()方法获得所有的参数名称,类型为枚举(Enumeration)。

  //获取所有初始化参数
Enumeration<String> strs=this.getInitParameterNames();
while(strs.hasMoreElements()) {
str=strs.nextElement();
System.out.println(str+" "+this.getInitParameter(str));
//-->abc 123
//-->aaa 111
}

   这些初始化参数也可以由ServletConfig对象获取,Servlet提供getServletConfig()方法提供ServletConfig对象。由ServletConfig获取初始化参数和由Servlet获取初始化参数的方法是一样的。

//两种调用getInitParameter的情况,视情况而定
//this是指ServletConfig的对象config
String str=this.getInitParameter("abc"); //第一种 String str=config.getInitParameter("abc");//第二种

初始化参数的一个有趣应用是进行单个文件的访问加密,原理是将用户名和密码写入初始化参数中,这样的好处是简单、方便,缺点是不灵活,安全性也不高,适用于临时性的措施。

<context-param>上下文参数

 <context-param>
<param-name>root</param-name>
<param-value>123</param-value>
</context-param>

获取context-param需要使用ServletContext对象。ServletContext对象可以通过在Servlet中的getServletConfig().getServletContext()方法获得。得到ServletContext对象后,使用getInitParameter(String param)方法获取名为param的参数值,通过getInitParameterNames()获取所有的context-param名称。

ServletContext context=this.getServletContext();
String root=context.getInitParameter("root");
System.out.println("root="+root);

2、注解访问servlet

1.只需在对应的servlet类中添加servlet注解即可,从浏览器发送请求时,是用当前“工程”下的路径,会去对应servlet类的上面寻找是否存在对应url名称的@webServlet注解,存在的话,调用并执行对应的servlet类。

 @WebServlet("/DemoAction")
public class DemoAction extends HttpServlet{
}

总结:

共同点:注解访问servlet和web配置文件访问servlet都能完成对servlet的访问。

注解访问servlet:

优点:代码少,可读性强,易于理解。

缺点:如果大量使用servlet注解,servlet类文件数量过多,不便于查找和修改。

web配置文件访问servlet:

优点:集中管理各servlet类路径的映射路径,便于修改和管理。

缺点:代码多,可读性不强,不易于理解。
 

注意:有时候在服务上运行的web程序数据不能及时更新,记得重启服务器或者清除浏览器缓存。

最新文章

  1. 图片懒加载jquery lazyload
  2. Daily Scrum Meeting ——TenthDay
  3. &lt;table&gt;标签隐藏内边框与外边框
  4. SQL Server 导出数据到 PostgreSQL
  5. jfreechart 整合sturts2牛刀小试
  6. FineUI小技巧(3)表格导出与文件下载
  7. iOSS--生成有logo的二维码
  8. node基础 --概念
  9. 使用Mac的AppleScritp调用控制台的方式
  10. 在一般处理程序中,把Form Post过来的表单集合转换成对象 ,仿 MVC post,反射原理
  11. 日期加减js,天数组增加,日期自动修改
  12. Hadoop集群(第7期)_Eclipse开发环境设置
  13. LeetCode 258
  14. DisableExplicitGC和Direct ByteBuffer
  15. nesC 语言参考手册
  16. td 单元格 内容自动换行
  17. iView页面Modal中内嵌Tabs,重新显示Modal时默认选中Tabs的第一项
  18. hdu4942线段树模拟rotate操作+中序遍历 回头再做
  19. 使用for in 循环数据集
  20. for in 与 Object.keys 与 hasOwnProperty区别

热门文章

  1. setoolkit 制作钓鱼网页
  2. java基础语法-char数据类型
  3. 高校表白APP-冲刺第四天
  4. Linux基础命令---ipcs显示进程通信
  5. tomcat启动命令行中文乱码
  6. 码云和git
  7. Git随笔 -- 初始化远程仓库
  8. 为KindEditor 添加“一键去除空格功能”
  9. element-ui 解决 table 里包含表单验证的问题!
  10. 【MySQL】redo log --- 刷入磁盘过程