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