Servlet
1.介绍
servlet技术是在java ee出现之前就存在了,在开发动态网页中得到广泛的应用,直到现在的java ee项目中也是非常重要的,同时jsp也是在servlet的基础上发展起来的。
servlet(java服务器小程序)是用java编写的服务器程序,它的特点:
1.由服务器调用和执行
2.用java语言编写的
3.按照servlet规范开发
4.功能强大,可以完成几乎所有的网站功能
2.开发工具
普通的文本编辑器notepad,uedit32
集成开发工具jcreator,jbuilder,eclipse,editplus,netbean
3.servlet体系结构
4.开发servlet的三种方法
实现servlet接口
继承GenericServlet
继承HttpServlet(最常用的方法)
5.servlet的生命周期
servlet部署在容器里(我们使用的是Tomcat,也可是别的,比如jboss,weblogic。。。),它的生命周期由容器来管理。
servlet的生命周期分为以下几个阶段:
1.装载servlet,由相应的容器来完成
2.创建一个servlet实例
3.调用servlet的init()方法,该方法只会在第一次访问servlet时被调用一次
4.服务:调用servlet的service()方法,一般业务逻辑在这里处理,该方法在访问该servlet时,会被调用
5.销毁:调用servlet的destroy()方法,销毁该servlet实例,该方法在以下情况被调用:
a)tomcat重新启动
b)reload该webapps
c)重新启动电脑
6.开发流程
1.建立一个web站点
2.站点内引入Tomcat文件夹下lib文件夹里的servlet-api.jar
3.编写servlet
4.部署servlet
servlet编译后放在WEB-INF/classes下,注意package
在web.xml文件中添加如下代码:
<servlet>
<!—给servlet取名,可以随意取名-->
<servlet-name>hello</servlet-name>
<!—指明servlet的路径,就是servlet的包+类名-->
<servlet-class>com.nenu.Hello</servlet-class>
</servlet>
<servlet-mapping>
<!—给servlet取名,可以随意取名-->
<servlet-name>hello</servlet-name>
<!—浏览器中输入的url,可以随意取名-->
<url-pattern>/hello<url-pattern>
</servlet-mapping>
5.启动Tomcat,访问你的servlet,在浏览器的地址栏中输入:http://127.0.0.1:8080/myWebSite/hello回车就可以看到servlet的输出
三个例子
例1:实现servlet接口
Hello.java
//实现servlet接口 package com.nenu; import javax.servlet.*; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.IOException; import java.io.*; public class Hello implements Servlet{ //init只执行一次 public void init(ServletConfig parm1) throws ServletException { System.out.println("init"); } public ServletConfig getServletConfig() { return null; } //service负责业务逻辑 public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { System.out.println("service"); //处理中文 res.setContentType("text/html; charset=gbk"); PrintWriter pw=res.getWriter(); pw.println("Hello,实现servlet接口."); } /** * Method getServletInfo * * * @return * */ public String getServletInfo() { // TODO: Add your code here return null; } /** * Method destroy * * */ public void destroy() { // TODO: Add your code here System.out.print("destroy"); } }
web.xml中
<servlet> <servlet-name>Hello</servlet-name> <servlet-class>com.nenu.Hello</servlet-class> </servlet> <servlet-mapping> <servlet-name>Hello</servlet-name> <url-pattern>/Hello</url-pattern> </servlet-mapping>
访问:http://localhost:8080/MyServlet/Hello
例2:继承GenericServlet
HelloGen.java
////继承GenericServlet实现servlet package com.nenu; import javax.servlet.GenericServlet; import java.io.*; import javax.servlet.*; public class HelloGen extends GenericServlet { //重写service方法 public void service(ServletRequest req, ServletResponse res) { try{ PrintWriter pw=res.getWriter(); pw.println("Hello, GenericServlet"); } catch(Exception ex){ ex.printStackTrace(); } } }
web.xml
<servlet> <servlet-name>HelloGen</servlet-name> <servlet-class>com.nenu.HelloGen</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloGen</servlet-name> <url-pattern>/HelloGen</url-pattern> </servlet-mapping>
例3: 继承HttpServlet(最常用的方法)
HelloHttp.java
//继承HttpServlet实现servlet package com.nenu; import javax.servlet.*; import java.io.*; import javax.servlet.http.*; public class HelloHttp extends HttpServlet { //处理get请求 public void doGet(HttpServletRequest req, HttpServletResponse res){ this.doPost(req,res); } //处理post请求 public void doPost(HttpServletRequest req,HttpServletResponse res){ try{ PrintWriter pw=res.getWriter(); pw.println("hello, servletHttp"); } catch(Exception ex){ ex.printStackTrace(); } } }
web.xml
<servlet> <servlet-name>HelloHttp</servlet-name> <servlet-class>com.nenu.HelloHttp</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloHttp</servlet-name> <url-pattern>/HelloHttp</url-pattern> </servlet-mapping>
相关推荐
当你遇到“找不到javax.servlet.*”这样的错误时,通常是因为你的项目缺少了这个库,所以需要引入`javax.servlet.jar`来解决问题。 1. **Java Servlet简介** Java Servlet是Java平台上的一个标准,用于扩展服务器...
Servlet是一个Java类,遵循javax.servlet.Servlet接口,它允许开发者扩展服务器的功能。当用户向Web服务器发送一个请求时,Servlet会接收到这个请求,处理数据,然后返回响应。Servlet的主要生命周期方法包括:`init...
Servlet是Java平台上的一个核心组件,它允许开发者创建动态web应用程序。Servlet API是Java Servlet规范的一部分,它定义了服务器端程序如何与HTTP协议交互以及如何处理来自web客户端的请求并返回响应。`servlet.jar...
《深入理解Jakarta Servlet API 4.0源码》 Servlet技术是Java Web开发的核心,它为Web应用程序提供了服务器端的编程接口。Jakarta Servlet API 4.0是Servlet规范的最新版本,它包含了对HTTP协议处理、生命周期管理...
### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...
Servlet 线程安全问题 Servlet 线程安全问题是指在使用 Servlet 编程时,如果不注意多线程安全性问题,可能会导致难以发现的错误。Servlet/JSP 技术由于其多线程运行而具有很高的执行效率,但这也意味着需要非常...
Servlet API还提供了Filter的概念,允许开发者在请求到达Servlet之前和响应离开Servlet之后对其进行拦截和处理。`javax.servlet.Filter`接口定义了`doFilter()`方法,这使得我们可以实现如认证、日志记录、数据过滤...
Servlet3.0是Java Web开发中的一个重要里程碑,它在Servlet2.5的基础上引入了许多新特性,极大地提高了开发效率和灵活性。这份"Servlet3.0参考手册"无疑为开发者提供了全面的API参考和实用指南。 首先,Servlet3.0...
用注解的方式定义一个Servlet,就不用在web.xml中配置了。Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。 像上面的AnnotationServlet可以描述成@WebServlet(name="Annotation...
Servlet-API是Java Servlet技术的核心部分,它定义了服务器端与客户端之间交互的一系列接口和类。这个压缩包包含了Servlet-API的多个版本,分别是2.2、2.3、2.4、2.5以及3.0。每个版本的发布都带来了新的功能和改进...
`servlet-src`通常指的是Servlet的源代码,这对于理解Servlet的工作原理、学习如何编写Servlet以及进行自定义功能扩展非常有用。在这个压缩包中,我们可能会找到`javax`包,这是Java标准库的一部分,包含了Servlet...
它是Java Servlet和JavaServer Pages (JSP)技术的基础,提供了服务器端程序与Web客户端交互的能力。在这个压缩包中,包含的是对Servlet API的中文文档,可能是作者因为无法找到官方的源码和javadoc而自行整理的笔记...
Files contained in javax.servlet.jar: META-INF/MANIFEST.MF javax/servlet/http/LocalStrings.properties javax.servlet.http.HttpSessionBindingListener.class javax.servlet....
在Java Web开发中,Servlet和MyBatis是两个非常重要的技术。Servlet3.0作为Java Servlet规范的一个版本,引入了许多新特性,而MyBatis则是一个优秀的持久层框架,简化了数据库操作。本文将深入探讨如何将Servlet3.0...
Servlet3.1规范是Java服务器端编程的重要里程碑,它在原有的Servlet技术基础上进行了多项改进和扩展,极大地提升了Web应用的性能和开发效率。这个规范主要关注于Servlet、过滤器(Filter)和监听器(Listener)的...
《Head First Servlet & JSP》是一本非常受欢迎的IT教程,专为准备SCWCD(Sun Certified Web Component Developer)认证的读者设计。本书以其独特的学习风格,深入浅出地介绍了Servlet和JSP(JavaServer Pages)这两...
javax.servlet-api-***.jar中文文档.zip,java,javax.servlet-api-***.jar,javax.servlet,javax.servlet-api,***,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,javax,servlet,api,中文API文档,手册,开发...
根据提供的文件内容,以下是对Servlet3.1规范官方文档(中文版)中的知识点的详细说明。 首先,Servlet3.1官方文档是Java™ Servlet规范版本3.1的中文翻译版本。它详细描述了servlet技术规范的各个方面,包括对...
而Servlet是Java世界中的一个核心组件,主要用于构建Web应用程序。本篇将深入探讨如何利用C#来调用Servlet并发送XML数据,这对于跨语言通信和系统集成具有重要意义。 首先,理解C#调用Servlet的过程。Servlet是Java...