java serverlet_Serverlet程序

Serverlet是用Java编写的服务器端程序;主要用于交互地浏览和修改数据,生成动态Web内容;

一个serverlet就是一个继承于HttpServlet抽象类的Java类;下面先看一个简单的例子

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

import javax.servlet.*;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;import java.io.*;public class HelloWorldServlet extendsHttpServlet {public void service(HttpServletRequest req, HttpServletResponse res) throwsIOException{

res.setContentType("text/html");

PrintWriter out=res.getWriter();

out.println("

Hello World!");

out.println("

");

out.println("

Hello World!

");

}

}

HelloWorldServlet

将这个Java代码编译成.class 类得到 HelloWorldServlet.class 文件;

然后就是将这个文件放入tomcat的一个站点的 ../WEB-INF/classes/   下面

在对应的web.xml 里面添加如下内容:

HelloWorldServlet

HelloWorldServlet

HelloWorldServlet

/HelloWorldServlet/*

OK,现在可以在浏览器里访问了;

http://localhost:8080/webapp/HelloWorldServlet/     webapp为站点名;

下面介绍servlet是怎么样被访问的,首先浏览器发送的URL,服务器会在web.xml文件中寻找对应的标签,再找到对应的servlet对应的,然后再根据,找到对应的servlet-class类 , 然后new一个对象,执行里面的方法;

servlet生命周期:

1、加载(通过classloader加载类)

2、实例化(new 一个对象)  这时候会执行构造函数

3、执行初始化函数(init(servletcofig)函数)//servletcofig  这个参数记录了 web.xml中关于这个servlet的配置信息

4、处理请求

5、销毁(执行destroy函数)

注意,无论有N多用户,对于一个符合J2EE标准的服务器,一个servlet的类,值产生一个servlet对象,所有用户都使用这一个对象;

当第一个用户访问的时候,会执行步骤1~4   其他用户访问的时候,就只执行4,不会再执行1~3;

等待服务器关闭的时候,执行5;

实际上,servlet有这样一个接口,singlethread(大概是这个名字),重写这个函数,就可以使得每调用一次,创建一个对象,然而这样会非常非常消耗内存;

servlet 设定自启动及参数值在XML中配置的方法:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

Log4JInitServlet

Log4JInitServlet

log4j-properties-location

C:/myTestJava/Log4JWeb/WebRoot/ini/log4j.properties

1

WEB.xml 部分

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importjava.io.File;import java.io.IOException; //import org.apache.logging.log4j.core.Logger;

import org.apache.log4j.*;importjavax.servlet.ServletConfig;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/*** Servlet implementation class Log4JInitServlet*/

public class Log4JInitServlet extendsHttpServlet {private staticLogger logger;publicLog4JInitServlet() {super();//TODO Auto-generated constructor stub

}/***@seeServlet#init(ServletConfig)*/

public void init(ServletConfig config) throwsServletException {//super.init(config);

ServletContext sc =config.getServletContext();

String log4jLocation= config.getInitParameter("log4j-properties-location");try{

System.out

.println("当前路径默认=======" + System.getProperty("user.dir"));

System.out.println("---配置文件路径---" +log4jLocation);

logger= Logger.getLogger(Log4JInitServlet.class);

PropertyConfigurator

.configure("C:/myTestJava/Log4JWeb/WebRoot/ini/log4j.properties");int i = 2;while ((i--) != 0) {

logger.info("Info: this is info;");

logger.debug("Debug: this is Debug;");

logger.error("Error: this is Error;");

}

System.out.println("------------------Init success");

}catch(Exception e) {

System.out.println("Warning:there is an error:" +e.getMessage());

}

}/***@seeHttpServlet#doGet(HttpServletRequest request, HttpServletResponse

* response)*/

protected voiddoGet(HttpServletRequest request,

HttpServletResponse response)throwsServletException, IOException {//TODO Auto-generated method stub

}/***@seeHttpServlet#doPost(HttpServletRequest request, HttpServletResponse

* response)*/

protected voiddoPost(HttpServletRequest request,

HttpServletResponse response)throwsServletException, IOException {//TODO Auto-generated method stub

}

}

在init中使用了XML中配置的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值