-
2021-02-26 13:18:07
作为一个教师,个人的一点经验:
1.新项目没有必要再用jsp,确实是有点过时
3.jsp应该怎么学:
虽然是一种老技术,但是jsp特点鲜明,对于理解jee程序的流程有非常大的帮助,比如
和网页夹杂在一起虽然不利于维护,但初学者只要运行就可以看到效果,你让一个初学者后台servlet输出json,前台再js解析,学习曲线未免太陡峭,另外比起servlet输出网页的痛苦,jsp简直是神物,注意我说的是对初学者。初学者最重要的是建立对于这个技术的兴趣。教学过程中最怕就是学生失去兴趣,而兴趣是最好的老师。
隐含对象直接使用,在jsp中就可以操作request,session等jee程序必备的组件,有助于理解控制器页面跳转和数据的传递(json数据最后不都是通过response写的吗)
在此基础上,servlet的相关知识可以直接上手(本身就是一回事)
再进一步将jsp中所有逻辑代码转换到servlet,jsp页面只需要展示数据,辅之以jstl实现页面无脚本,这对于理解前后端概念很有帮助。
按照这个思路,对同一个项目反复迭代,不断引入新技术和新理念,学生才有可能通过内在的动力跟着往下学。
我现在用一个网上书店作为贯穿案例,第一步使用jsp实现基本逻辑,然后重构把jsp中所有业务逻辑代码挪到servlet,再重构,让jsp实现无脚本,继而用html,json和ajax替换jsp(此时servlet仍保留路由功能),再将路由功能转至前台,最后解决跨域等问题后,前台代码集体转移到另一台服务器,实习前后分离。
整个过程并不复杂,学习时间也不长,花这点时间熟悉这一技术绝对是事半功倍的。
更多相关内容 -
用Thymeleaf替换JSP
2019-01-21 19:05:01用Thymeleaf替换JSP展开全文用Thymeleaf替换JSP
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
Thymeleaf是一个Java库。它是XML、XHTML、HTML5等格式的模板引擎,可以用于Web项目和非Web项目。Thymeleaf很适合作为Web应用的视图的业务逻辑层,还可以在离线环境下处理XML文件。
Thymeleaf可以作为Spring MVC的可选模块,也可以直接作为JSP的替代。Thymeleaf提供了两个版本,分别是Standard方言与SpringStandard(Spring MVC 3)方言,并且可以通过创建自定义方言进行扩展。
Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。
Thymelea模板引擎与Velocity、FreeMarker相似。
代码例子:
<table> <thead> <tr> <th th:text="#{msgs.headers.name}">Name</th> <th th:text="#{msgs.headers.price}">Price</th> </tr> </thead> <tbody> <tr th:each="prod : ${allProducts}"> <td th:text="${prod.name}">Oranges</td> <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td> </tr> </tbody></table>
今天(2013.11.4日),Thymeleaf发布了最新的2.1.0版。
下载地址:https://sourceforge.net/projects/thymeleaf/files/thymeleaf/2.1.0.RELEASE/
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow
-
什么是jsp,它有什么用+jsp的本质是什么
2020-11-30 13:49:40jsp的全称是:java servlet pages,...我们来尝试用jsp回传html页面来试试 我们先来创建一个jsp文件 如图,在web下面我们可以创建一个jsp文件 jsp文件,如下和servlet打印出来的html页面一样,但是这个方便简洁了很多展开全文什么是jsp,它有什么用?
jsp的全称是:java servlet pages,java的服务器页面
主要作用:替代servlet程序回传html页面的数据,因为servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都极高如下:
这是servlet回传html页面的方法,超级麻烦


虽然也能打印成功
我们来尝试用jsp回传html页面来试试
我们先来创建一个jsp文件
如图,在web下面我们可以创建一个jsp文件
jsp文件,如下
和servlet打印出来的html页面一样,但是这个方便简洁了很多jsp小结
- 创建一个jsp文件
(需要在在web目录下)
- jsp 如何访问:
jsp 页面和 html 页面一样,都是存放在 web 目录下。访问也跟访问 html 页面一样
比如:在 web 目录下有如下的文件:
web 目录
a.html 页面 访问地址是=======>>>>>> http://ip:port/工程路径/a.html
b.jsp 页面 访问地址是=======>>>>>> http://ip:port/工程路径/b.jsp

