容器就是負責運行和銷毀servlet的一組類的程序,一組代碼的運行環(huán)境。
為了開發(fā)方便,可以從
javax.servlet.GenericServlet 繼承實現(xiàn)主要業(yè)務方法。
注意幾點,
1.有一個無參數(shù)的init()方法,是GenericServlet實現(xiàn)的,它不是Servlet接口中的方法,所以不會由容器調(diào)用,而是因為GenericServlet本身已經(jīng)覆蓋了帶參數(shù)的init方法,并且在方法的最后調(diào)用了自己的無參init()。
所以開發(fā)人員只需要繼承,并覆蓋無參init,實現(xiàn)自己的資源申請動作。
如果真要覆蓋帶參數(shù)的init(ServletConfig config),那么需要在第一行調(diào)用super.init(config),因為getServletConfig要返回這個config對象,如果不調(diào)用父類的init,不會保存下來。那么getServletConfig返回空。
HttpServlet方便了程序員進行Http協(xié)議的Servlet開發(fā)。
主要有幾個
protected void
doGet(
HttpServletRequest req,
HttpServletResponse resp) throws
ServletException,
java.io.IOException
protected void
doPost(
HttpServletRequest req,
HttpServletResponse resp) throws
ServletException,
java.io.IOException
protected void
service(
HttpServletRequest req,
HttpServletResponse resp) throws
ServletException,
java.io.IOException
主要參數(shù),已經(jīng)由容器封裝成為HttpServletRequest對象,相應也就有更多的方法獲得相關(guān)信息。
package imshark.servlet.http;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class PrintHeadingServlet extends HttpServlet
{


/** *//**
* Constructor of the object.
*/

public PrintHeadingServlet()
{
super();
}


/** *//**
* Destruction of the servlet. <br>
*/

public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


/** *//**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");

for (int i = 1; i < 6; i++)
{
out.print(" <h" + i + ">" + this.getClass() + "</h" + i + ">");
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


/** *//**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to
* post.
*
* @param request
* the request send by the client to the server
* @param response
* the response send by the server to the client
* @throws ServletException
* if an error occurred
* @throws IOException
* if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


/** *//**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occure
*/

public void init() throws ServletException
{
// Put your code here
}

}

===============================================
處理Html表單。
主要適用HttpServletRequest的一些方法。
public java.lang.String getParameter(java.lang.String name)
public java.util.Enumeration getParameterNames()
public java.lang.String[] getParameterValues(java.lang.String name)
public java.util.Map getParameterMap()
============================
public java.lang.String getProtocol()
public java.lang.String getServerName()
public int getServerPort()
============================

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>index.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<FORM name="regForm" action="/MyWebApp/servlet/HandleFormServlet" method="POST">
<P>
<INPUT type="text" name="userName" value="輸入姓名" size="20" maxlength="15">
</P><P>
<INPUT type="password" name="userPw" size="20" maxlength="18">
</P><P>
男<INPUT type="radio" name="sex" value="1" checked>
女<INPUT type="radio" name="sex" value="0">
</P><P>
足球<INPUT type="checkbox" name="habit" value="football">
籃球<INPUT type="checkbox" name="habit" value="basketball">
</P><P>
自我介紹:</P><P>
<TEXTAREA name="selfInfo" rows="5" cols="40"></TEXTAREA>
</P><P>
<INPUT type="submit" value="注冊">
<INPUT type="Reset" value="重置" />
</P><P></P></FORM>
</body>
</html>

package imshark.servlet.http;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class HandleFormServlet extends HttpServlet
{


/** *//**
* Constructor of the object.
*/

public HandleFormServlet()
{
super();
}


/** *//**
* Destruction of the servlet. <br>
*/

public void destroy()
{
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


/** *//**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out
.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


/** *//**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException
{

response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
java.util.Enumeration names = request.getParameterNames();
while(names.hasMoreElements())

{
String nameKey = (String)names.nextElement();
String[] values = request.getParameterValues(nameKey);
out.print(nameKey + "{");
for(int i = 0; i < values.length; i++)

{
if(i != 0)
out.print(","+ values[i]);
out.print(values[i]);
}
out.println("}");
}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}


/** *//**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occure
*/

public void init() throws ServletException
{
// Put your code here
}

}

posted on 2006-02-11 12:10
北國狼人的BloG 閱讀(443)
評論(0) 編輯 收藏 所屬分類:
達內(nèi)學習總結(jié)