1.servlet比较关键的是对web.xml进行配置了,它直接关系到我们同过客服端能不能正确访问到我们的项目。在web.xml配置中,除了要关注的<servlet-name>与 <servlet-class>的配置,还要了解到<url-pattern>的几种配置方法,主要是这几种配置方法我们要掌握:

  • 第一种:精确配置<url-pattern>/别名</url-pattern>在里面写上别名。/是必须的,别名不可以是中文,可以配置多个别名
  • 第二种:模糊配置<url-pattern>*.后缀名</url-pattern>只要是以.后缀名结尾的都可以运行。作用,在进行模块化开发的划分请求等级时候使用。*是任意个数的任意字符
  • 第三种:拦截配置<url-pattern>/*</url-pattern>会拦截所有类型的请求,包括静态的(css,js等)和jsp请求
  • 第四种:<url-pattern>/one/*</url-pattern>会拦截所有以one开头的路径请求
  • 注意,一个servlet可以对用多个url-pattern。不同的servlet不能配置相同的url-pattern;服务器启动的时候就会将你的web.xml文件解析加载进内存

2.当然我们也要对servlet的创建有充分的理解。首先是客户端与服务器请求中哪里需要用到servlet,servlet要起到什么作用?

我们要了解图中localhost:8080/project/s每一部分的作用:

  • locahost:8080,请求服务器的地址,通过该地址连接至服务器
  • Project存放在tomcat服务器中的webapps目录下的虚拟项目名,通过该名字找到指定的文件夹
  • /s通过别名找到对应的servlet,找到指定的servlet才能调用相应的service方法

首先客户端会将请求同过url地址根据http协议打包好的请求发送给服务器,服务器接收到请求后,会通过http协议解析请求信息,把请求的信息封装为request,同时也封装一个response,会去根据url找到相应的webapps目录下的相应的项目,并匹配到相应的servlet,并将response,与request作为实参传递给执行servelt,调用下面的service方法,处理好找到的数据后,会将处理好的数据传给response,通过http协议封装相应给客户端。

同时我们也要知道服务器在接受到请求后,会开辟一个线程来处理请求,在线程种调用servlet进行处理。来一个请求会开一个相应的线程。服务器会调用servlet的处理请求,但是一个servlet服务器只会创建一个实例化对象,并且是线程共享的。开了一百万个线程就相当于调用了一百万次的service方法,只不过是传递的参数不同,如果每一个线程都要开一个servlet将会造成服务器压力过大而影响服务器的性能。

3.那么servlet的生命周期是什么呢?

首先servlet的生命周期为第一次调用到服务器关闭,并且可以在web.xml中通过<load-on-startup>1</load-on-startup>配置servlet的初始化次序。其中1为服务器启动servlet的初始化次序,这时servlet的生命周期就为一个servlet会在服务器启动的时候进行初始化操作,一直生存到服务器关闭。

4.那么在实现sevlet类处理请求信息中,里面大概包含哪几种信息呢?

对于servlet的处理调用主要是这三种:

  1. Init服务器启动的时候调用
  2. Service服务器处理请求的时候调用
  3. Destory servlet被销毁的时候调用

而对于请求方式的处理也主要有三种:

  1. Doget处理get方式的请求,如果servlet没有声明相对应的请求处理的方法,则会报405错误
  2. Dopost处理post方式的请求,
  3. Servlet没有声明service的方法,会根据请求处理找到相应的处理方法,无论什么类型的处理方式,服务器优先处理service的处理方式。
  4. 其中我们要特别注意到:tomcat只认识service方法,如果我们没有覆写service方法。则会执行httpServlet中的service方法,而该方法会调用根据请求的方式调用相应的处理请求的方法。

5. 在编写web项目的时候启动服务器我们经常会遇到客户端的报错,这时呢主要会有这几种错误,当遇到这样的问题时,我们也可以采取相应的方式去处理:

  1. 404源码未找到

    1. 原因1:在请求地址中的servlet的别名书写错误
    2. 原因2:虚拟项目名拼写错误
  2. 505错误:内部服务器错误
    1. 错误一:java.lang.ClassNotFoundException:com.bj.servlet.ServletMethod,解决在web.xml检查servlet的全限定路径是否写错。
    2. 错误二:因为service方法体中的代码执行错误导致。
    3. 解决:根据错误提示对service方法体中的错误进行改正。
  3. 405错误:请求方式不支持:
    1. 原因:请求方式与servlet中方法不匹配造成的。
    2. 解决:在重写service中不要调用父类的service方法,或者没有重写service方法时弄清楚自己处理的请求方式。

servlet为什么要别名呢_servlet --2相关推荐

  1. java servlet jsp javabean关系图_Servlet+JSP+JavaBean开发模式(MVC)介绍

    好伤心...写登陆注册之前看见一篇很好的博文,没有收藏,然后找不到了. 前几天在知乎上看见一个问题,什么时候感觉最无力. 前两天一直想回答:尝试过google到的所有solve case,结果bug依 ...

  2. servlet文件上传下载_Servlet上传文件和下载文件示例

    servlet文件上传下载 Java Web应用程序中的文件上载和下载以及常见任务. 由于最近我写了很多有关Java servlet的文章 ,因此我想提供一个使用servlet上传和下载文件的示例示例 ...

  3. servlet与MySQL商品管理系统_servlet和mysql实现宿舍管理系统

    [实例简介] servlet mysql实现的宿舍管理系统,以及各个功能的视频录像 [实例截图] [核心代码] Sushem └── Sushem ├── kk 录像 │   └── kk 2017- ...

  4. java的servlet是干嘛的_Servlet能够做什么?

    Servlet是用Java代码编写的服务器方软件程序,用于处理客户机和服务器之间的消息传递.Java Servlet API为请求和响应消息定义了一个标准接口,这样Servlet就可以跨平台和跨不同的 ...

  5. java servlet是单例吗_Servlet是单例的吗?

    如题,是吗?首先我们得搞清楚啥是单例.一聊起单例,条件反射的第一个想到的自然是单例模式.单例模式的定义:一个类有且仅有一个实例,并且自行实例化向整个系统提供.如果按照Java中单例的定义,那么当Ser ...

  6. servlet 返回可访问文件_Servlet第二篇「Servlet细节、ServletConfig、ServletContext」

    Servlet的调用图 前面我们已经学过了Servlet的生命周期了,我们根据Servlet的生命周期画出Servlet的调用图加深理解 Servlet的细节 一个已经注册的Servlet可以被多次映 ...

  7. Servlet简介与Servlet和HttpServlet运行的流程

    2019独角兽企业重金招聘Python工程师标准>>> 1.Servlet [1] Servlet简介 > Server + let > 意为:运行在服务器端的小程序. ...

  8. 为什么Servlet程序的init(ServletConfig config)中需要调用父类的init方法

    说明:本文代码测试于:idea2018; tomcat 9.0 当我们通过IDEA自动生成init(ServletConfig config)方法时,默认创建一句调用父类init()方法的语句 @Ov ...

  9. Java Servlet 技术简介

    开始之前 关于本教程 在您最喜欢的 Web 浏览器中,您所阅读的页面是如何出现的呢?当登录到您最喜欢的 Web 站点时,该 Web 站点如何知道登录的用户是您?而 Web 零售商又如何接受您的在线订购 ...

最新文章

  1. 第六周项目三-IP地址类
  2. requests 两种传参方式
  3. linux执行bz文件,Linux下解压bzImage为vmlinux
  4. Android中GridView使用总结
  5. 新增字段赋值_微服务】155:商品新增业务(完)
  6. Apache日志切割shell脚本
  7. JavaScript的eval()函数(1)
  8. mysql 查看3306端口_如何查看端口(3306)被那个程序占用?
  9. java中序列化一个对象保存在文件中的简单过程
  10. Java Swing Mysql学生签到考勤系统
  11. 使用计算机时正确的开关机顺序,电脑开关机的正确操作
  12. 服务器上的文件夹访问被拒绝,修改windows文件权限,解决“拒绝访问”或无法删除的问题-文件访问被拒绝...
  13. 颈部肌肉的锻炼方法?
  14. 本地计算机的ics无法启动不了,ics启动失败怎么办 win8_ICS服务无法启动(win8.1)...
  15. cannot uninstall a distutils installed project'
  16. r710服务器系统故障排除,DELL R710服务器安装windows sever2008 故障排除经历(一)硬件排错...
  17. 什么是绿色工厂,怎么进行绿色工厂认证
  18. Android 常用开源库总结-2020年
  19. UNIX TOOLBOX - 中文版
  20. 软件销售合同争议仲裁案裁决书

热门文章

  1. vc6.0添加注释快捷键
  2. 接口自动化实战设计思路,想法及疑问(一)
  3. 模拟导入系统通讯录5000+手机号 校验大量数据处理
  4. C# 的一些便捷用法
  5. Fotolog对memcached的应用
  6. CentOS7上GitLab的使用
  7. 掌握MySQL数据库这些优化技巧,事半功倍!
  8. 一、SQL语法——4-数据库约束
  9. jQuery 中json字符串与对象互转
  10. 《5》CentOS7.0+OpenStack+kvm云平台的部署—组态Horizon