javaweb回顾第一篇servlet的学习和理解

时间:2023-03-10 01:08:04
javaweb回顾第一篇servlet的学习和理解

前言:关于servlet相信学过java的都不会陌生,我最近又把这些基础知识整理一遍,便于自已能更好的理解ssm或者ssh,下面开始

1:Servlet接口

servlet有5个方法下面分别简单的介绍每个方法的作用

1.1:public void init(ServletConfig config)

在servlet被实例化以后,servlet容器会调用init方法来初始化该对象,这个方法主要是完成在请求前的一些初始化工作,比喻调用数据库连接,实例化对象等

1.2:public void service(ServletRequest req, ServletResponse res)

这个方法是一个核心的方法,我们主要的操作就在这个方法中进行,在收到客户端请求以后然后进行业务的处理,把处理的信息响应给客户端

1.3:public void destroy()

这个方法是当servlet实例被移除的时候会调用,释放servlet中的资源,比喻关闭数据库连接等可以理解为析构函数

1.4:public String getServletInfo()

这个方法主要是用于返回Servlet的描述信息,这些信息可以是Servlet的作者,版本、版权信息等

1.5:public ServletConfig getServletConfig()

主要返回容器调用init以后传给servlet对象的ServletConfig对象

5个方法的作用说完了现在看下代码

 public class HelloWorldServlet implements Servlet{

     private ServletConfig servletConfig;
//private ServletInfo
public void init(ServletConfig config) throws ServletException {
this.servletConfig=config;
} public ServletConfig getServletConfig() {
return servletConfig;
} public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
String initReleName=this.servletConfig.getInitParameter("realName");
String servletName=this.servletConfig.getServletName();
String username=req.getParameter("username"); res.setContentType("text/html;charset=gb2312");//避免中文乱码
//得到PrintWriter对象,
PrintWriter out=res.getWriter();
//向客户端发送数据
out.println("Hello World " +username+"<br/>");
out.println("servlet名称:"+servletName+"<br/>");
out.println("内联的真实名称:"+initReleName+"<br/>");
//关闭流
out.close();
} /**
*用于返回Servlet的描述信息,这些信息可以是Servlet的作者,版本、版权信息等
*/
public String getServletInfo() {
String str ="zhangsan";
return str;
} public void destroy() {
// TODO Auto-generated method stub
}
}

我们在来配置一个web.xml

 <!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>myservlet</display-name>
<description>这是我的第一个servlet</description>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.lp.servlet.HelloWorldServlet</servlet-class>
<init-param>
<param-name>realName</param-name>
<param-value>张三</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>

web.xml

注释1:xml中的Servlet第一个表示Servlet-name表示名称,为了和后面servlet-mapping中的Servlet-name进行关联,然后在影射的时候就可以找到需要的Servlet类了

在浏览器中输入http://localhost:8080/servlet-test/helloworld?username=lp然后我们可以看到效果

javaweb回顾第一篇servlet的学习和理解

2:Servlet的生命周期

我用一幅图来表示

javaweb回顾第一篇servlet的学习和理解