Servlet中使用RequestDispatcher调派请求--forware

简介:

顺便演示了MVC的作法,以后hello.view可以移交到jsp中处理。

而MODEL和CONTROL,VIEW就实现了分享。

 

 

HelloModel.java:

复制代码
package cc.openhome;

import java.util.*;

public class HelloModel {
    private Map<String, String> messages = 
            new HashMap<String, String>();
    public HelloModel() {
        messages.put("caterpillar", "Hello");
        messages.put("Justin", "Welcome");
        messages.put("momor", "Hi");
    }
    
    public String doHello(String user) {
        String message = messages.get(user);
        System.out.println(message + "@@@@@@@@@@@@@@@@@");
        return message + ", " + user + "!";
    }

}
复制代码

HelloController.java:

复制代码
package cc.openhome;

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 HelloController
 */
@WebServlet("/hello.do")
public class HelloController extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private HelloModel model = new HelloModel();
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloController() {
        super();
        // 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 stub
        String name = request.getParameter("user");
        String message = model.doHello(name);
        System.out.println(message + "$$$$$$$$$$");
        request.setAttribute("message", message);
        request.getRequestDispatcher("hello.view").forward(request, response);
    }

}
复制代码

 

HelloView.java:

复制代码
package cc.openhome;

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 HelloView
 */
@WebServlet("/hello.view")
public class HelloView extends HttpServlet {
    private static final long serialVersionUID = 1L;
    private String htmlTemplate = 
            "<html>"
            + "    <head>"
            + "        <meta http-equiv='Content-Type'"
            + "            content='text/html; charset=UTF-8'>"
            + "        <title>%s</title>"
            + "    </head>"
            + "    <body>"
            + "        <h1>%s</h1>"
            + "    </body>"
            + "</html>";
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloView() {
        super();
        // 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 stub
        String user = request.getParameter("user");
        String message = (String) request.getAttribute("message");
        System.out.println(user + message + "##################");
        String html = String.format(htmlTemplate, user, message);
        response.getWriter().print(html);
    }


}
复制代码

目录
相关文章
|
6月前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
59 14
|
6月前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
58 8
|
2月前
|
JavaScript Java 容器
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
本文简要回顾了Servlet过滤器Filter的概念和使用,通过实例演示了如何创建过滤器以过滤请求字符编码,并解释了在web.xml中配置过滤器时使用`/`、`/*`和`/**`的区别。
servlet过滤器Filter简要回顾-过滤请求字符编码,/和/*和/**的区别
|
6月前
Servlet 教程 之 Servlet 客户端 HTTP 请求 1
Servlet教程讲解了客户端HTTP请求,包括各种重要头信息:Accept(定义可处理的MIME类型)、Accept-Charset(指定字符集)、Accept-Encoding(处理的编码类型)、Accept-Language(首选语言)、Authorization(身份验证)、Connection(是否支持持久连接)、Content-Length(POST数据大小)、Cookie(返回cookies)、Host(指定URL的主机和端口)、If-Modified-Since(检查页面更新)、If-Unmodified-Since(条件性操作)。
38 0
|
缓存 Java 数据库
Servlet 处理请求的原理
Servlet 处理请求的原理
198 0
|
6月前
|
Web App开发 前端开发 JavaScript
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式
72 0
|
Java 容器
Jsp之四 servlet请求响应
Jsp之四 servlet请求响应
72 0
|
3月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
35 3
|
3月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
34 1
|
3月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
54 0
下一篇
无影云桌面