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

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

       现在又到了晒就业是季节,一位学长晒出了阿里的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。

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值