课程地址
http://ss.sysu.edu.cn/~pml/dct/7_intro_j2ee.html
实验内容
简述 J2EE 全称,产业目标。
J2EE(Java 2 Platform Enterprise Edition)是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如”编写一次、随处运行”的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。
简述 J2EE 的四层模型, MVC 属于哪一层? JPA 属于哪一层?
- 客户层,基于浏览器人机交互与编程(HTML,CSS,JavaScript)
- web层,MVC(业务数据对象,页面视图模板,输入/输出与页面流程控制)
- 业务层,业务逻辑处理,JPA
- 数据库层,持久化数据访问与ORM
解释 MVC 由哪些组件构成, 每个组件的职责是什么?
Model(模型)
模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。
View(视图)
视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。
Controller(控制器)
控制器对用户的输入作出反应。它创建并设置模型。
简单描述 web 应用 MVC 模型的执行过程。
- HTTP 请求由 web 应用服务器分配( web.xml )给框架提供的 Servlet 或 Filter;
- 框架将请求按应用程序 注解元数据(annatation)或 如struts.xml 将请求分派给 URI 对应的处理程序
- 控制器处理请求输入、验证、从业务组件(层)获取数据、装配数据模型,最后,选择合适输出模板
- 模板读取数据,产生输出流
(!)在 Good Thymes Virtual Grocery 代码基础上修改程序为 my_mvc,使它能支持 @Controller 等元数据(仅 @Controller 与 部分 URI Mapping)。
实验 Serving Web Content with Spring MVC 后,通过 reference 文档描述 post 方法的参数有哪些 Java annotation 实现 URI Mapping
可以使用
@RequestMapping(path = "/example", method = RequestMethod.POST)
或
@RequestMapping(method = RequestMethod.POST)
也能使用
@PostMapping("/example")
或@PostMapping
控制器能否返回 void? 如能,编程要注意哪些问题。可参考 spring MVC helloworld for jetty 的代码。
可以。注意异常处理,响应的类型,状态设置。
@RequestMapping("/hello") public void sayHello(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); response.setStatus(HttpServletResponse.SC_OK); response.getWriter().println("<h1>Hello ,!!!!</h1>"); response.getWriter().println("session=" + request.getSession(true).getId()); }
在 servlet 3.0 规范中,应用程序启动必须是那个接口的实现。
WebApplicationInitializer 接口实现类加载 DispatcherServlet
(!)下载 IBM 文章中源代码,并给出 pom.xml 用它体验 JPA 的方便性和优越性。 代码 jpa_test。
研究 IBM jpa 程序以及 Spring Thyme Seed Starter Manager 等程序的包结构,说明用户 J2EE 编程时需要关注哪些部件(包)。