如何编写第一个servlet程序
1个回答
展开全部
(1) 选择File | New | Dynamic Web Project命令,出现New Dynamic Web Project对话框,在Project name文本框中输入FirstServlet。
(2) 确定Target runtime为刚才设置的Apache Tomcat v7.0,单击Finish按钮。
(3) 展开新建项目中的Java Resources节点,在src上右击,从弹出的快捷菜单中选择New | Servlet命令。
(4) 弹出Create Servlet对话框,在Java package文本框中输入cc.openhome,在Class name文本框中输入HelloServlet,单击Next按钮。
(5) 选择URL mappings中的HelloServlet,单击右边的Edit按钮,将Pattern改为/hello.view后,单击OK按钮。
(6) 单击Create Servlet对话框中的Finish按钮。
接着就可以编写第唯轮坦一个Servlet的内容了。在创建的HelloServlet.java中编辑以下内容:
package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello.view") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); out.println("<html>"); out.println("<head>"); out.println("<title>Hello Servlet<指桐/title>"); out.println("</head>"); out.println("<body>"); out.println("<h1> Hello! " + name + " !</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } }
范例中继承了HttpServletu,并重新定义了doGet()方法v,当浏览器GET方法发送请求时,会调用此方法。
在doGet()方法上可以看到HttpServletRequest与HttpServletResponse两个参数,容器接收到客户端的HTTP请求后,会收集HTTP请求中的信息,并分别桐薯创建代表请求与响应的Java对象,而后在调用doGet()时将这两个对象当作参数传入。可以从HttpServletRequest对象中取得有关HTTP请求相关信息,在范例中是通过HttpServletRequest的getParameter()并指定请求参数名称,来取得用户发送的请求参数值y。
范例中的@Override是JDK5之后所提供的标注(Annotation),作用是协助检查是否正确地重新定义了父类中继承下来的某个方法。就编写Servlet而言,没有@Override并没有影响。
由于HttpServletResponse对象代表对客户端的响应,因此可以通过其setContentType()设置正确的内容类型w。范例中是告知浏览器,返回的响应要以text/html解析,而采用的字符编码是UTF-8。接着再使用getWriter()方法取得代表响应输出的PrintWriter对象x,通过PrintWriter的println()方法来对浏览器输出响应的文字信息,在范例中是输出HTML以及根据用户名说声Hello! z。
在Servlet的Java代码中,以字符串输出HTML,当然是很笨的行为。别担心,在谈到JSP时,会有个有趣的练习,让你将Servlet转为JSP,从中明了Servlet与JSP的对应。
接着要来运行Servlet,你会对这个Servlet作请求,同时附上请求参数。请按照以下步骤进行:
(1) 在HelloServlet.java上右击,从弹出的快捷菜单中选择Run As | Run on Server命令。
(2) 在弹出的Run on Server对话框中,确定Server runtime environment为先前设置的Apache Tomcat v7.0,单击Finish按钮。
(3) 在Tomcat启动后,会出现内嵌于Eclipse的浏览器,将地址栏设置为:
http://localhost:8080/FirstServlet/hello.view?name=caterpillar
(2) 确定Target runtime为刚才设置的Apache Tomcat v7.0,单击Finish按钮。
(3) 展开新建项目中的Java Resources节点,在src上右击,从弹出的快捷菜单中选择New | Servlet命令。
(4) 弹出Create Servlet对话框,在Java package文本框中输入cc.openhome,在Class name文本框中输入HelloServlet,单击Next按钮。
(5) 选择URL mappings中的HelloServlet,单击右边的Edit按钮,将Pattern改为/hello.view后,单击OK按钮。
(6) 单击Create Servlet对话框中的Finish按钮。
接着就可以编写第唯轮坦一个Servlet的内容了。在创建的HelloServlet.java中编辑以下内容:
package cc.openhome; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/hello.view") public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String name = request.getParameter("name"); out.println("<html>"); out.println("<head>"); out.println("<title>Hello Servlet<指桐/title>"); out.println("</head>"); out.println("<body>"); out.println("<h1> Hello! " + name + " !</h1>"); out.println("</body>"); out.println("</html>"); out.close(); } }
范例中继承了HttpServletu,并重新定义了doGet()方法v,当浏览器GET方法发送请求时,会调用此方法。
在doGet()方法上可以看到HttpServletRequest与HttpServletResponse两个参数,容器接收到客户端的HTTP请求后,会收集HTTP请求中的信息,并分别桐薯创建代表请求与响应的Java对象,而后在调用doGet()时将这两个对象当作参数传入。可以从HttpServletRequest对象中取得有关HTTP请求相关信息,在范例中是通过HttpServletRequest的getParameter()并指定请求参数名称,来取得用户发送的请求参数值y。
范例中的@Override是JDK5之后所提供的标注(Annotation),作用是协助检查是否正确地重新定义了父类中继承下来的某个方法。就编写Servlet而言,没有@Override并没有影响。
由于HttpServletResponse对象代表对客户端的响应,因此可以通过其setContentType()设置正确的内容类型w。范例中是告知浏览器,返回的响应要以text/html解析,而采用的字符编码是UTF-8。接着再使用getWriter()方法取得代表响应输出的PrintWriter对象x,通过PrintWriter的println()方法来对浏览器输出响应的文字信息,在范例中是输出HTML以及根据用户名说声Hello! z。
在Servlet的Java代码中,以字符串输出HTML,当然是很笨的行为。别担心,在谈到JSP时,会有个有趣的练习,让你将Servlet转为JSP,从中明了Servlet与JSP的对应。
接着要来运行Servlet,你会对这个Servlet作请求,同时附上请求参数。请按照以下步骤进行:
(1) 在HelloServlet.java上右击,从弹出的快捷菜单中选择Run As | Run on Server命令。
(2) 在弹出的Run on Server对话框中,确定Server runtime environment为先前设置的Apache Tomcat v7.0,单击Finish按钮。
(3) 在Tomcat启动后,会出现内嵌于Eclipse的浏览器,将地址栏设置为:
http://localhost:8080/FirstServlet/hello.view?name=caterpillar
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询