Servlet学习之一开发Servlet的三种方法
来源:互联网 发布:linux打印行号 编辑:程序博客网 时间:2024/05/21 11:05
开发步骤:
1)在%TOMCAT_HOME%\webapps下WEB-INF的文件夹,写一个文件web.xml(该网站的配置信息。。。),建立一个classes的子文件夹,也可以从别的目录ROOT下拷贝
2)开发servlet(引入servlet.api.jar)
注:题主学习时用的JCreator开发环境开发的,安装JCreator时会设置绑定JDK,所以启动JCreator后,点击Configure再点击Options时,在JDK Profiles下可以看到JDK下的相关jar包。而这个servlet.api.jar(位于Tomcat5.0\common\lib下)要我们手动引入到环境中。
3)部署你的servlet,在web.xml文件中,添加如下代码:
<?xml version="1.0" encoding="ISO-8859-1"?><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"><web-app> <display-name>Welcome to Tomcat</display-name> <description> Welcome to Tomcat </description><!-- JSPC servlet mappings start --> <servlet><!-- 给你的servlet取名,任意的 --> <servlet-name>hello</servlet-name><!-- 指明servlet的路径,包名+类名 --> <servlet-class>com.tsinghua.hello</servlet-class> </servlet> <servlet-mapping><!-- 给你的servlet取名,任意的 --> <servlet-name>hello</servlet-name><!-- 这是在浏览器中输入的访问该servlet的url,任意的 --> <url-pattern>/sp</url-pattern> </servlet-mapping><!-- JSPC servlet mappings end --></web-app>4、Servlet生命周期
1)装载servlet,由相应的容器来完成
2)创建一个Servlet实例
3)调用Servlet的init()方法,该方法只会在第一次访问该servlet时被调用一次
4)服务:调用servlet的destroy()方法,销毁该servlet实例。该方法在一下情况被调用:a:tomcat 重新启动 b:reload该Webapp c:重新启动电脑
三种实现方式
1、实现Servlet接口
package com.tsinghua;import javax.servlet.*;import java.io.*;public class Hello implements Servlet{//该函数用于初始化该servlet(类似于类的构造函数)//该函数只会被调用一次(当用户第一次访问该Servlet时被调用) public void init(ServletConfig parml) throws ServletException{ System.out.println("init it"); } //得到Servlet配置文件,不是很重要 public ServletConfig getServletConfig(){ return null; } //这个函数用于处理业务逻辑 //程序员应当把业务逻辑代码写在这里 //该函数会被调用多次,当每次访问servlet时,都会被调用 //req 用于获得客户端信息 res用于向客户端返回信息 客户端即浏览器 public void service(ServletRequest req,ServletResponse res) throws ServletException{ //从res中得到PrintWriter //控制台显示 System.out.println("service it"); try{ PrintWriter pw=res.getWriter(); //发回网页显示 pw.println("hello,world"); }catch(IOException e) { } } public String getServletInfo(){ return ""; } //销毁Servlet实例(释放内存) //什么情况被调用1.reload 该serlvet(webApps) 2.关闭tomcat //3.关机 public void destroy(){ System.out.println("destroy"); }}
2、继承GenericServlet
通过GenericServlet去开发Servlet,只需要重写Service相对来说要简单一些。
package com.tsinghua;import javax.servlet.GenericServlet;import java.io.*;import javax.servlet.*;public class HelloGen extends GenericServlet{ //重写service方法即可 public void service(ServletRequest req,ServletResponse res){ try{ PrintWriter pw=res.getWriter(); pw.println("hello world!generic"); }catch(Exception ex){ ex.printStackTrace(); } }}
3、继承HttpServlet
需要重写doGet、doPost方法。这是目前用的最多的一种方法。
表单提交方法有两种,一种是get,一种是post;
两者区别:
安全性:get<post 内容大小:get<post get 请求速度:get>post; get要求服务器立即处理请求,而post请求可能形成一个队列请求。
package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class HelloHttp extends HttpServlet{ //重写get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try{ PrintWriter pw=res.getWriter(); pw.println("hello,http"); }catch(Exception ex) { ex.printStackTrace(); } } //重写get请求 public void doPost(HttpServletRequest req,HttpServletResponse res){ this.doGet(req,res); }}
- Servlet学习之一开发Servlet的三种方法
- Servlet学习(一)----Servlet的生命周期以及开发Servlet的三种方法
- 代码片-1】 Servlet学习(一)----Servlet的生命周期以及开发Servlet的三种方法
- 开发Servlet的三种方法
- 开发servlet的三种方法
- 开发Servlet的三种方法
- 开发servlet的三种方法
- 开发servlet的三种方法
- 开发servlet的三种方法
- Servlet的三种开发方法
- 开发 Servlet 三种方法
- Servlet学习笔记(Servlet生命周期&开发Servlet的方法)
- Java Web -- Servlet(4) 开发Servlet的三种方法、配置Servlet详解、Servlet的生命周期(1)
- Java Web -- Servlet(5) 开发Servlet的三种方法、配置Servlet详解、Servlet的生命周期(2)
- (第3讲)开发servlet的三种方法
- day_2 servlet 三种开发方法
- JavaWeb三大组件之一Servlet【Servlet获取资源方法】
- 学习笔记(3)-----servlet的三种开发方式
- POJ - 3696 The Luckiest number(求阶)
- ng-bind-html 的使用
- 第12周项目3-图遍历算法实现
- Android 四大组件之广播 -- 红
- 第11周项目1-验证算法(4)哈夫曼编码的算法验证
- Servlet学习之一开发Servlet的三种方法
- 理解临时对象的来源
- notepad++保存后中文乱码的问题
- iOS开发 AFNetworking 关于JSON text did not start with array or object and option to allow fragments not
- (第十二周项目3)图遍历算法实现
- ARecyclerView,一个库搞定recyclerview
- Android Service后台进程守护
- opencv3.1.0+cuda8.0+vs2013+win7编译过程错误及解决方法
- UIImagePickerController status Bar can not hidden in IOS 10