Servlet基础
2017-09-10 23:14
176 查看
什么是servlet?
很多初步学习java web开发的学习者会疑惑,是先有servlet,还是先有jsp?究竟什么是servlet?在这里可以十分负责的告诉大家,先有servlet,为什么这么说呢?相信Javaweb开发学习者在接触jsp时都已经明白了jsp的运行过程是:
Jsp—>翻译成java文件(servlet)à编译成class文件
然后运行
所以可以确切的肯定servlet其实就是jsp的前身。
那究竟什么是servlet呢?一个Servlet其实可以看作是一个部署在服务器上的小程序,一个servlet就是一个Java类,并且可以通过“发出指令——响应请求”的模式来访问这个程序。
创建servlet的方法
Servlet主要类、接口的结构如下图所示:可以看出Servlet的创建共有三个方法:
方法一:实现servlet接口
第一步,创建一个Java web项目编写一个普通的Java类,并实现servlet接口
第二步,修改service方法(service方法中可以向浏览器输出信息)
代码如下:
public class[/b] MyServlet
implements Servlet{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}
@Override
public void init(ServletConfig config)
throws ServletException {
// TODO Auto-generated method stub
}
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out=res.getWriter();
out.print("This is my first Servlet");
}
}
Servlet接口定义的五个方法,功能如下:
1.init(),初始化servlet对象,完成一些初始化工作。
它是由servlet容器控制的,该方法只能被调用一次,初始化过程如下:
2.service(),接受客户端请求对象,执行业务操作,利用响应对象响应客户端请求。
3.destroy(),当容器监测到一个servlet从服务中被移除时,容器调用该方法,释放资源。
4.getServletConfig(),ServletConfig是容器向servlet传递参数的载体。
5.getServletInfo(),获取servlet相关信息。
第三步,在web.xml中配置servlet信息
<servlet>
<servlet-name>test1</servlet-name> <!--
同一个servlet配置信息
servlet-name中的的名字要保持一致 -->
<servlet-class>test.MyServlet</servlet-class> <!--
servlet的实际路径 -->
</servlet>
<servlet-mapping>
<servlet-name>test1</servlet-name>
<url-pattern>/test1</url-pattern> <!--
servlet的实际访问路径 路径前的“ / ”不要省略,不然要报错-->
</servlet-mapping>
第四步,将项目部署到服务器中并访问http://http://localhost:8080/test/test1
注:test是项目路径
test1是servlet的访问路径
方法二:继承GenericServlet类
第一步,创建一个Java web项目编写一个普通的Java类,并继承GenericServlet类
第二步,修改service方法(service方法中可以向浏览器输出信息)
代码如下:
public class MyServlet extends GenericServlet{
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out=res.getWriter();
out.print("This is my first Servlet");
}
}
GenericServlet抽象类
为了简化serlvet的编写,在javax.servlet包中提供了一个抽象类GenericServlet,它给出了除service()方法以外的简单实现。
GenericServlet定义了一个通用的,不依赖具体协议的Servlet,它实现了Servlet接口和ServletConfig接口。
第三步,配置web.xml,部署项目并访问
方法三:继承HttpServlet抽象类
第一步,创建一个Java web项目编写一个普通的Java类,并继承HttpServlet类
第二步,修改service方法(service方法中可以向浏览器输出信息)
代码如下:
public class MyServlet extends HttpServlet{
@Override
public void service(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
PrintWriter out=res.getWriter();
out.print("This is my first Servlet");
}
}
HttpServlet抽象类
HttpServlet主要是应用于HTTP协议的请求和响应,为了快速开发HTTP协议的serlvet,sun提供了一个继承自GenericServlet的抽象类HttpServlet,用于创建适合Web站点的HTTP
Servlet。
HttpServlet中有一个私有service方法。它实现了Servlet接口的service方法,将ServletResponse对象和ServletRequest对象转化成httpServletResponse对象和HttpservletRequest对象,然后再调用私有方法service。它根据request获取Http
method(get、post等)的名称,根据http
method调用不同的方法执行操作。
第三步,配置web.xml,部署项目并访问
相关文章推荐
- Servlet基础 、 HTTP协议
- 10.JavaWeb基础 Servlet
- Servlet框架基础和生命周期(结合源码)、destroy()的思考
- servlet相关笔记(web.xml基础配置)
- Servlet基础 ----- Servlet的多线程同步问题
- Jsp学习之Servlet基础
- java基础78 Servlet的生命周期
- Servlet 基础
- Java Web开发基础(1)-Servlet
- Servlet的基础结构
- HttpServletResponse&&HttpServletRequest基础
- Servlet和Android网络交互基础(3)
- Servlet基础知识(二)——web.xml文件的作用
- jsp Servlet基础入门学习篇 十二、脚本元素、指令和预定义变量
- Web基础之Servlet深入
- servlet基础
- title: Servlet基础(一):servlet的生命周期
- Servlet开发(1)-----基础及MVC设计模式
- Servlet基础(三) Servlet的多线程同步问题
- Servlet基础