jsp的本质是什么
jsp页面本质上是一个servlet程序
当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 jsp 页面翻译成为一个 java 源文件。并且对它进行编译成为.class 字节码程序。我们打开 java 源文件可以发现发现其里面的内容是:
我们看原代码可以发现,HttpJspBase 类,它直接地继承了 HttpServlet 类,即,jsp 翻译出来的 java 类,它间接了继 承了 HttpServlet 类,也就是说,翻译出来的是一个 Servlet 程序
如下:
通过翻译的 java 源代码我们就可以得到结果:jsp 就是 Servlet 程序我们去观察翻译出来的 Servlet 程序的源代码,可以发现。其底层实现,也是通过输出流。把 html 页面数据回传给客户端如下:

- 创建一个jsp文件
-
Thymeleaf(替代JSP)
2020-12-27 13:10:50Thymeleaf 是一个跟 FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下特点: 动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,无网络显示静态内容,有网络用后台得到数据...展开全文Thymeleaf
1.简介
Thymeleaf 是一个跟 FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下特点:
- 动静结合:Thymeleaf 在有网络和无网络的环境下皆可运行,无网络显示静态内容,有网络用后台得到数据替换静态内容
- 与SpringBoot完美整合,springboot默认整合thymeleaf
2.编写接口
2.1 service层
@Service public class UserService { //在通用mapper文章中已经定义好了的类 @Autowired private UserMapper userMapper; public List<User> findAll() { return userMapper.selectAll(); } }2.2 controller层
@Controller public class UserController { @Autowired private UserService userService; @RequestMapping("/all") public String findAll(ModelMap map) { List<User> all = userService.findAll(); map.addAttribute("all",all); //跳转classpath:/templates/users.html return "user"; } }3.引入启动器
3.1依赖文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>3.2自动生成ThymeleafProperties
- 指定静态资源路径为"classpath:/templates/"
- 指定后缀为html
public class ThymeleafProperties { private static final Charset DEFAULT_ENCODING; public static final String DEFAULT_PREFIX = "classpath:/templates/"; public static final String DEFAULT_SUFFIX = ".html"; private boolean checkTemplate = true; private boolean checkTemplateLocation = true; private String prefix = "classpath:/templates/"; private String suffix = ".html"; private String mode = "HTML"; private Charset encoding; private boolean cache; private Integer templateResolverOrder; private String[] viewNames; private String[] excludedViewNames; private boolean enableSpringElCompiler; private boolean enabled; private final ThymeleafProperties.Servlet servlet; private final ThymeleafProperties.Reactive reactive; public ThymeleafProperties() { this.encoding = DEFAULT_ENCODING; this.cache = true; this.enabled = true; this.servlet = new ThymeleafProperties.Servlet(); this.reactive = new ThymeleafProperties.Reactive(); }3.3创建静态资源到/templates
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <span style="">欢迎光临!</span> <hr/> <table> <tr> <th>序号</th> <th>id</th> <th>姓名</th> <th>用户名</th> <th>年龄</th> <th>性别</th> <th>生日</th> <th>备注</th> <th>操作</th> </tr> </table> </body> </html>3.4.启动主程序测试
4.修改html命名空间
- 把html 的名称空间,改成: xmlns:th=“http://www.thymeleaf.org” 会有语法提示
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>首页</title> <style type="text/css"> table {border-collapse: collapse; font-size: 14px; width: 80%; margin: auto} table, th, td {border: 1px solid darkslategray;padding: 10px} </style> </head> <body> <div style="text-align: center"> <span style="color: darkslategray; font-size: 30px">欢迎光临!</span> <hr/> <table class="list"> <tr> <th>id</th> <th>姓名</th> <th>用户名</th> <th>年龄</th> <th>性别</th> <th>生日</th> <th>备注</th> <th>操作</th> </tr> </table> </div> </body> </html>5.案例
<!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>首页</title> <style type="text/css"> table {border-collapse: collapse; font-size: 14px; width: 80%; margin: auto} table, th, td {border: 1px solid darkslategray;padding: 10px} </style> </head> <body> <div style="text-align: center"> <span style="color: darkslategray; font-size: 30px">欢迎光临!</span> <hr/> <table class="list"> <tr> <th>id</th> <th>姓名</th> <th>用户名</th> <th>年龄</th> <th>性别</th> <th>生日</th> <th>备注</th> <th>操作</th> </tr> <tr th:each="user : ${all}"> <td th:text="${user.id}">123</td> <td th:text="${user.name}">zhangsan</td> <td th:text="${user.userName}">zhangsan</td> <td th:text="${user.age}">22</td> <td th:text="${user.sex} == 1 ? '男': '女'">男</td> <td th:text="${#dates.format(user.birthday,'yyyy-MM-dd')}">1998-01-01</td> <td th:text="${user.note}">1</td> <td> <a href="">删除</a> <a href="">修改</a> <a href="">审核</a> </td> </tr> </table> </div> </body> </html>- 静态显示静态内容

- 动态显示数据库内容

6.缓存
Thymeleaf会在第一次对模板解析之后进行缓存,极大的提高了并发处理能力。但是这给我们开发带来了不便,修改页面后并不会立刻看到效果,我们开发阶段可以关掉缓存使用:
# 开发阶段关闭thymeleaf的模板缓存 spring.thymeleaf.cache=false
-
使用FreeMarker替换JSP的10个理由
2020-12-22 21:07:35我曾经也是,但是几年前我抛弃了它们,并且再也没有用过JSP了。JSP 是个很好的概念,但是它却剥夺了 web 开发的乐趣。 对我而言,这些都是小事,比如无法在页面模板上使用单独的文件header.jsp 和 footer.jsp,不能... -
JSP开发之Spring方法注入之替换方法实现
2020-10-19 13:13:42主要介绍了JSP开发之Spring方法注入之替换方法实现的相关资料,需要的朋友可以参考下 -
JSP结合js实现img中src更新请求的方法
2020-10-23 11:43:45主要介绍了JSP结合js实现img中src更新请求的方法,以实例形式较为详细的分析了前台页面js控制及后台功能action部分实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下 -
JSP中的字符替换函数 str_replace() 实现!
2021-01-08 21:51:33//// StrReplace.java//package forum;import java.util.*;/*** Title:* Description:* Copyright: Copyright (c) 2001* Company:* @author* @version 1.0*/public class StrReplace {...new StringBuffer();String -
jsp中为什么用不了Java里的方法_JSP第一篇:JSP介绍、工作原理、生命周期、语法、指令(修订版)...
2020-11-21 10:54:43为什么需要JSPJSP是为了简化Servlet的工作出现的替代品,Servlet输出HTML非常困难,JSP就是替代Servlet输出HTML的。简单使用一下JSP在idea下生成一个JSP,我们来看一下JSP长什么样子看起来就像一个HTML页面,前... -
JSP中的字符替换函数str_replace()实现
2021-03-15 14:14:46//// StrReplace.java//...http://www.gaodaima.com/41545.htmljsP中的字符替换函数str_replace()实现import java.util.*;/*** Title:* Description:* Copyright: Copyright (c) 2001* Company:* @author* @version... -
EL表达式(用于替换jsp中的表达式脚本)(java web)
2021-08-04 15:25:36EL 表达式的作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。 EL 表达式的格式是:${表达式} EL 表达式在输出 ... -
Servlet+MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud)
2021-06-22 15:52:14Servlet+MySql+Web(HTML+CSS+JSP技术+EL表达式)通过IDEA来实现数据库的增删改查(crud))-附件资源 -
JSP到底是什么
2021-10-18 15:50:17JSP到底是什么 JSP与PHP、ASP、ASP.NET等语言类似,都运行在服务端。通常返回给客户端的就是一个HTML文件,因此只要有浏览器就能查看JSP页面。 JSP使用JSP标签在HTML网页中插入Java代码,标签通常以<%开头,以%&... -
记录一次替换tomcat中替换jsp无效问题
2018-07-18 16:22:24当时发现安装jar包中缺少了相应的jsp。然后直接将相应的jsp传给测试的同事。放到tomcat中对应的位置后启动仍然不好使。 解决方法: 删除这个路径下对应的项目文件夹。/apache-tomcat-8.0.35/work/Catalina/... -
JSP学习经验小结分享
2021-01-08 20:18:51用JSP完全可替代它。 一、JSP工作原理 在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。 JSP引擎先把该JSP文件转换... -
用按钮调用jsp代码怎么写?_jsp技巧
2021-04-18 13:33:26} //如果点击按钮为自动换行 if(e.getActionCommand()==”自动换行”) { //判断当前状态 if(changelineItem.isSelected()==true) { //设置滚动条状态 jsp.setHorizontalScrollBarPolicy(jsp.HORIZONTAL_SCROLLBAR_... -
为什么说jsp被替代了_您说什么:最喜欢的Windows资源管理器替代品
2020-10-01 21:49:18为什么说jsp被替代了Earlier this week we asked you to share your favorite alternatives to Window’s native file explorer. Now we’re back to highlight your suggestions, tips, and tricks. 本周早些时候,... -
字符 替换器 JS JSP EXE等字符替换
2012-09-28 15:07:49本人用过 字符替换最好3个软件。 首先第一是 应用到传奇MIR 替换,非常好用 以后开发过程当中 某些XP 搜索不支持文本内容查找。 现在 WIN7支持 文本内容包含关键字查找也不健全。特意再次发布此工具。 3款软件优点... -
jsp中page指令用法详解
2021-01-08 20:43:52属性值两边的双引号可以替换为单引号,但引号标记不能完全省略。如果要在属性值中使用引号,则要在它们之前添加反斜杠,’ 使用 \’,” 使用 \” <% directive attribute=value %> <% directive ... -
【JSP笔记02】JSP注释、脚本、表达式、JSP三大指令、JSP七大动作的介绍及使用
2022-04-18 12:44:12这篇文章主要介绍JSP中的脚本、注释、表达式等知识点,已经如何在JSP页面中使用Java代码编写程序。 往期文章 目录 一、JSP的注释 注释,我们都知道是啥了,就是解释说明你的代码是干啥的,注释是不影响程序的... -
学生管理系统(JSP+Servlet+MyBatis)
2018-12-25 22:31:57该资源为学生管理系统JSP+Servlet+DAO的升级版本,该版本加入了Maven的支持,使用了MyBatis替代了之前DAO的部分,为学习MyBatis框架提供了相关的代码辅助。 -
struts2+Velocity替换jsp项目源码
2014-08-08 14:36:41struts2结合velocity做为表现层的整合框架,详细演示了velocity的标签用法,不需要数据库支持,Action层模拟数据。 -
jsp介绍
2021-10-11 16:14:10使用JSP技术替换原有的Servlet版View,可以更方便的编辑出更好看的网页。 Servlet实现的View在进行动态页面开发时存在的问题: 1. 开发繁琐,必须实现Servlet接口,重写service方法。 2. 一旦修改,必须要重新编译、... -
jsp网页计数器,刷新不重复计数,图片显示次数
2020-04-24 15:58:45jsp网页计数器,使用session和application刷新不重复计数,数字替换成图片,没有附加图片,图片自己网上下载,代码里有相应的逻辑处理。不要直接抄,很粗劣,给大家做个参考,祝学习顺利! -
JSP中的编译指令和动作指令的两点区别
2021-01-20 14:19:092、编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本,是JSP脚本标准化写法 您可能感兴趣的文章:JSP常见的三个编译指令page、include、taglibJSP编译指令page、include详解JSP指令元素(page指令... -
SSM框架之关于使用JSP作为视图展示问题解决方案
2021-06-13 01:53:10搜索热词JSP作为视图层展示数据,已经有很长一段时间了,不管是在校学习还是...用图描述就是如下:通过上述两张图,足以知道,不管是JSP还是Servlet最后都是以HTML的形式在前端显示。关于JSP和Servlet学习教程可以... -
xmljava系统源码-jsp-jstl-engine:javajsp&jstl模板引擎
2021-06-06 00:19:11可插拔的模块设计,模板加载方式,el引擎,运行模式均可通过不同的实现替换。 多种方式自定义标签,原生的java代码自定义标签或者直接通过页面自定义标签。 支持自定义el转码,不需要对el表达式的输出做html转码,... -
JSP修改替换不生效
2018-09-26 17:55:04需要调整JSP页面的一个内容,需要把它注释掉,但是修改后,Linux服务器替换后没生效。 页面关系 需要修改的页面是B,使用 include 从A页面引入。 <%@ include file="/rdf/view/B.jsp"%> ...