spring 还要了解视图解析

1. 原始Servlet的返回视图:PrintWriter或者ServletOutputStream输出!

response.setContentType("text/plain;charset=UTF-8")
response.setContentType("text/json;charset=UTF-8")
response.setContentType("text/html;charset=UTF-8")
如果你要返回html就用response.setContentType("text/html;charset=UTF-8"),默认就是它。
然后
PrintWriter out = response.getWriter();
out.println("<html><head></head><body>");
out.println("你的html内容</body></html>");
out.flush();
out.close();

2. JSP:JSTL(Java标准标签库)

在springMVC中一般用

InternalResourceViewResolver

作为JSP的视图解析器

JSP的出现也是为了解决原始servlet返回HTML视图的麻烦!

JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。

其实JSP是一个精心设计的Servlet。只是因为Servlet在返回视图的时候,要手动写如上的代码,比较麻烦。所以JSP已一个可视化,简单方便的形式、模板化servlet返回视图的响应。经过JSP解析后还是变成Servlet(同1的原始方法是一样的)!总的来说,JSP 网页就是用另一种方式来编写 Servlet 而不用成为 Java 编程高手。

JSP 处理
以下步骤表明了 Web 服务器是如何使用JSP来创建网页的:
1)就像其他普通的网页一样,您的浏览器发送一个 HTTP 请求给服务器。
2)Web 服务器识别出这是一个对 JSP 网页的请求,并且将该请求传递给 JSP 引擎。通过使用 URL或者 .jsp 文件来完成。
3)JSP 引擎从磁盘中载入 JSP 文件,然后将它们转化为 Servlet。这种转化只是简单地将所有模板文本改用 println() 语句,并且将所有的 JSP 元素转化成 Java 代码。
4)JSP 引擎将 Servlet 编译成可执行类,并且将原始请求传递给 Servlet 引擎。
5)Web 服务器的某组件将会调用 Servlet 引擎,然后载入并执行 Servlet 类。在执行过程中,Servlet 产生 HTML 格式的输出并将其内嵌于 HTTP response 中上交给 Web 服务器。
6)Web 服务器以静态 HTML 网页的形式将 HTTP response 返回到您的浏览器中。
7)最终,Web 浏览器处理 HTTP response 中动态产生的HTML网页,就好像在处理静态网页一样。

 

3. thymeleaf的解决方案:取缔JSP。提供一个超级模板
https://www.thymeleaf.org

4. freemarker

5. APache tittle 视图解析方案

6. 还有如下好多的视图解析器

 

视图解析器描述
BeanNameViewResolver在Spring的application context中的bean中查找与视图名称相同id
ContentNegotiatingViewResolver委托给一个或多个人视图解析器,而选择哪一个取决于请求的内容类型
FreeMarkerViewResolver查找一个基于FreeMarker的模版
InternalResourceViewResolver在web应用程序的war文件中查找视图
JasperReportsViewResolver解析为JasperReport报表文件
ResourceBundleViewResolver根据属性文件(properties file)查找View实现
TilesViewResolver通过Tiles模版定义的模版解析,模版的名称与视图名称相同
UrlBasedViewResolver根据视图名称直接解析,当视图名称与物理视图名称匹配时
VelocityLayoutViewResolver解析为从不同的Velocity模版组成的Velocity布局
VelocityViewResolver解析为Velocity模版
XmlViewResolver根据XML文件(/WEB_INF/views.xml)中声明的View实现进行解析,与BeanNameViewResolver类似
XsltViewResolver基于XSLT视图解析

 

转载于:https://my.oschina.net/u/3697586/blog/1834507

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值