Java之基于Servlet的Web开发简介

由于学习的过程中,接触到了这部分内容,所以特别的在这进行整理,分享给大家。

1、定义

Servlet是Java Servlet的简称,称为小服务程序或服务连接器;

2、原理

从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。Servlet是Java

Servlet API开发的一种Java类,这些API被包含在javax.Servletjavax.Servlet.http这两个包中。Servlet程序在服务器端运行,动态地生成Web页面。

                                     

3、优点

与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,具有更好的可移植性,更加高效。

4、JSP与Servlet的关系

可以说JSP的实现是基于Servlet的,当JSP容器接到一个JSP页面请求之后,首先会判断与JSP文件相对应的Servlet类的名字

①如果不存在或者比较陈旧,那么容器就会重新创建一个等价的Servlet类并且进行编译。

②如果存在的话,那么服务器就会编译Servlet类,并且自动加载形成Servlet实例,并且将执行结果返回到客户端。

5、Servlet的生命周期

                                 

public void init() throws ServletException {    }

//初始化init 方法只调用被一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    }

//Get方法请求响应服务,GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD HTML 表单,它由 doGet() 方法处理。

③    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    }

//Post方法请求响应服务,POST 请求来自于一个特别指定了 METHOD POST HTML 表单,它由 doPost() 方法处理。

public void destroy() {    }

//销毁,destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程

6、Web.xml配置

一个Tomcat工程中最重要的配置文件。

web.xml没有其实也可以——————只要你确定你的项目里面不需要任何过滤器、监听器、Servlet等等

<web-app> //web-app定义该文档的根元素。 
     <servlet>
          <servlet-name>firstServlet</servlet-name> 
//用来定义servlet的名称,该名称在整个应用中必须是惟一的。
          <servlet-class>servlet.HelloServlet</servlet-class>
//用来指定servlet的完全限定的名称。
     </servlet>
     <servlet-mapping>
          <servlet-name>firstServlet</servlet-name> 
//Servlet的名字,唯一性和一致性,与<servlet>元素中声明的名字一致。
          <url-pattern>/hello</url-pattern> 
//指定相对于Servlet的URL的路径。该路径相对于web应用程序上下文的根路径。
//<servlet-mapping>将URL模式映射到某个Servlet,即该Servlet处理的URL。
     </servlet-mapping>
</web-app>

7、Servlet的主要用途——处理客户请求与响应

HttpServletRequest接口-------------javax.servlet.http.HttpServletRequest接口类型的对象对应JSP中的request内置对象。

常用方法:


public String getParameter(String param); 
//获得客户机请求参数,获取指定名称的参数值

public String[] getParameterValues(String param); 
//获取指定名称参数的所有值数组。它适用于一个参数名对应多个值的情况。如页面表单中的复选框,多选列表提交的值。

public void setAttribute(String attname,Object o);
 //在JSP内置对象session和request都有这个方法,这个方法作用就是保存数据,然后还可以用getAttribute方法来取出。

public Object getAttribute(String attname);
 //取数据

 

HttpResponse接口---------javax.servlet.http.HttpResponse接口类型的对象对应JSP中的response内置对象。

常用方法:

public void setContentType(String contentType); 
//在响应中可以表明内容格式和长短。

public void sendRedirect(String url);
//发送一个临时的重定向响应到客户端,让客户端访问新的URL。
//如果指定的位置是相对URL,Servlet容器在发送响应到客户端之前,必须将相对URL转换为绝对URL。
/如果响应已经被提交,这个方法将抛出IllegalStateException异常。

ServletConfig接口--------------javax.servlet.ServletConfig接口类型的对象对应JSP中的config内置对象,用于在Servlet初始化时向Servlet传递一些信息。

定义:ServletConfig config = this.getServletConfig();

常用方法

public String getInitParameter(String paraname); 
//从web.xml中获取参数。

ServletContext接口-------------javax.servlet.ServletContext接口类型的对象对应JSP中的application内置对象。

定义:ServletContext app = this.getServletContext();

常用方法

public void setAttribute(String attname, Object o); 
//存放数据,例如:setAttribute("wg","666"),
//表示存放了一个属性名为wg,属性值为123的数据,
//如果再次调用该方法,并向容器中存放了相同的属性,最后存的会覆盖以前存的。
public Object getAttribute(String attname); 
//取出指定属性名的数据,包括属性名和属性值,
//参过name指定的数据不存在,则本方法什么都不做。

关于Servlet的内容暂时介绍到这里!

谢谢大家!

猜你喜欢

转载自blog.csdn.net/qq_41026809/article/details/90677431