Hello2

对java tutorial-examples中hlleo2核心代码分析
1、在hello2中有两个.java源文件分别是GreetingServlet.Java和ResponseServlet.jva文件主要对以下核心代码做主要分析。

复制代码
1 String username = request.getParameter(“username”); //获取表单数据
2 if (username != null && username.length() > 0) {
3 RequestDispatcher dispatcher = //定义一个dispatcher用来接收客户端的请求,并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)
4 getServletContext().getRequestDispatcher("/response"); //获取上下文内容并且返回以路径/response的响应
5
6 if (dispatcher != null) {
7 dispatcher.include(request, response); //如果接收的客户端请求不为空则,则包含响应资源(jsp页面 html servlet)内容
8 }
9 }
复制代码
要理解上面代码我们必须先要理解以下概念

(1)getParameter

String javax.servlet.ServletRequest.getParameter(String name)
以String形式返回请求参数的值,如果参数不存在,则返回null。请求参数是随请求一起发送的额外信息。对于HTTP servlet,参数包含在查询字符串或发布的表单数据中。只有在确定参数只有一个值时才应使用此方法

(2)RequestDispatcher

javax.servlet.RequestDispatcher 
定义一个对象,该对象接收来自客户端的请求,并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)。 servlet容器创建RequestDispatcher对象,该对象用作位于特定路径或由特定名称给出的服务器资源的包装器。此接口旨在包装servlet,但servlet容器可以创建RequestDispatcher对象来包装任何类型的资源。

(3)getServletContext()

ServletContext javax.servlet.GenericServlet.getServletContext()
提供该方法是为了方便起见。它从servlet的ServletConfig对象获取上下文。

返回:ServletContext由init方法传递给此servlet的ServletContext对象

(4)getRequestDispatcher()

RequestDispatcher javax.servlet.ServletContext.getRequestDispatcher(String path)
返回一个RequestDispatcher对象,该对象充当位于给定路径的资源的包装器。 RequestDispatcher对象可用于将请求转发到资源或将资源包含在响应中。资源可以是动态的也可以是静态的。路径名必须以 / 开头,并且被解释为相对于当前上下文根。使用getContext为外部上下文中的资源获取RequestDispatcher。如果ServletContext无法返回RequestDispatcher,则此方法返回null。

(5) include(request, response)

void javax.servlet.RequestDispatcher.include(ServletRequest request, ServletResponse response) throws ServletException, IOException 
包含响应中的资源(servlet,JSP页面,HTML文件)的内容。从本质上讲,这种方法可以实现程序化服务器端包含。 ServletResponse对象的路径元素和参数与调用者保持不变。包含的servlet无法更改响应状态代码或设置标头;任何改变的尝试都会被忽略。请求和响应参数必须是传递给调用servlet的服务方法的相同对象,或者是包装它们的ServletRequestWrapper或ServletResponseWrapper类的子类。此方法将给定请求的调度程序类型设置为DispatcherType.INCLUDE。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值