Servlet处理的基本流程

来源:互联网 发布:软电话软件 编辑:程序博客网 时间:2024/05/17 09:26

Servlet处理的基本流程:

Servlet程序将按照如下的步骤进行处理。

客户端(很可能是WEB浏览器)通过HTTP提出请求

Web服务器接收该请求并将其改善给SERVLET。如果这个SERVLET尚未被 加载,web服务器将把它加载到JAVA虚拟机并且执行。

Servlet程序将接收该HTTP请求并执行某种处理

ServlET会将处理后的结果向WEB服务器返回应答。

Web服务器将从SERVLET收到的应答发回客户端。

永远HELLO

Servlet基本组成

实现要求:

  如果在开发一个可以处理HTTP请求的servlet,肯定是要继承httpServlet类,而且在自定义的SERVLET类中,至少还要覆盖提供的DOget()方法

 Protectedvoid doGet(HttpServletRequest request,HttpServlertResponse response) throwsServletException, IOException

 

package org.servelt.wade.hello;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class ServletHello extendsHttpServlet{

 public void doGet(HttpServletRequestrequest,HttpServletResponse response) throws ServletException , IOException{

 PrintWriter out=response.getWriter();

 out.println("<html>");

 out.println("<head>");

 out.println("</head>");

 out.println("<body>");

 out.println("<h1>hello world</h1>");

 out.println("</body>");

 out.println("<html>");

 out.close();

 }

}Web配置

Servlet基本配置

 <servlet>

  <servlet-name>hello</servlet-name>

  <servlet-class>servelt.wade.hello.ServletHello</servlet-class>

 </servlet>

 <servlet-mapping>

  <servlet-name>hello</servlet-name>

  <url-pattern>/helloServlet</url-pattern>

 </servlet-mapping>

可以配置多个SERVLET-MAPPING,

 

Servlet与表单

深入了解httpservlet类中的请求处理方法

package org.servelt.wade.input;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class Servletinput extendsHttpServlet{

 public void doGet(HttpServletRequestrequest,HttpServletResponse response) throws ServletException , IOException{

 PrintWriter out=response.getWriter();

 String info=request.getParameter("name");

 out.println("<html>");

 out.println("<head>");

 out.println("</head>");

 out.println("<body>");

 out.println("<h1>hello world"+info+"</h1>");

 out.println("</body>");

 out.println("<html>");

 out.close();

 }

 public void doPost(HttpServletRequest request,HttpServletResponseresponse) throws ServletException , IOException{

 

 this.doGet(request,response);

}

}

 

  <form action="inputServlet" method="get">

   <input type="input" name="name"/>

         </br>

         <inputtype="submit" value="提交"/>

  </form>

掌握表单提交的路径问题处理方法

Servlert生命周期

Servlet程序是运行在服务器端的一段JAVA程序,其生命周期将受web容器的窑,生命周期包括:加载程序,初始化,服务,销毁,卸载五个部分。

取得server初始化配置信息

掌握servletConfig对象的使用

可以在web.xml中为一个servlet配置启动的初始化参数

具体内容:

初始化的方法可以使用init()pfdn,但是里面却可以传入一个servletConfig的对象,此对象就是可以接收初始化配置参数的操作。

所有的初始化参数都必须在WEB.XML文件之中进行配置。

Public void init(ServletConfig config)throwsServletException

 

<servlet>

  <servlet-name>servletconfig</servlet-name>

   <servlet-class>org.servelt.wade.servletconfig.ServletconfigDemo</servlet-class>

  <init-param>

  <param-name>reg</param-name>

  <param-value>www.sinodms.com.cn</param-value>

  </init-param>

 </servlet>

 <servlet-mapping>

  <servlet-name>servletconfig</servlet-name>

  <url-pattern>/servletconfig</url-pattern>

 </servlet-mapping>

取得其他内置对象

可以从servelt中取得seesion对象并进行操作

Servlet本身提供的只胡request和resoponse两个对象,所以如果要想取得session对象,则只能依靠request对象,因为session属于HTTP范畴,而且在每次改善请求的时候,服务器都会自动为客户端设置一个COOKIE所以很自然的 seesion中要使用到COLKIE的机制,但是COOKIE又能通过REQUEST取得,那么自然SESSION也就只能通过REQUEST取得了

取得HttpSession实例

 在servlet程序中要想取得一个session对象,则可以通过httpservletrequst接口完成。

Public HttpSession getSession()

Public HttpSession getSession(BooleanSession)

 

package org.wade.servletsesson;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class ServletSession extendsHttpServlet{

 public void doGet(HttpServletRequestrequest,HttpServletResponse response)throws ServletException,IOException

 {

  HttpSession hse=request.getSession();

  System.out.println("id"+hse.getId());

  hse.setAttribute("wade","wade.nian");

  System.out.println("neirong:"+hse.getAttribute("wade"));

  

 }

 public void doPost(HttpServletRequest request,HttpServletResponseresponse)throws ServletException,IOException

 {

 this.doGet(request,response);

 }

}

<servlet>

  <servlet-name>servetlsession</servlet-name>

  <servlet-class>org.wade.servletsesson.ServletSession</servlet-class>

 </servlet>

 <servlet-mapping>

  <servlet-name>servetlsession</servlet-name>

  <url-pattern>/servletsession</url-pattern>

 </servlet-mapping>

可以从servlet中取得application对象并进行操作。

ServeltContextapp=super.getServletContext();

取得了session之后就意味着可以进行登陆验证。

通过getServletContext方法可以取得application对象。

 

Servlet跳转

掌握Servlet服务器跳转及客户端跳转的使用

package org.wade.servletredirect;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class ServletRedirect extendsHttpServlet{

 public void doGet(HttpServletRequestrequest,HttpServletResponse response)throws ServletException,IOException

 {

  request.getSession().setAttribute("name","wade");

  request.setAttribute("info","wade1");

  response.sendRedirect("forw.jsp");

  }

 public void doPost(HttpServletRequest request,HttpServletResponseresponse)throws ServletException,IOException

 {

 this.doGet(request,response);

 }

}

掌握RequestDispatcher接口的使用

package org.wade.servletredirect;

import java.io.*;

import javax.servlet.*;

import javax.servlet.http.*;

 

public class ServletRedirect extendsHttpServlet{

 public void doGet(HttpServletRequestrequest,HttpServletResponse response)throws ServletException,IOException

 {

  request.getSession().setAttribute("name","wade");

  request.setAttribute("info","wade1");

  RequestDispatcher rd=request.getRequestDispatcher("forw.jsp");

 rd.forward(request,response);

 }

 public void doPost(HttpServletRequest request,HttpServletResponseresponse)throws ServletException,IOException

 {

 this.doGet(request,response);

 }

}

 

0 0
原创粉丝点击