java ee自动生成编码

如果您只需要在EE Web模块中处理少量请求URI,那么在Servlet代码中生成自己HTML响应可能比使用完整的模板库更容易。 作为示例的一部分,我尝试了一个非常简单的Java DSL,该Java DSL在编写自己的Serlvet时生成html输出。 代码如下:

package zemian.servlet3example.web;import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/index")
public class IndexServlet extends HtmlWriterServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HtmlWriter html = createHtmlWriter(req, resp);String message = getMessage(req, html);html.header().h(1, "Welcome to Servlet 3 Example").p("Let's explore Java Servlet 3.x Features.").p(message).ul(html.link("Index", "/index"),html.link("Hello", "/hello"),html.link("Form", "/form"),html.link("Sys Props (Password needed)", "/sys-props")).footer();}
}

我写了一个基本的HtmlWriterServlet类,该类提供了一种方法,您可以在其中获取HtmlWriter构建器的实例。 包装类似HTML的生成器的好处是,它更易于阅读,并有助于生成正确的格式标签。 例如,“ ul”和“ table”接受Java List或Map对象,并生成正确的html标签。

这是另一个示例,我如何用几行代码生成Java System Properties页面的表视图:

package zemian.servlet3example.web;import java.io.IOException;
import java.util.TreeMap;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/sys-props")
public class SysPropsServlet extends HtmlWriterServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HtmlWriter html = createHtmlWriter(req, resp);TreeMap sysProps = new TreeMap(System.getProperties());html.header().h(1, "Java System Properties").table(sysProps).footer();}
}

简单的HtmlWriter类提供了一些html生成器方法,它可以帮助生成带有相对上下文路径HTML链接。 您可以轻松地对其进行进一步改进,以帮助生成更多HTML代码,例如表单标签等。

另外,请注意,ServletResponse对象使您可以完全控制编写自定义响应,因此,不仅限于重现HTML。 您可以编写二进制输出,例如PDF甚至MP3文件。 您只需要控制Response Writer以及将返回的正确的相应内容mime类型和大小即可。

  • 您可以在servlet3-example中获得这些代码

翻译自: https://www.javacodegeeks.com/2015/01/ee-serlvet-3-generating-html-output-in-servlet.html

java ee自动生成编码

java ee自动生成编码_EE Servlet 3:在Servlet中生成HTML输出相关推荐

  1. java ee无法安装_为什么要导入javax.servlet。*; 安装Java EE仍无法解决 面向Java EE开发人员的Eclipse...

    本问题已经有最佳答案,请猛点这里访问. 我要使用的开源项目需要导入: import javax.servlet.*; import javax.servlet.http.*; 据我所知,这些库是Jav ...

  2. java ee 的使用方法_EE对话的NICE方法

    java ee 的使用方法 Introduction 介绍 Here is an interesting hierarchy of learning.  Let's identify four gro ...

  3. 用python生成九九乘法表的指令_Python中生成九九乘法表的方法有哪几种?

    九九乘法表是我们计算的基础,在Python中可以生成九九乘法表.大致有三种方法:列表推导式法.for循环法.while嵌套循环法.具体使用代码请看本文. 方法一.列表推导式法for i in rang ...

  4. java redis 生成唯一id_Redis在集群环境中生成唯一ID

    概述 设计目标:每秒最大生成10万个ID,ID单调递增且唯一.Reidis可以不需要持久化ID. 要求:集群时钟不能倒退. 总体思路:集群中每个节点预生成生成ID:然后与redis的已经存在的ID做比 ...

  5. python 生成q版头像_在python中生成花式头像的最简单方法

    python 生成q版头像 This article is originally published in my personal blog. 本文最初发表在我的个人博客中 . This is a r ...

  6. mysql随机生成密码存到哪里_在MySQL中生成随机密码的方法

    cat /dev/urandom | LC_ALL=C tr -dc "[:alnum:]" | fold -w 10 |head -10 Si1N9kUyuZ ddzsRXFgx ...

  7. java ee jsp_EE JSP:Servlet的反向外套

    java ee jsp 仅当页面数量少或需要对生成的内容(二进制PDF等)进行精细控制时,才可以从Servlet生成HTML. 对于大多数应用程序,输出将是HTML,我们需要一种更好的方法来完成此操作 ...

  8. 【转】JAVA EE 6 规范综述

    目录 1.JAVA EE规范综述 2.JAVA EE整体架构 3.JAVA EE规范的角色划分图 4.JAVA EE平台依赖的J2SE API 5.JAVA EE平台的版本变迁 6.JAVA EE平台 ...

  9. java ee maven_真正释放Maven和Java EE的强大功能

    java ee maven 如果野心和愿景太复杂而无法使用,则它们可能会淘汰伟大的解决方案. 尽管Maven和Java EE是在整个Java行业中都已建立的良好技术,但是使用它们并使用其作者打算使用的 ...

最新文章

  1. u盘被分区之后怎么合并linux,U盘格式化做启动盘后从16GB变成200MB的解决方法
  2. subprime debt
  3. 关于OAuth 协议中刷新令牌存活时间的讨论
  4. android Notification 的使用
  5. 做了极度危险的事情各种奔忙
  6. plpgsql语句的兼容性
  7. Elasticsearch 安装随笔
  8. Atitit uke消防防火规范 attilax总结
  9. leetcode解题思路分析(一百二十八)1053 - 1078 题
  10. 浅谈用户全生命周期管理
  11. JAVA并发编程:悲观锁与乐观锁
  12. python从1 2 3 4 1000_Python语句序列“a=(1,2,3,None,(),[]);print(len(a))”的运行结果是()。 (2.0分)_学小易找答案...
  13. JavaScript设计模式 -发布订阅者模式
  14. SylixOS更新记录
  15. 托雷多——伯爵死于旧日皇城(我们的两牙游
  16. LeetCode刷题100道,让你滚瓜烂熟拿下SQL
  17. Apache 与 php的配置
  18. SeaJS入门教程系列之使用SeaJS(二)
  19. Excel中VBA实现文件夹表格合并和数据提取
  20. H323——460NAT穿透相关

热门文章

  1. 【结论】游戏(jzoj 5536)
  2. 【单调栈】奶牛的歌声(jzoj 1256)
  3. 【拓扑排序】【DP】奖金(ssl 1325)
  4. P2414 NOI2011阿狸的打字机 [AC自动机,dfs序]
  5. Hadoop生态hive(二)安装
  6. 面试官问:为什么 Java 线程没有 Running 状态?我懵了
  7. 使用org.apache.commons.io.FileUtils,IOUtils工具类操作文件
  8. Spring Boot核心配置
  9. 计划得一步一步实施,题库首先是第一步!
  10. 3班的第二次模拟面试