Servlet基础
来源:互联网 发布:java 棋牌类游戏开发 编辑:程序博客网 时间:2024/05/29 20:00
什么是servlet?
很多初步学习java web开发的学习者会疑惑,是先有servlet,还是先有jsp?究竟什么是servlet?在这里可以十分负责的告诉大家,先有servlet,为什么这么说呢?相信Java web开发学习者在接触jsp时都已经明白了jsp的运行过程是:
Jsp—>翻译成java文件(servlet)à编译成class文件 然后运行
所以可以确切的肯定servlet其实就是jsp的前身。
那究竟什么是servlet呢?一个Servlet其实可以看作是一个部署在服务器上的小程序,一个servlet就是一个Java类,并且可以通过“发出指令——响应请求”的模式来访问这个程序。
创建servlet的方法
Servlet主要类、接口的结构如下图所示:
可以看出Servlet的创建共有三个方法:
方法一:实现servlet接口
第一步,创建一个Java web项目编写一个普通的Java类,并实现servlet接口
第二步,修改service方法(service方法中可以向浏览器输出信息)
代码如下:
public class MyServletimplements 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基础----Hello Servlet!!!
- Servlet基础
- Servlet基础
- Servlet基础
- servlet基础
- Servlet 基础
- Servlet基础
- servlet基础
- Servlet 基础
- Servlet基础
- Servlet基础
- servlet基础
- Servlet基础
- Servlet ---- 基础
- servlet基础
- Servlet基础
- servlet基础
- Servlet基础
- 证明自己没有消失
- android之View坐标系(view获取自身坐标的方法和点击事件中坐标的获取)
- 排序算法(三)冒泡排序
- 使用 Python 读写 csv 文件
- NodeJs的核心模块
- Servlet基础
- 有趣的Scheme:lat? 函数的实现
- 欢迎使用CSDN-markdown编辑器
- Nessus6.10.2安装与使用
- Struts 2三种方式实现Ajax
- VUE
- 解决ubuntu下定时任务不执行问题
- javascript 队列(queue)算法与说明
- [LeetCode] Two Sum