Loading

Serlvet学习笔记之一 ——实现servlet的3种方法

1.配置环境,从tomcat的lib下面引入servlet-api.jar包。

2.创建servlet

方法一,通过继承servlet接口

package com.test;
import javax.servlet.*;

import java.io.*;

public class Login implements Servlet{
//销毁servlet实例,释放内存,在以下情况被调用:关闭应用,重启,关机才被调用
    public void destroy() {
        System.out.println("destroy");  //检验    
    }
//得到servlet的配置文件
    public ServletConfig getServletConfig() {
        return null;
    }

    public String getServletInfo() {
        return null;
    }
//    用于初始化servlet(类似于类的构造函数),只会被调用一次(用户第一次访问该servlet时被调用)
    public void init(ServletConfig arg0) throws ServletException {
        System.out.println("init");  //检验
    }
//用于处理业务逻辑,每次访问该servlet都会被调用
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("service");  //检验
        PrintWriter pw=res.getWriter();
        pw.println("hello world!!!");
    }
}

3.部署

配置xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
    xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <!--       需要添加的代码              -->
  <servlet>
  <!--  给你的servlet取名,任意的-->
 <servlet-name>hello</servlet-name>
 <!-- 指明servlet的路径,包名.类名 -->
 <servlet-class>com.test.login</servlet-class>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>hello</servlet-name>
 <!-- 访问servlet的URL,任意的-->
 <url-pattern>/login</url-pattern>
 </servlet-mapping>
</web-app>

在浏览器中输入http://IP:port/项目名/login,即可访问,(一般情况下是项目名,当然也可以在tomcat的webapps下改掉项目的名字)

方法二,通过继承GenericServlet实现

package com.test;
import javax.servlet.*;
import javax.servlet.GenericServlet;
import java.io.*;

public class Login extends GenericServlet{
    //重写service方法即可
    public void service (ServletRequest re,ServletResponse res){
    try {
        PrintWriter pw=res.getWriter();
        pw.println("Hello Generic");   
    } catch (Exception e) {
        e.printStackTrace();
    }
}
}

方法三,通过继承HttpServlet

表单提交数据get和post的区别:

1.从安全性看:get<post;get提交的数据会在地址栏上显示

2.从提交内容看:get<post;get提交的数据不能大于2K,而post不受限制,不过建议不要大于64K

3.从相应速度来看:get>post,get要求服务器立即处理请求,而post可能形成队列请求。

综合来说,建议使用post

package com.test;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class Login extends HttpServlet{
    //处理get请求
    public void doGet(HttpServletRequest re,HttpServletResponse rs){
        try {
            PrintWriter pw=rs.getWriter();
            pw.println("hello,HttpServlet");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //处理post请求
public void doPost(HttpServletRequest re,HttpServletResponse rs){
    this.doGet(re, rs);
    }
}

 

posted @ 2015-11-04 00:52  头痛不头痛  阅读(466)  评论(0编辑  收藏  举报