关于在JSP中写入Java代码的困惑

白起 发布于 2011/12/10 21:59
阅读 14K+
收藏 0

说实话,刚学Java时就有人对我说,不要把Java代码写入jsp,说比方和美工合作之类的,人家看不懂啊等等理由.以后在做项目的时候我也确实老老实实的遵守这条规定,但是后来想想有的时候直接在jsp中做查询有什么不对?比方说一个新闻查询,一个页面中是前20条的新闻标题,点连接然后查询,这个查询的过程一般是去servlet,然后servlet再去jsp页面,然后servlet和对应的jsp页面命名又有了麻烦.如果我们直接把查询写在jsp中,把这个Java代码块放在页面的最上面,让与你合作的美工不要去看那段代码,直接关注下面的就行,而实际上美工关注的应该是CSS,HTML都不用关注,HTML是一般给程序员写就行,让程序员用HTML搭网页结构;我也不明白维护起来有什么麻烦?一个是用<%%>包含的Java代码块,一个html的标签,2个根本不搭嘎,顶多就是jsp代码长点,现在的开发工具难道没有代码折叠功能吗?代码出现异常的部分可以request到其他页面,如果有没有捕捉到的错误,控制台和jsp页面都会显示错误的位置;有人说不安全,难道过滤器控制不好吗?我觉的本来一个并不复杂的系统,在这么折腾下,搞的非常复杂,因为在很多实际情况下我们去实现一些编程思想是非常不方便的.而我觉的MVC的展现并不一定要将HTML+CSS定义为展现,HTML纳入程序员的管辖,CSS提供给美工人员,同样实现分离.要说混乱,我倒是认为所有在HTML文件中写CSS代码的都是不规范的,CSS因单独分离出来.然后世界岂不是整齐了许多?不用把请求转过来转过去的.老实说如果jsp不插入java代码,我们还要jsp干嘛?不如直接html,就算是el表达式,jstl标签,那些功能也是非常有限的,而el表达式和jstl之类的技术用js,ajax之类的去代替的话jsp相比html毫无优势可言.或许实现一个东西有各种不同的技术和方法.而且我觉的将servlet做的事写在jsp里面代码量根本不多,因为我们的数据层都是封装好了的,只需要调用接口就行.欢迎各位指正和讨论.

加载中
0
谢小呆
谢小呆

汗,朋友,我简单说两句别闲烦,这样问题的通常是没有人回答的,没有值得讨论的价值,我只是奇怪会人问这个问题。

我也问你几个问题哈!

在最后面说数据层都封装好了是只在java bean中写的吗?

 

 

假设oschina 首页,他需要显示

 

1.用户登陆的信息

 

2.综合资讯

 

3.软件更新资讯

 

3.代码分享{

 

     1.最新分享代码

 

     2.本周热门代码

 

 

4.讨论区 

 

太多了。。。 不一一列举,这时候你都把查询语句写在jsp里还很过瘾吗?

那么在其他地方同样会有相同的查询,只是表现形式不一样,这时候你还能用jsp include 吗?

你怎么达到重用的呢?

 

jsp通常只做if判断和循环而已,不用有业务逻辑和很多数据。

0
景愿
景愿

想法不错,玩玩可以,但完全不适合系统。

你可以看看jsp自定义标签,可以给你启发

不过你最后会放弃的    

0
白起
白起

引用来自“谢宝龙”的答案

汗,朋友,我简单说两句别闲烦,这样问题的通常是没有人回答的,没有值得讨论的价值,我只是奇怪会人问这个问题。

我也问你几个问题哈!

在最后面说数据层都封装好了是只在java bean中写的吗?

 

 

假设oschina 首页,他需要显示

 

1.用户登陆的信息

 

2.综合资讯

 

3.软件更新资讯

 

3.代码分享{

 

     1.最新分享代码

 

     2.本周热门代码

 

 

4.讨论区 

 

太多了。。。 不一一列举,这时候你都把查询语句写在jsp里还很过瘾吗?

那么在其他地方同样会有相同的查询,只是表现形式不一样,这时候你还能用jsp include 吗?

你怎么达到重用的呢?

 

jsp通常只做if判断和循环而已,不用有业务逻辑和很多数据。

sql不会写jsp的啊,所有对象的操作方法都定义接口,而且业务层的处理也提供接口和实现方法,jsp中写的Java代码只是去调用那些接口而已,肯定不会牵扯到数据层的处理,我说在jsp写Java代码不是说就在jsp里写变量方法什么的了,而是某个页面需要那种数据,就调用工厂的方法去得到数据,至于怎么得到数据的当然实在另外的类里面写
0
功夫panda
功夫panda
写多了就会明白的。
0
白起
白起
真是写多了才有这样的疑问,以前一直不在jsp中插入Java代码的,现在想想觉的不如直接新建个html得了,所有jsp用到的东西都可以有相应的js或者ajax技术代替,用jsp就是为了合理的在里面写Java代码的
0
Keijack
Keijack

我只能说,明显写得不够多,或者想得不够多,你自己写着玩就可以,但是千万不要在团队那么写,别人会被你坑死的。

0
布耀布耀德

MVC的设计模式晓得吧,在页面上写逻辑代码才麻烦好嘛....为什么会问这种问题,如果你这种写法来的话,首先乱,第二如果有个页面的功能跟这个页面一样,你复制过去?还是分层各司其职好一些吧,并且我刚开始学的时候像你这样写过一个小栗子,最后感觉真是太麻烦了,并且合理分层有利于解耦,各司其职开发维护起来才比较方便吧

返回顶部
顶部