通过前面一篇文章的介绍(搞着搞着对web project是不是有点迷糊?先关注几个问题-CSDN博客)大家对于servlet作为中间层接收请求和反馈响应有了概念上的认知,接下来通过一个栗子来加深一下理解,还是基于前面的jsp项目(Eclipse是如何创建web project项目的?-CSDN博客)继续操作,不过这篇只说一下如何创建servlet和运行访问servlet。
1、创建servlet类
输入包名和servlet类名。
此时生成的代码如下:
package com.servlet;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** Servlet implementation class TestServlet*/
@WebServlet(description = "This is my first Servlet", urlPatterns = { "/TestServlet" })
public class TestServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** Default constructor. */public TestServlet() {// TODO Auto-generated constructor stub}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubresponse.getWriter().append("Served at: ").append(request.getContextPath());}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubdoGet(request, response);}}
我这里用的是openjdk,提示javax.servlet下面的包找不到,也就是jdk中缺少这样的class类,那么可以通过添加外部jar包到项目里面,直接导入tomcat下的jar包,如下所示:
其中代码里面的方法,在前一篇已经讲到。
doGet方处理传递过来的请求,HttpServletResponse对象的getWriter( ) 方法,得到的是PrintWriter对象,其用来向客户端回送字符数据,返回到客户端的字符被打印到页面上。
2、运行servlet
此时可以直接运行这个servlet(文件内右键-run as on server),弹出页面:
注意看地址栏,是直接请求了contex下的servlet,正常情况下,并不这么写,而是要做一个servlet拦截器,这个我们下一篇结合上一篇的jsp页面展开。