容器就是负责运行和销毁servlet的一组类的程序,一组代码的运行环境。
为了开发方便,可以从
javax.servlet.GenericServlet 继承实现主要业务方法。
注意几点,
1.有一个无参数的init()方法,是GenericServlet实现的,它不是Servlet接口中的方法,所以不会由容器调用,而是因为GenericServlet本身已经覆盖了带参数的init方法,并且在方法的最后调用了自己的无参init()。
所以开发人员只需要继承,并覆盖无参init,实现自己的资源申请动作。
如果真要覆盖带参数的init(ServletConfig config),那么需要在第一行调用super.init(config),因为getServletConfig要返回这个config对象,如果不调用父类的init,不会保存下来。那么getServletConfig返回空。
HttpServlet方便了程序员进行Http协议的Servlet开发。
主要有几个
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
主要参数,已经由容器封装成为HttpServletRequest对象,相应也就有更多的方法获得相关信息。
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 阅读(438)
评论(0) 编辑 收藏 所属分类:
达内学习总结