java发布servlet接口_<JavaWeb>Servlet接口与实现类(上)

Servlet生命周期

我们如果想要在Servlet处理逻辑之前做一些准备工作,或者在Servlet实例被销毁之前做一些资源回收工作,就需要依靠Servlet的生命周期来进行准确的定位。

Servlet的生命周期主要包括三个阶段:初始化,请求处理,销毁。

初始化

对应init方法,默认在客户端第一次请求Servlet时,对应的Servlet实例才会被Servlet容器创建。这个时候,Servlet容器就会回调Servlet init方法,但在特殊情况下,比如在配置文件中,配置了loadonSetup元素,就会在容器启动时被加载。

public void init() throws ServletException {

// TODO Auto-generated method stub

super.init();

}

请求处理

对应service方法,在这个方法里会根据HTTP请求的类型,将不同的HTTP请求转发给不同的Servlet方法进行处理,比如,doGet方法和doPost方法。

protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {

// TODO Auto-generated method stub

System.out.println("service method");

super.service(arg0, arg1);

}

销毁

对应destroy方法,在Servlet实例被销毁之前,由Servlet容器进行回调。主要是做资源的回收和清理。

public void destroy() {

// TODO Auto-generated method stub

super.destroy();

}

doGet方法和doPost方法的区别

传输方式

GET方法通过HTTP header进行传输,POST方法通过HTTP body进行传输。

GET方法传输数据需要在URL中体现出来,数据长度受限于URL的长度(2-8k),POST方法不需要。

设计目的

GET方法是为了从服务器端获取数据,而POST方法则是为了向服务器端发送数据。

安全性

POST方法安全性更高一些,因为它并不暴漏数据。

配置参数

ServletConfig对象提供了Servlet配置信息的管理功能。我们可以把需要使用的配置信息写在对应的文件中,然后通过ServletConfig对象读取对应的配置信息。

在web.xml文件中,填写对应的配置信息。

//只是添加到含有servlet-class和servlet-name的标签中

参数名

参数值

然后,我们就可以从java文件中获取对应的配置信息了。

ServletConfig config = this.getServletConfig();

String v1 = config.getInitParameter("name1");

特性总结:

Servlet在初始化过程中,参数将被封装到ServletConfig对象中,每个Servlet支持设置一个或多个对象,并且以Servlet为单位,并不全局共享。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解析代码 Model(模型) 创建一个名为Order的Java,表示点菜信息: java public class Order { private String dish; public String getDish() { return dish; } public void setDish(String dish) { this.dish = dish; } } View(视图) 创建一个名为OrderView的JSP页面,用于展示点菜页面和结果: jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>点菜系统</title> </head> <body> <h1>点菜系统</h1> <form action="order" method="post"> <label for="dish">请选择菜品:</label> <select name="dish" id="dish"> <option value="鱼香肉丝">鱼香肉丝</option> <option value="宫保鸡丁">宫保鸡丁</option> <option value="红烧肉">红烧肉</option> </select> <input type="submit" value="提交"> </form> <h2>${message}</h2> </body> </html> Controller(控制器) 创建一个名为OrderController的Servlet,用于处理点菜系统的逻辑: java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class OrderController extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理GET请求,显示点菜页面 request.getRequestDispatcher("/order.jsp").forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 处理POST请求,处理点菜逻辑 Order order = new Order(); order.setDish(request.getParameter("dish")); // 在这里可以将点菜信息保存到数据库或进行其他业务处理 request.setAttribute("message", "您点了:" + order.getDish()); request.getRequestDispatcher("/order.jsp").forward(request, response); } } 在web.xml文件中配置Servlet: xml <servlet> <servlet-name>OrderController</servlet-name> <servlet-class>OrderController</servlet-class> </servlet> <servlet-mapping> <servlet-name>OrderController</servlet-name> <url-pattern>/order</url-pattern> </servlet-mapping>
最新发布
06-07

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值