码迷,mamicode.com
首页 > 其他好文 > 详细

Servlet基础

时间:2020-06-26 20:18:14      阅读:52      评论:0      收藏:0      [点我收藏+]

标签:常用方法   ram   response   mapping   如何   创建项目   blog   ext   dog   

首先,在写这个之前,要了解到,无框架javaweb在后端现实应用场景中,基本不会用到,所以我并不打算研究javaweb特别高深的技术,而是记录javaweb中各控件的原理,为之后使用框架打打基础。

1.创建第一个servlet

首先是创建一个j2ee项目,导入servlet-api.jar包。
在idea中new project,选择web application即可创建项目

在src创建一个继承了HttpServlet的Servlet,叫HelloServlet,代码如下

import java.io.IOException;
import java.util.Date;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response){

try {
response.getWriter().println("<h1>Hello Servlet!</h1>");
response.getWriter().println(new Date().toLocaleString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

这就是一个实现了doGet方法的Servlet

然后在项目的web/WEB-INF目录下创建 web.xml,然后把这个servlet和/hello地址映射起来
如下所示

<?xml version="1.0" encoding="UTF-8"?>
<web-app>

<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>HelloServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>

</web-app>

一般<servlet> 标签下的 <servlet-name>
与 <servlet-mapping> 标签下的 <servlet-name> 必须一样
<servlet-name>与<servlet-class>一般人为写成一致的形式

在WEB-INF下创建classes目录,把项目的class文件输出由原来的 bin 设置到 web/WEB-INF/classes下

启动项目,就可以在项目对应的/hello路径下看到Servlet的效果了。

2.servlet能干什么

继承HTTPServlet的servlet,会继承三个方法,
doGet,doPost,service
doGet,doPost很好理解,就是Get方法和Post方法如何处理request,response
在执行doGet()或者doPost()之前,都会先执行service(),service方法是用来判断,到底该调用doGet()还是doPost()

servlet中的常用方法:
request.getParameter 获取request中的参数
response.getWriter 获取response中的writer,写入html信息。

request.getRequestDispatcher 请求转发
response.sendRedirect 重定向
关于请求转发和重定向的区别可以看博文
https://blog.csdn.net/h2503652646/article/details/83661347
请求转发是一个请求一次响应,而重定向是两次请求两次响应。

3.servlet生命周期

Servlet的生命周期由五部分组成 实例化,初始化,提供服务,销毁,被回收
实例化:当对应的servlet被调用的时候,该Servlet就会被实例化,Servlet是单实例的,只会构造一次,第二次调用时候不再构造
初始化:同实例化,也只会构造一次
上面两个可以通过在servlet中实现构造方法和init方法去观察对应结果
提供服务:那就是调用servlet中的service方法呗
销毁:关闭tomcat的时候就进行销毁
回收:垃圾回收gc

Servlet基础

标签:常用方法   ram   response   mapping   如何   创建项目   blog   ext   dog   

原文地址:https://www.cnblogs.com/xueyong1021/p/13195874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!