您的位置:首页 > 其它

Servlet处理的基本流程

2013-12-13 10:14 225 查看

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);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: