servlet中doget和dopost的区别_servlet

myeclipse安装以及tomcat服务器配置

这里使用的是myeclipse2014以及tomcat7,原因是下载的myeclipse中如果需要使用myeclipse运行tomcat服务器的时候,myeclipse支持的tomcat服务器版本只到tomcat8,所以可以下载安装相匹配的,不唯一。

注意tomcat的环境配置,检测。

servlet创建流程

1.创建包com.zc.servlet

2.在包中创建一个实现了httpservlet的Java类

3.复写service方法,在方法中声明请求处理规则

4.在web.xml文件中配置servlet

5.将web项目中webroot下的所有内容复制到服务器的webapps目录中的新建的文件夹中

6.启动服务器

注意:使用这个方式来创建servlet的时候,每次更改xml文件时需要重新将修改过的xml文件重新复制粘贴到webapps文件夹中,所以使用起来较为繁琐。通过myeclipse的关联功能可以较为方便的实现。

通过myeclipse软件实现客户端与服务器之间的关系大致如图:

c76372c60dfa20865145ccddf481df03.png

localhost:8080,根据ip和端口号可以找到对应服务器同时服务器会去webapps下查找处理此次请求的代码

Project/s,:uri数据,服务器根据uri找到对应的servlet执行,去项目中的web.xml文件中去匹配

注意:服务器在接收到浏览器的请求后,会开辟一个线程来处理 此次请求,在线程

中调用对应的servlet进行处理

服务器调用servlet处理请求,但是一个servlet服务器只会创建一个实例化对象,该对象是线程

共享的。

Servlet的url-pattern的配置方式

1.精确配置:<url-pattern>/别名</url-pattern>

2.模糊配置:<url-pattern>*.后缀名</url-pattern>

3.拦截所有请求:<url-pattern>/*</url-pattern>

4.拦截处理所有Servlet的别名以one开头的路径的请求:<url-pattern>/one/*</url-pattern>

注意:多个servlet配置同一个url-pattern会java.lang.reflect.InvocationTargetException,反射异常

Servlet只会创建一个

默认采用单实例多线程的方式处理多个请求,如果对每一个客户请求都生成一个servlet对象,web服务器的访问量比较大,内存占用会很高,所以当多个请求发送到同一个servlet,服务器会为每个请求创建一个新线程来处理

注意:服务器在接收到浏览器的请求后,会开辟一个线程来处理 此次请求,在线程中调用对应的servlet进行处理,服务器调用servlet处理请求,但是一个servlet服务器只会创建一个实例化对象,该对象是线程共享的。

servlet生命周期:

从第一次被调用到服务器关闭

init方法,service方法,destory方法

init方法 :servlet被初始化创建的时候调用

service方法:处理请求的时候

destory方法 :servlet被销毁的时候。

doGet、doPost和service方法的区别

doGet: 处理get方式的请求。

doPost: 处理post方式的请求

Service: 无论是什么类型的请求方式,服务器都会优先执行service方法。

注意:servlet中没有声明service方法,会根据请求方式调用对应的方法进行请求处理,如果在servlet中没有声明对应的请求处理方法,则会报405错误。

doGet和doPost和service方法调用的本质

tomcat服务器其实只认识service方法,如果我们自己声明的servlet中没有覆写service方法,则会执行HttpServlet中的service方法,而HttpServlet中的service方法会根据请求方法调用对应的doXX()方法执行请求处理。

servlet常见异常

(1) 404的原因

资源未找到:1.在请求地址中的servlet的别名书写错误 2.虚拟项目名称拼写错误

(2) 500错误的原因

内部服务器错误:1.web.xml中servlet的全限定路径拼写错误 2.servlet方法体的代码执行错误

(3) 405的原因

请求方式不支持:请求方式和servlet中的方法不匹配所造成的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值