网站查询域名ip,cms网站搭建,广州企业网站排名,wordpress 网络公司hello2详解 1.GreetingServlet.java#xff08;显示问候页面表单#xff09; 此servlet重写该doGet方法#xff0c;实现GETHTTP方法。servlet显示一个简单的HTML问候表单#xff0c;其提交按钮就像hello1指定其操作的响应页面一样。以下摘录以WebServlet注释开头#xff0…hello2详解 1.GreetingServlet.java显示问候页面表单 此servlet重写该doGet方法实现GETHTTP方法。servlet显示一个简单的HTML问候表单其提交按钮就像hello1指定其操作的响应页面一样。以下摘录以WebServlet注释开头注释指定相对于上下文根的URL模式 1 package javaeetutorial.hello2;2 3 import java.io.IOException; //IOException表示发生某种I/O异常的信号。此类是由失败或中断的I/O操作产生的一般异常类。4 import java.io.PrintWriter; //io常用类包装流PrintWriter除了可以包装字节流OutputStream之外还能包装字符流Writer。5 import javax.servlet.RequestDispatcher; //定义一个对象该对象接收来自客户端的请求并将它们发送到服务器上的任何资源例如servletHTML文件或JSP文件。6 import javax.servlet.ServletException; //定义servlet在遇到困难时可以抛出的一般异常。7 import javax.servlet.annotation.WebServlet; //web服务中的在Glassfish下lib中的包。8 import javax.servlet.http.HttpServlet; //提供要进行子类化的抽象类以创建适用于Web站点的HTTP Servlet。9 import javax.servlet.http.HttpServletRequest; //扩展ServletRequest接口以提供HTTP Servlet的请求信息。
10 import javax.servlet.http.HttpServletResponse; //扩展ServletResponse接口以在发送响应时提供特定于HTTP的功能。
11
12 /**
13 * This is a simple example of an HTTP Servlet. It responds to the GET method of
14 * the HTTP protocol.
15 */
16 WebServlet(/greeting) //设置标注webserverlet容器会自动读取里面的信息。此标注告诉容器如果请求的UEL是“/greeting”则由GreetingServelet的实例提供服务。
17 public class GreetingServlet extends HttpServlet { //创建一个公有类GreetingServlet继承父类HttpServlet
18
19 Override //覆盖标注意思是下面覆盖HttpServlet中的doGet方法
20 public void doGet(HttpServletRequest request, //参数—req- HttpServletRequest包含客户端对servlet的请求的对象
21 HttpServletResponse response) //参数resp- HttpServletResponse包含servlet发送给客户端的响应的对象
22 throws ServletException, IOException { //抛出java.io.IOException - 如果在servlet处理GET请求时检测到输入或输出错误ServletException - 如果无法处理GET请求
23
24 response.setContentType(text/html); //发送给客户端的文章类型
25 response.setBufferSize(8192); //发送给客户端的响应对象的缓冲大小是8192
26 try (PrintWriter out response.getWriter()) { //获取PrintWriter流用来在客户端输出
27 out.println(html lang\en\ //以下是html标记语言用来显示页面
28 headtitleServlet Hello/title/head);
29
30 // then write the data of the response
31 out.println(body bgcolor\#ffffff\
32 img src\resources/images/duke.waving.gif\
33 alt\Duke waving his hand\
34 form method\get\
35 h2Hello, my name is Duke. Whats yours?/h2
36 input title\My name is: \ type\text\
37 name\username\ size\25\/
38 p/p
39 input type\submit\ value\Submit\/
40 input type\reset\ value\Reset\/
41 /form);
42
43 String username request.getParameter(username); //定义一个字符串username并对它赋从request中拿出名字叫userName的值
44 if (username ! null username.length() 0) { //如果username不为空并且长度大于0
45 RequestDispatcher dispatcher
46 getServletContext().getRequestDispatcher(/response); //获取jsp上下文里边存储了各变量的信息值,把一个命令发送到浏览器让浏览器对指定的URL提出请求此处的URL只能使用绝对路径
47
48 if (dispatcher ! null) {
49 dispatcher.include(request, response); //如果接收到的客户端的请求不为空时记录保留request和response以后不能再修改response里表示状态的信息
50 }
51 } 52 out.println(/body/html); 53 } 54 } 55 56 Override //覆盖 57 public String getServletInfo() { //getServletInfo()方法是一个可选的方法它提供有关servlet的信息如作者、版本、版权 58 return The Hello servlet says hello.; //返回说明这个servelet的信息是says hello 59 } 60 } 详细使用方法来源于API文档protected void doGetHttpServletRequest reqHttpServletResponse resp抛出ServletExceptionjava.io.IOException 由服务器调用通过service方法以允许servlet处理GET请求。 重写此方法以支持GET请求也会自动支持HTTP HEAD请求。HEAD请求是一个GET请求它在响应中不返回任何主体只返回请求头字段。 覆盖此方法时请读取请求数据编写响应头获取响应的编写器或输出流对象最后编写响应数据。最好包含内容类型和编码。使用PrintWriter对象返回响应时请在访问PrintWriter对象之前设置内容类型 。 servlet容器必须在提交响应之前写入标头因为在HTTP中标头必须在响应主体之前发送。 在可能的情况下设置Content-Length标头使用 ServletResponse.setContentLength(int)方法以允许servlet容器使用持久连接将其响应返回给客户端从而提高性能。如果整个响应适合响应缓冲区则自动设置内容长度。 使用HTTP 1.1分块编码这意味着响应具有Transfer-Encoding标头时请不要设置Content-Length标头。 GET方法应该是安全的即没有任何副作用用户对此负责。例如大多数表单查询没有副作用。如果客户端请求旨在更改存储的数据则该请求应使用其他一些HTTP方法。 GET方法也应该是幂等的这意味着它可以安全地重复。有时使方法安全也使其成为幂等的。例如重复查询既安全又幂等但在线购买产品或修改数据既不安全也不是幂等。 如果请求格式不正确则doGet 返回HTTP“错误请求”消息。 参数req- HttpServletRequest包含客户端对servlet的请求的对象resp- HttpServletResponse包含servlet发送给客户端的响应的对象抛出java.io.IOException - 如果在servlet处理GET请求时检测到输入或输出错误ServletException - 如果无法处理GET请求2.ResponseServlet.java响应页面 此servlet也覆盖该doGet方法仅显示响应。以下摘录以WebServlet 注释开头注释指定相对于上下文根的URL模式 1 import java.io.IOException;2 import java.io.PrintWriter;3 import javax.servlet.ServletException;4 import javax.servlet.annotation.WebServlet;5 import javax.servlet.http.HttpServlet;6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.http.HttpServletResponse; 8 9 /** 10 * This is a simple example of an HTTP Servlet. It responds to the GET 11 * method of the HTTP protocol. 12 */ 13 WebServlet(/response) 14 public class ResponseServlet extends HttpServlet { 15 16 Override 17 public void doGet(HttpServletRequest request, 18 HttpServletResponse response) 19 throws ServletException, IOException { 20 try (PrintWriter out response.getWriter()) { 21 String username request.getParameter(username); //同上 22 if (username ! null username.length() 0) { //如果username不为空且长度大于0 23 out.println(h2Hello, username !/h2); //打印Hello username 24 } 25 } 26 } 27 28 Override 29 public String getServletInfo() { 30 return The Response servlet says hello.; 31 32 } 33 } 转载于:https://www.cnblogs.com/TomFord/p/10736228.html