Hello Servlet
来源:互联网 发布:python安装 编辑:程序博客网 时间:2024/05/06 09:35
上周老师开始讲了servlet进行开发,前面是jsp+前端+javaBean模式。现在又多了个servlet技术,jsp是在servlet基础上发展出来的技术。
servlet生命周期,很多博客都写的很好,http://www.cnblogs.com/cuiliang/archive/2011/10/21/2220671.html
1.实例化(构造函数)
2.初始化
3.服务
4.销毁。
开发servlet有三种方法:
A.实现servlet接口
B.继承GenericServlet
C.继承HttpServlet
servlet3.0之后还可以通过注解开发servlet(JAVAEE 6.0)我学习的第一个servlet。
一:首先采用实现servlet接口方式:
Hell.java:
//这是我的第一个servlet,实现servletjiekoupackage com.ncu;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.Servlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class Hello implements Servlet{/* (non-Javadoc) * @see javax.servlet.Servlet#destroy() */@Overridepublic void destroy() {//销毁servlet,释放内存System.out.println("destroy");//1.reload 该servlet(webApps)//2.关闭tomcat}/* (non-Javadoc) * @see javax.servlet.Servlet#getServletConfig() */@Overridepublic ServletConfig getServletConfig() {// return null;}/* (non-Javadoc) * @see javax.servlet.Servlet#getServletInfo() */@Overridepublic String getServletInfo() {// TODO Auto-generated method stubreturn null;}/* (non-Javadoc) * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig) */@Overridepublic void init(ServletConfig config) throws ServletException {//该函数用于初始化servlet,类似于类的构造函数,该函数只会被调用一次//该函数只会被调用一次,(当用户第一次访问该servlet时被调用) System.out.print("initialize it!!!");}/* (non-Javadoc) * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) */@Override//req:用于获得客户端(浏览器)信息//res:用于向客户端返回信息public void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {// 该函数用于处理业务逻辑//程序员应当把业务逻辑代码写在这里//从res中得到printwriterSystem.out.println("service it");PrintWriter pw=res.getWriter();pw.println("hello world");}}
2.配置web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <!-- 给你的servlet取名,任意的 --> <servlet-name>hello</servlet-name> <!-- 指明servlet的路径(包名+类名 --> <servlet-class>com.ncu.Hello</servlet-class> </servlet> <servlet-mapping> <!-- 这个servlet名必须和映射的一致 --> <servlet-name>hello</servlet-name> <!-- 这是在浏览器中输入的访问该servlet的url --> <url-pattern>/nicolas</url-pattern> </servlet-mapping></web-app>
然后部署应用后,启动tomcat服务,进行调试运行:
第一次被访问后,就会执行init()打印输出initialize。只会打印一次,接着不断刷新,刷新一次就执行一个service方法,打印一次service it
访问的路径就是我们在web。xml的 <url-pattern>/nicolas</url-pattern>
http://localhost:8086/servletDemo/nicolas
注意/nicolas是任意的。
然后servlet的销毁发生在reload或关闭tomcat时。
下面reload一下这个servletDemo应用,进入tomcat的管理应用页面(用户和密码一般配置为user:tomcat pwd:s3cret)
二:采用继承GenericServlet来开发servlet,只要重写service方法即可。
HelloServlet.java:
//这是第二种开发servlet的方法//通过继承GenericServlet开发package com.ncu;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.GenericServlet;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;public class HelloServlet extends GenericServlet{@Overridepublic void service(ServletRequest req, ServletResponse res)throws ServletException, IOException {// TODO Auto-generated method stub//重写service方法try{PrintWriter pw=res.getWriter();pw.print("Hello ,GenericServlet");}catch(Exception e){e.printStackTrace();}}}
web.xml配置这个servlet:
</servlet-mapping> <servlet> <servlet-name>helloservlet</servlet-name> <servlet-class>com.ncu.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloservlet</servlet-name> <url-pattern>/helloservlet</url-pattern> </servlet-mapping>
访问:http://localhost:8086/servletDemo/helloservlet 调试运行:
三:
通过继承HttpServlet开发servlet
通过重写doGet,doPost方法。这是目前用的最多的一种方法。
helloHttpServlet.java文件:
package com.ncu;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class helloHttpServlet extends HttpServlet{/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doDelete(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doDelete(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doDelete(req, resp);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stub//super.doGet(req, resp);//处理get请求try{PrintWriter rw=resp.getWriter();rw.print("HttpServlet doGet()!!!");}catch(Exception e){e.printStackTrace();}}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doHead(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doHead(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doHead(req, resp);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doOptions(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doOptions(HttpServletRequest arg0, HttpServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doOptions(arg0, arg1);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPost(req, resp);//处理post请求}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doPut(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doPut(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doPut(req, resp);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#doTrace(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void doTrace(HttpServletRequest arg0, HttpServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubsuper.doTrace(arg0, arg1);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#getLastModified(javax.servlet.http.HttpServletRequest) */@Overrideprotected long getLastModified(HttpServletRequest req) {// TODO Auto-generated method stubreturn super.getLastModified(req);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse) */@Overrideprotected void service(HttpServletRequest arg0, HttpServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubsuper.service(arg0, arg1);}/* (non-Javadoc) * @see javax.servlet.http.HttpServlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse) */@Overridepublic void service(ServletRequest arg0, ServletResponse arg1)throws ServletException, IOException {// TODO Auto-generated method stubsuper.service(arg0, arg1);}}
web。xml配置这个httpservlet:
<servlet> <servlet-name>helloHttpServlet</servlet-name> <servlet-class>com.ncu.helloHttpServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>helloHttpServlet</servlet-name> <url-pattern>/helloHttpServlet</url-pattern> </servlet-mapping>
运行截图:
- Hello Servlet
- Hello Servlet
- Servlet基础----Hello Servlet!!!
- 【Servlet】开发入门Hello Servlet!!!
- [Servlet]Hello World
- servlet基础-hello world
- Servlet 实例hello world
- 【Servlet】Hello World
- Servlet Hello World
- Hello World Servlet
- Hello级别的Servlet
- jsp servlet之hello world
- 二、Servlet实现Hello World
- J2EE Hello Word about Servlet
- 初学java servlet--hello world
- 【复习】servlet之hello world
- Servlet 第一课:简单Servlet Demo,写一个Hello Servlet
- Java Servlet Hello World with Tomcat
- Android library projects cannot be launched .
- [USACO 1.3.3]Calf Flac 最长回文子串模板
- BlazeDS整合java和flex:创建网络应用程序教程
- 游戏编程入门学习笔记23——网络篇——显示延时值
- coding advise
- Hello Servlet
- 最长子序列一种解法
- c++难点(较高级使用技巧)总结
- RMI远程方法调用完整示例【java项目】
- fedora16下更改网卡名字
- 同一进程中的线程可以共享哪些资源
- hdu 2795 Billboard 线段树 单点更新
- ASM工具集合-amdu
- 常用排序算法、二