java web编程学习7

学习了一段时间的servlet(两个星期左右),得到一个结论,早期的java web程序员真苦逼。只有servlet真是很麻烦的事情,还好有jsp。

《jsp & servlet学习笔记》中写着 servlet和jsp是一件事情的两面。jsp说到底就是servlet,tomcat或其他的服务器会将jsp翻译成servlet。这玩意在php里不就是facebook的hiphop嘛。看来很多东西都是一样的。有时候我们不得不去做一些看似费力不讨好的工作。比如我们已经有servlet,为什么还要jsp。我们已经有c++了,为什么还要php。有了jsp和php我们还要翻译成servlet和c++。做这些工作无非是为了在开发效率和性能之间找个平衡。去请一批c++工程师做web,老板肯定要哭死。让程序员只能用servlet开发网站,他也得烦死。可是php这样的胶水语言性能又不好,逼格又低,所以会有hiphop。同理,所以会有servlet和jsp这样的双胞胎。

现在开始学习jsp,@红薯说已经多年不写jsp了,都是用velocity,搞得我都没什么动力学了,可没办法,谁叫我是新手呢,,,,

有了之前的servlet的学习,学习jsp可以当成玩大家来找茬。找的第一个东西就是jsp里的内置对象:

out对应PrintWriter;

request对应HttpServletRequest;

response对应HttpServletResponse;

config对应ServletConfig;

application对应ServletContext;

session对应HttpSession;

pageContext对应PageContext;

execption对应一个异常,用于jsp错误页面;

page对应this;

从上面这些玩意,我们可以得出个经验,那就是我们可以把一个jsp就当成一个servlet,也就说一个java文件。也就是说换一种类似于网页的方式写java而已,那么找的第二个茬就是java和jsp的对应关系:

在java,需要导入包的时候,我们用import。在jsp里,我们用< %@page import=“xxx.xxx” %>

在java,我们把需要输出在网页的东西用out.println()输出,在jsp里,我们同样可以用out.println,但需要加上<%%>,好处是在servlet里,我们必须写在doget/post里,在jsp,想写哪就写哪,这样就完成了网页和代码混合(有种别学我大php)。jsp还提供了一种简洁的方式<%=xxxx%>,用=代替了out.println()

在java里,我们可以再servlet添加一些自定义的函数和变量,在jsp里我们可以再<%! %>这样的标识符里写变量和函数。

在tomcat里有个work\Catalina的目录,里面放了我们写的jsp编译后的java文件,我们可以看到我们的jsp翻译之后的servlet,这就是性能为开发效率让步的例子,所以我们第一次访问jsp会比较慢,这是因为它在编译。

在上面这些东西里,我们之前的servlet经验都可以搬到jsp里,注意一些细节就ok了。

但是如果jsp这是完成了代码和html混合的话,那么效率也就提高了一些,jsp还提高了一些servlet没有的技术支持(既然都已经向开发效率低头,那还扭捏什么,还不低个痛快)更好的提高开发效率,接下来就好好学学新的一些技术:

javabean:想让from表单直接映射到对象里吗

el 这是不是也算个模板引擎

jstl 不太清楚是什么东西

你可能感兴趣的:(java web编程学习7)