您的位置:首页 > 运维架构 > Tomcat

Java Servlet学习【1】编写Servlet程序,配置web.xml,使用免安装版tomcat

2015-08-15 15:28 871 查看
自己最后又变懒了,好多天只是看着书看着网上的视频学习,没有也不想回忆学过的知识,只是知道自己还在进行着学习,其实回忆学过的知识也是比较受罪的,所以不想总结的自己就是变懒了很多。

现在又到了晒就业是季节,一位学长晒出了阿里的offer,羡煞旁人,这也激励着自己,就算不能找到那种好工作,现在也不能无所事事的这样玩着。所以开始回忆,开始技术~~·

最近一直在学习Servlet。首先就要说到为何要用到Servlet,让你开发一个网页,一个人可以发帖,其他人可以回复。这样的交互功能用普通的Java技术就完成不了啦。想想这需要用到什么技术呢?sun公司提供Serverlet技术提供使用。serverlet接受请求,业务逻辑,回复请求。这个是很多高级技术(JSP)的基础。

Serverlet(别名就是Java服务器小程序)的特点有一下几方面:

1.它是由服务器端(tomcat)调用和执行的。

2.它是用Java语言编写的(类)。

3.它是按照Server规范开发的。(这个很重要的)

4.功能强大,可以完成几乎所有的网站功能。

5.是学习jsp的基础。

想要实现Serverlet的编程就得知道其开发方式,它主要有三种开发方式:

(1)实现Servlet接口

(2)继承GenericServet

(3)继承HttpServlet

我在这里就只说第一种开发方式,这种方式比较繁琐,但可以更好的理解Servlet的编程步骤。在这里举一个小案例。这个案例的需求是:使用实现接口的方式,来开发一个Serlet,要求该Serlet可以显示一个Hello World,和当前时间。要显示当前时间这个用普通的Java或者静态网页是编写不出来的。所以就得用到Servlet技术。

编写这么一个小程序的步骤是:

1)建立一个web应用(在那个webapps下面linweieranSerlet,

2)要建立WEB-INF里面要有web.xml(可以从root下面复制),还要有classes,lib文件夹

3)既然是实现接口,那么就需要将他的方法全部都实现。

4)要将servlet的包写入classpath中,这个包可以在tomcat/lib下面找到。

5)如果使用javac编译一个Java文件,使用命令javac -d . 打包编译。

6)根据servlet 规范,还需要在web.xml中部署Servlet

其实现接口方式代码为:

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

public class MyFirstSerlet implements Servlet
{
	//该函数用于初始化Servlet 就是把该Servlet装载到内存中
	//该函数只会被调用一次
	public void init(ServletConfig config)
		throws ServletException{
	}
	//得到ServletConfig对象
	public ServletConfig getServletConfig(){
		return null;
	}
	//该函数是服务函数,我们的业务逻辑代码就是写在这里的。
	//该函数每次都会被调用
	public void service(ServletRequest req,
						ServletResponse res)
		throws ServletException,java.io.IOException{
		//在控制台中输出
		System.out.println("hello world "+new java.util.Date());
		res.getWriter().println("hello,world "+new java.util.Date().toLocaleString());
	}
	//该函数是得到servlet配置信息
	public java.lang.String getServletInfo(){
		return null;
	}
	//销毁该Servlet,从内存中清除掉,只会被调用一次
	public void destroy(){
	}

}


然后进行编译,得到其class文件。



我在进行javac编译的时候出现的以上错误。原因是我使用editplus写的,保存格式是UTF-8,我的处理办法是另存为->编码选择ANSI,在进行编译则成功。

其中,WEB-INF文件下的web.xml文件需要配置Servlet的路径。简单的配置过程是:

<servlet>
		<!--servlet-name 就是取个名字,该名字可以自己定义,
		默认使用该Servlet名字-->
    <servlet-name>MyFirstSerlet</servlet-name>
		<!--servlet-class指明该class放在哪个包下面,形式如下:包.../类-->
    <servlet-class>com.lijingbo.MyFirstSerlet</servlet-class>
  </servlet>
		<!--Servlet的映射-->
  <servlet-mapping>
		<!--这里的Servlet-name需要和前面的一样-->
    <servlet-name>MyFirstSerlet</servlet-name>
		<!--这里是访问Servlet资源位置,默认命名规范:
		就是该Servlet的名字-->
	<url-pattern>/MyFirstSerlet</url-pattern>
  </servlet-mapping>


其中Servlet-name 是自己起的名字。Servlet-mapping是这个应用的映射。

其中有些小注意点,我已开始用的是tomcat的安装版,这个tomcat直接安装不用在电脑里配置环境变量,一开始偷懒就一直用到现在,但是在写这个程序的时候发现,安装版的tomcat每次点击打开及时挂载的应用配置有错,也不会报错,这个对于开发时候的调试很不方便。所以我就下载免安装版的每次点击startup.bat进行启动,在黑窗口里可以看到某个应用的具体错误。所以建议编程时候使用免安装版的tomcat。

就这个小程序,弄了我两天终于可以征程运行。下面是运行截图。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: