servlet(简单应用,500和404错误)
来源:互联网 发布:ubuntu ant是什么 编辑:程序博客网 时间:2024/06/05 14:36
第二部分 servlet技术
Servlet是位于web服务器端内部的服务器端的java应用程序,可以对web浏览器和其它http客户端程序发送数据进行处理。
1. 生命周期
(1) 在web容器启动或者客户端第一次请求服务器时,容器加载servlet类并将其放到实例池中;
(2) 实例化后调用init()进行初始化操作;
(3) 容器通过service()方法处理不同的http请求,并做出响应;
(4) 关闭web容器时,容器调用destroy()方法进行资源释放,在这之后servlet对象会被当作垃圾被回收器回收。
2. 区别
3. 配置servlet类(web.xml)
4.Servlet运行出错
(1)首次运行错误为:
HTTP Status 500 - Error instantiating servlet class test.Test
具体错误为:
type Exception report
message Error instantiating servlet class test.Test
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class test.Test
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:243
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:241java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)java.lang.Thread.run(Thread.java:744)
root cause
java.lang.InstantiationExceptionsun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
java.lang.reflect.Constructor.newInstance(Constructor.java:526)
java.lang.Class.newInstance(Class.java:374)org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2430
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2419
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.
解决方法:
在书写servlet类时要系列化,即private static final longserialVersionUID = 1L;
解释:serialVersionUID 用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义。用来作为Java对象序列化中的版本标示之用;
如果一个序列化类没有声明这样一个static final的产量,JVM会根据各种参数为这个类计算一个;
对于同样一个类,不同版本的JDK可能会得出不同的serivalVersionUID;
(2)再次运行出错
解决方法:
去掉web.xml文件中的
<welcome-file-list>
<welcome-file>index.html </welcome-file>
<welcome-file>index.htm </welcome-file>
<welcome-file>index.jsp </welcome-file>
</welcome-file-list>
此时可以正常运行!
- servlet(简单应用,500和404错误)
- servlet简单应用和ServletContext对象
- ajax+servlet简单应用
- 一个简单的jsp和servlet应用(入门之选)
- servlet 的接口的基本应用和filter简单实现
- Java WEB之Servlet学习之路(一)一个最简单的Servlet应用
- servlet报404错误
- Servlet: HelloServlet 404错误
- 解决Servlet 500错误
- 配置servlet用注解和web.xml都没作用,报404错误以及500错误的解决
- Servlet详细介绍和应用
- Servlet和Cookie综合应用
- Servlet和jsp小应用
- Jdbc入门介绍第二章——Jdbc结合JSP和Servlet的简单综合应用
- servlet 的接口简单应用和filter过滤 用户未登录
- servlet中的 response request简单应用
- java _web之Servlet简单应用
- 简单的Servlet应用小例子
- UEFI启动视频详解:启动分析+N项操作实例
- Python爬虫实战一之爬取糗事百科段子
- Ceph rgw CephContext的属性_service_thread
- Avro技术应用_9. 基于记录 - MR 输入/出/中间数据使用 Avro 类型 -- 待完善
- 用K-均值聚类来探索顾客细分
- servlet(简单应用,500和404错误)
- ORACLE基本数据类型总结
- springMvc 学习及使用约定
- C++:int转string
- Avro技术应用_10. 基于键值 - 在 MR 中把文本文件(csv)转换成键值对格式的 Avro 文件 -- 待完善
- 12.5周报
- Python/Django 生成二维码
- Glassfish部署程序访问路径去掉项目名称
- Link-state routing algorithm simulation