随笔-159  评论-114  文章-7  trackbacks-0
容器就是负责运行和销毁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>
                 
&nbsp;
                
<INPUT type="text" name="userName" value="输入姓名" size="20" maxlength="15">
            
</P><P>
                 
&nbsp;
                
<INPUT type="password" name="userPw" size="20" maxlength="18">
            
</P><P>
                 
&nbsp; 男<INPUT type="radio" name="sex" value="1" checked>
                 女
<INPUT type="radio" name="sex" value="0">                
            
</P><P>
                 
&nbsp; 足球<INPUT type="checkbox" name="habit" value="football">
                 篮球
<INPUT type="checkbox" name="habit" value="basketball">
            
</P><P>
                 
&nbsp; 自我介绍:</P><P>
                 
&nbsp;
                
<TEXTAREA name="selfInfo" rows="5" cols="40"></TEXTAREA>
            
</P><P>
                
&nbsp; <INPUT type="submit" value="注册">
                
<INPUT type="Reset" value="重置" />
                
&nbsp;</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 阅读(432) 评论(0)  编辑  收藏 所属分类: 达内学习总结

只有注册用户登录后才能发表评论。


网站导航: