简单servlet

本文介绍Servlet的基本概念,包括如何创建和配置Servlet,以及其生命周期和初始化参数的设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.直接继承自HttpServlet
2.在doPost(doGet)方法中写入相应和序代码
3.配置web.xml文件
Servlet本身也是一个java类,所以必须存放在web-inf/classes之下
eg:
package whc.java.test;
import java.io*;
//HttpServlet属于javax.servlet包下
import java.servlet.*;
//HttpServletRequest 、HttpServletResponse存放在javax.servlet.http包下
import.javax.servlet.http*;
public class TestServlet extends HttpServlet
{
public void doGet(HttpServletRequst req,HttpServletResponse resp) throws IOException,ServletException
{

printWriter out =resp.getWrite();
{
out.println("hello world");
out.close();
}
}
}

jsp程序的功能与Servlet一致,也就意味着Servlet程序同样可以被外部所访问,就必须有一个地址,只能通过web映射解决。
修改web.xml文件,可以配置映射地址。
//表示要使用一个Servlet
<servlet>
     //web.xml文件内部起做用的名字
  <servlet-name>whc</servlet-name>
     //Servlet程序所在的包.类名称
     <servlet-class>whc.java.test.TestServlet</servlet-class>
</servlet>
//Servlet映射地址
<servlet-mapping>
// 在web.xml文件内部起作用的名字,此名字与上面的一致
      <servlet-name>whc</servlet-name>
//具体的映射路径,前面必须有一个/
      <url-pattern>/index</url-pattern>
</servlet-mapping>
注:只要是web.xml文件修改,则必须重新启动服务器。
注意:
  1.在编译Servlet时,有时会出现找不到servlet包的问题,这是因为servlet为jdk的扩展包,所以在使用时需要指定classpath,具体方法:
  -set classpath=%Tomcat%/common/lib/servlet.jar
       2.如果不指定classpath,可以采用如下方法:
  -将servlet.jar文件拷贝到jdk安装路径下的jre/lib/ext下

doGet方法:娄客户端发送http请求使用get方法时就调用doGet()方法。http的缺醒方法就是GET.
doPost方法:当客户端发送http请求使用post方法时就调用doPost()方法。

基本的Servlet框架:

package whc.java.test;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet
{
//初始化
  public void init(ServletConfig config )throws ServletException{}
       //表示处理get请示
  public void doGet(HttpServletRequest req,HttpServletResponse resq)throws IOException,ServletException
{}
      public ovid doPost()throws IOException,ServletException
{}
      public void destroy()
{}
}
Servlet生命周期:
1.初始化(1次)
  默认情况下:在第一次使用Servlet程序时初始化,也可以在容器启动时初始化Servlet程序,通过配置web.xml文件:<load-on-startup>1(值大优先级高)</load-on-startup>
2.服务(doGet、doPost),直接输入地址就是get请求
 调用多次
3.销毁(1次)
 服务器关闭
 此Servlet长时间不使用

生命周期补充:
  关于Servlet初始化方法有两种
  init():当不需要传递初始化参数时使用
  init(ServletConfig config):如果有此种初始化方法,则上面的无参数初始化方法无效
  当需要传递参数的时候使用些操作

在Servlet中解决路径的唯一原则:在地址来中拼奏出完整路径
Servlet接口                  jsp内置对象
HttpServletRequest                                                   request
HttpServletResponse                                                 response
ServletConfig                                                              config
HttpSession                                                                Session,通过request对象取得
ServletContext                                                           application
                                                                                  取得两种方式(对应两种初始化方法)
                        1.无参数初始化方法/不写,直接取得
                        2.如果针对有参构造(init(ServletConfig))则必须通过config对象取得

------------------

package cn.mldn.lxh.servlet ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;

public class InitParameterServlet extends HttpServlet
{
// 初始化
// 要取得初始化参数,必须使用以下初始化方法
public void init(ServletConfig config) throws ServletException
{
   // config对象中有取得初始化参数的方法:getInitParameter("参数名称")
   String ref1 = config.getInitParameter("ref1") ;
   String ref2 = config.getInitParameter("ref2") ;
   String dd = config.getInitParameter("DBDRIVER") ;

   System.out.println("REF1 => "+ref1) ;
   System.out.println("REF2 => "+ref2) ;
   System.out.println("DBDRIVER => "+dd) ;
}

// 表示处理get请求
public void doGet(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
   // System.out.println("** Servlet doGet处理 ...") ;
}
// 处理post请求
public void doPost(HttpServletRequest req,HttpServletResponse resp) throws IOException,ServletException
{
   // System.out.println("** Servlet doPost处理 ...") ;
}
// 销毁
public void destroy()
{
   // System.out.println("** Servlet 销毁 ...") ;
}
};

/*
<servlet>
<servlet-name>param</servlet-name>
<servlet-class>cn.mldn.lxh.servlet.InitParameterServlet</servlet-class>
<load-on-startup>0</load-on-startup>
<init-param>
   <param-name>ref1</param-name>
   <param-value>MLDN</param-value>
</init-param>
<init-param>
   <param-name>ref2</param-name>
   <param-value>LiXingHua</param-value>
</init-param>
<init-param>
   <param-name>DBDRIVER</param-name>
   <param-value>oracle.jdbc.driver.OracleDriver</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>param</servlet-name>
<url-pattern>/ipar</url-pattern>
</servlet-mapping>

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值