Redian新闻
>
大家都是怎么自学J2EE的
avatar
大家都是怎么自学J2EE的# Java - 爪哇娇娃
J*B
1
自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?
avatar
w*s
2
有本书叫
JBoss at Work: A Practical Guide
http://shop.oreilly.com/product/9780596007348.do
内容有些老了,不过可以了解j2ee

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
g*g
3
Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
有用。
可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
然后慢慢理解里面jsp, servlet这些东西。

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
b*y
4

Sun的guide非常枯燥

【在 g*****g 的大作中提到】
: Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
: 有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
: 东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
: 有用。
: 可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
: 然后慢慢理解里面jsp, servlet这些东西。
:
: 吧?

avatar
z*e
5
那要看什么样的hello world了
如果是tomcat上jsp的hello world
eclipse的向导一分钟就搞定了,只要eclipse能找到tomcat
估计楼主连eclipse都还没搞定吧,现在说spring和jboss什么都太早了
先搞定eclipse,搞定后jsp和servlet就是按几个按钮的事
spring,jdbc什么麻烦点

【在 g*****g 的大作中提到】
: Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
: 有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
: 东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
: 有用。
: 可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
: 然后慢慢理解里面jsp, servlet这些东西。
:
: 吧?

avatar
z*e
6
sun的产品都是这样,技术上的巨人,商业上的侏儒

【在 b******y 的大作中提到】
:
: Sun的guide非常枯燥

avatar
J*B
7
好的,我有一本书叫eclipse for dummies,,不知道够用么有?后者有什么推荐??

【在 z****e 的大作中提到】
: sun的产品都是这样,技术上的巨人,商业上的侏儒
avatar
g*g
8
我曾经试图读它的guide学ejb,没学会。后来工作中要用,
赶鸭子上架,不懂的地方google一下,就整明白了。它的
guide当个reference凑活,要一步步跟太难了。

【在 b******y 的大作中提到】
:
: Sun的guide非常枯燥

avatar
g*g
9
这个还有点用,eclipse就是个编辑器,其实都不用学。
不过你花几天时间看看书,熟悉一下也是好的。

【在 J**B 的大作中提到】
: 好的,我有一本书叫eclipse for dummies,,不知道够用么有?后者有什么推荐??
avatar
z*e
10
我也是最早从sun的东西开始看ejb
发现压根看不懂,ibm那个websphere也好不到哪去
最后是通过eclipse的插件连猜带蒙弄懂的
回头看,觉得他们把ejb解释得太复杂了
要用的话,压根不需要知道那么多,而且当时把ejb搞得那么复杂
压根就没怎么大规模推广,很多项目望而却步了,哪怕是local接口一样没什么人用
在sun的朋友偷偷告诉我,他们自己都不用ejb
尤其是entitybean和stateful两个大鸡肋,莫名其妙的玩意
导致spring和hibernate的大规模流行,3.0出来之后,开始依赖annotation,而非接口
神马的
现在看,spring和ejb越来越像了,更不用说entitybean 3.0本来就是hibernate那个
Gavin King主导的产物
spring+hibernate跟ejb开始殊途同归了
本来spring和hibernate就是看不惯ejb2.0的产物,结果大规模流行之后开始融入ejb3.
0
Rod Johnson和Gavin King都是australian
一个在悉尼,一个在墨尔本,rod有一个音乐的phd学位

【在 g*****g 的大作中提到】
: 我曾经试图读它的guide学ejb,没学会。后来工作中要用,
: 赶鸭子上架,不懂的地方google一下,就整明白了。它的
: guide当个reference凑活,要一步步跟太难了。

avatar
t*r
11
verycd,搜中国人民银行企培视频
发包子给我把:)
avatar
B*g
12
抬头看看谁死了?

【在 t******r 的大作中提到】
: verycd,搜中国人民银行企培视频
: 发包子给我把:)

avatar
t*r
13
?

【在 B*****g 的大作中提到】
: 抬头看看谁死了?
avatar
B*g
14
传智播客创始人张孝祥

【在 t******r 的大作中提到】
: ?
avatar
n*e
15
可以学Groovy/Grails instead. Much easier.
avatar
T*g
16
spring roo , appfuse 都是叫你快速构建的

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
s*d
17
个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。
avatar
t*e
18
这位靠谱,楼主明显还是个新手,连最基本的原理都不懂,还是从最基本的开始学吧。
路漫漫其修远兮,有年头要学的。

deploy

【在 s****d 的大作中提到】
: 个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
: 白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
: spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
: 这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
: 几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
: 到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。

avatar
u*e
19
先core/standard java, 再JSP/Servlet (有了JSTL, EL, JSP也挺干净), 最后边做项
目边学各种Java EE framework.
直接Java EE, 起步还好, 不过最终不扎实, 半吊子.
avatar
u*e
20
"那个又臭又长的JSP..."
其实JSP早就是HTML + Tags + EL. 现在, 如果写JSP, 里面应该看不到Java code了.
Web desinger们懂得.

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
t*e
21
差不多。现在的JSP就是xhtml page了。我估计楼主html都不懂的。

【在 u*e 的大作中提到】
: "那个又臭又长的JSP..."
: 其实JSP早就是HTML + Tags + EL. 现在, 如果写JSP, 里面应该看不到Java code了.
: Web desinger们懂得.
:
: 吧?

avatar
z*s
22
我也开始这么觉得了。
我是菜鸟,一直有个疑问,用struts,spring等等东西,都要在web.xml里面配置<
servlet>,这个servlet到底是啥玩意?离了servlet,struts/spring是不是都进不来了?
谢谢指点。

deploy

【在 s****d 的大作中提到】
: 个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
: 白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
: spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
: 这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
: 几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
: 到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。

avatar
s*s
23
把这个两个例子调通spring就基本上入门了
http://www.iteye.com/topic/1119744
http://www.iteye.com/topic/1081739

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
s*d
24
俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个
子路径,那么请把这个用户请求转交给我的这个WAR文件里面包含的servlet来处理。
当然这个子路径 (context path)可以是你任意的指定的, /myreport只是一个例子而
已。
然后我们看一下浏览器里,地址条中,当用户敲入 http://foo.com/myreport?id=sungod&type=favorite_boards 这样一个URL的时候, 运行在foo.com上面的j2ee容器首先接收到这个URL请求,然后再仔细一看,这里面的路径包含了/myreport, 然后再一查内部的配置表,就知道这个请求只有你上面写的那个servlt才能处理的了。 这个时候容器就把/myreport后面那些乱七八糟的参数 (id, type等等,可以是任意名字和数目)都放进一个叫做 ServletRequest的临时对象里,然后把这个对象作为第一个参数调用你上面写的那个servlet的doGet()函数。
然后回到这个doGet()函数。 这里面干些啥事情完全取决于你. 你可以连到后端数据库
去查sungod最喜欢的版面是哪些,也可以做很复杂的事情 (比如strut或者JSF这些框
架,它自带的servlet里面就会去处理很多跟当前页面相关的信息)。 J2EE容器唯一关
心的,是你最后往它给你准备好的 ServletResponse对象里写了啥东西 (这个
ServletResponse呢,就是容器在调用你的doGet时传进去的第二个参数)。比如,你可
以在查询完数据库之后,把记录格式化成HTML 字符串然后塞进这个ServletResponse对
象里。 当你的doGet()函数返回之后,控制权就又回到了J2EE 容器; 一般来说这个时
候它就会把你塞在ServletResponse对象里的响应直接发回给浏览器,让浏览器更新相
应的页面。。。

了?

【在 z***s 的大作中提到】
: 我也开始这么觉得了。
: 我是菜鸟,一直有个疑问,用struts,spring等等东西,都要在web.xml里面配置<
: servlet>,这个servlet到底是啥玩意?离了servlet,struts/spring是不是都进不来了?
: 谢谢指点。
:
: deploy

avatar
z*s
25
哇,大牛随便一说就洋洋洒洒啊
好文,一下子不完全懂,我需要慢慢消化
太谢谢啦!
如果再有迷津还望继续指点哈

java

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
w*s
27
tomcat不是目录吗?通常放war进去,默认也是展开的

java

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
z*s
28
是不是可以理解为struts也是servlet的一种。任何j2ee扩展都是基于servlet的接口,哪怕
庞大到spring。 比如想用struts,url只能是*.do(或者别的被struts定义的),所有
*.do都要被actionservlet这个servlet接收。而原始的servlet要写不同的servlet接收
不同的request。
我用struts,spring都是jar,用flex的时候用了war。
另外,web.xml不是在容器里面吗?jar里面怎么也有web.xml?

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
z*s
29
我也没完全搞懂到底啥是jsp。
到底什么是动态网页?我看了半天wiki也没有看明白。
比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
servlet也可以吗?
client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
本而已。jsp剔除掉html的成分之外还有啥?

【在 t*******e 的大作中提到】
: 差不多。现在的JSP就是xhtml page了。我估计楼主html都不懂的。
avatar
z*s
30
尝试回答一下我刚才的问题,javascript不能查数据库,因为js完全在client上,只能
跟web server打交道,而web server不会访问数据库。如果加入java/C等语言到web
server里面,那web server就成了web app container,而不是一般意义的web server
了。
说的不对的话劳高人点拨一下。
================================
================================
update:我已经觉得不太对了。js能访问web server,也应该可以访问app server吧。html都能
访问servlet,js应该也可以吧。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
t*e
31
动态网页我的理解就是有变量,值即时从数据库提取。
client-side scripting只能在browser里运行。用的是客户端的资源。所有和
serversidescrpiting完全不同。
jsp要编译成servlet(Java program)才能与数据库交互。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
s*d
32
差不多吧,struts是一个开发web 应用的框架,这个框架本身确实是用servlet技术 (
和J2EE 提供的其他支撑服务)实现的,只不过对于struts用户来说不需要知道这些细
节。 web.xml是跟着web app走的,一般来说web app都是打包成WAR (或者 EAR);如
果你的项目里用JAR,可能你的模块只是最终组装成WAR的一部分吧,我猜的话。

,哪怕

【在 z***s 的大作中提到】
: 是不是可以理解为struts也是servlet的一种。任何j2ee扩展都是基于servlet的接口,哪怕
: 庞大到spring。 比如想用struts,url只能是*.do(或者别的被struts定义的),所有
: *.do都要被actionservlet这个servlet接收。而原始的servlet要写不同的servlet接收
: 不同的request。
: 我用struts,spring都是jar,用flex的时候用了war。
: 另外,web.xml不是在容器里面吗?jar里面怎么也有web.xml?
:
: WAR

avatar
s*d
33
jsp 就是 servlet; 你在浏览器里输入一个URL http://foo.com/getReport.jsp, J2EE server拿到这个请求后第一步就是先把这个 getReport.jsp 文件转换成一个相应的 servlet class (叫 __getReport.java 之类的名字),然后编译、发布、运行这个自动生成的servlet class. jsp URL里带的参数,比如 http://foo.com/getReport.jsp?id=sungod&report=favoriteBoards 中的 id 和 report, 都会被传进自动生成的servlet.doGet()函数里去。
动态网页俺的理解就是页面的内容不是被HTML designer写死了的,而是可以根据用户
的身份信息以及在页面上点击各种按钮、链接的状况实时显示相应的内容。这些动态内
容一般来说是从数据库里实时查询出来的。
动态网页本身可以用很多手段实现,并不是j2ee或者servlet独家专利; asp, jsp/
servlet + html/javascript, php + html/javascript 等等都可以做到。。。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
s*d
34
你至少还是明白web server 和 web app server的区别的 :) web server说白了就是
apache httpd server; web app server呢就是加强版的J2EE 容器。 一般来说大的商
用网站都是 web server 在DMZ (防火墙)之外,提供交通流量控制、负载平衡和第一层
安全保护 (过滤掉恶意请求等等),然后把用户请求 (可能来自用户在浏览器地址条
里的输入,也可能是用户当前页面里的javaScript发起的请求)根据URL pattern以及
负载平衡规则转发给DMZ后面的某个web app server去从数据库里提取需要的内容。 当
然发布静态文件也是 web server的强项。
归根结底, client side 的javascript 跟后台打交道都是通过http 协议的;目前市
场上所有的j2ee 容器 (tomcat, weblogic 等等)都自带http 协议的实现,所以
javascript 完全可以直接和这些j2ee 容器通过ajax之类的机制打交道 (在没有web
server的情况下)。

server
。html都能

【在 z***s 的大作中提到】
: 尝试回答一下我刚才的问题,javascript不能查数据库,因为js完全在client上,只能
: 跟web server打交道,而web server不会访问数据库。如果加入java/C等语言到web
: server里面,那web server就成了web app container,而不是一般意义的web server
: 了。
: 说的不对的话劳高人点拨一下。
: ================================
: ================================
: update:我已经觉得不太对了。js能访问web server,也应该可以访问app server吧。html都能
: 访问servlet,js应该也可以吧。
:

avatar
r*s
35
是,
简单一点说就是jsp是server端执行的Java code,
javascript是browser执行的,
跟Java code没关系。
所以javascript要取数据还是要server端的支持的,
通过servlet/jsp/asp/php/Ajax.

【在 s****d 的大作中提到】
: jsp 就是 servlet; 你在浏览器里输入一个URL http://foo.com/getReport.jsp, J2EE server拿到这个请求后第一步就是先把这个 getReport.jsp 文件转换成一个相应的 servlet class (叫 __getReport.java 之类的名字),然后编译、发布、运行这个自动生成的servlet class. jsp URL里带的参数,比如 http://foo.com/getReport.jsp?id=sungod&report=favoriteBoards 中的 id 和 report, 都会被传进自动生成的servlet.doGet()函数里去。
: 动态网页俺的理解就是页面的内容不是被HTML designer写死了的,而是可以根据用户
: 的身份信息以及在页面上点击各种按钮、链接的状况实时显示相应的内容。这些动态内
: 容一般来说是从数据库里实时查询出来的。
: 动态网页本身可以用很多手段实现,并不是j2ee或者servlet独家专利; asp, jsp/
: servlet + html/javascript, php + html/javascript 等等都可以做到。。。
:
: 外。

avatar
J*B
36
自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?
avatar
w*s
37
有本书叫
JBoss at Work: A Practical Guide
http://shop.oreilly.com/product/9780596007348.do
内容有些老了,不过可以了解j2ee

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
g*g
38
Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
有用。
可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
然后慢慢理解里面jsp, servlet这些东西。

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
b*y
39

Sun的guide非常枯燥

【在 g*****g 的大作中提到】
: Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
: 有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
: 东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
: 有用。
: 可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
: 然后慢慢理解里面jsp, servlet这些东西。
:
: 吧?

avatar
z*e
40
那要看什么样的hello world了
如果是tomcat上jsp的hello world
eclipse的向导一分钟就搞定了,只要eclipse能找到tomcat
估计楼主连eclipse都还没搞定吧,现在说spring和jboss什么都太早了
先搞定eclipse,搞定后jsp和servlet就是按几个按钮的事
spring,jdbc什么麻烦点

【在 g*****g 的大作中提到】
: Java的服务器配置确实比较复杂,新手往往几天连HelloWorld都跑不出来。
: 有一些基于eclipse的maven项目,可以把这些全弄好。然后往上慢慢添
: 东西,就比较容易一些。Sun上面的guide,不是给新手看的,学了也不一定
: 有用。
: 可以考虑买本spring in action,把一个简单的spring MVC web应用跑起来,
: 然后慢慢理解里面jsp, servlet这些东西。
:
: 吧?

avatar
z*e
41
sun的产品都是这样,技术上的巨人,商业上的侏儒

【在 b******y 的大作中提到】
:
: Sun的guide非常枯燥

avatar
J*B
42
好的,我有一本书叫eclipse for dummies,,不知道够用么有?后者有什么推荐??

【在 z****e 的大作中提到】
: sun的产品都是这样,技术上的巨人,商业上的侏儒
avatar
g*g
43
我曾经试图读它的guide学ejb,没学会。后来工作中要用,
赶鸭子上架,不懂的地方google一下,就整明白了。它的
guide当个reference凑活,要一步步跟太难了。

【在 b******y 的大作中提到】
:
: Sun的guide非常枯燥

avatar
g*g
44
这个还有点用,eclipse就是个编辑器,其实都不用学。
不过你花几天时间看看书,熟悉一下也是好的。

【在 J**B 的大作中提到】
: 好的,我有一本书叫eclipse for dummies,,不知道够用么有?后者有什么推荐??
avatar
z*e
45
我也是最早从sun的东西开始看ejb
发现压根看不懂,ibm那个websphere也好不到哪去
最后是通过eclipse的插件连猜带蒙弄懂的
回头看,觉得他们把ejb解释得太复杂了
要用的话,压根不需要知道那么多,而且当时把ejb搞得那么复杂
压根就没怎么大规模推广,很多项目望而却步了,哪怕是local接口一样没什么人用
在sun的朋友偷偷告诉我,他们自己都不用ejb
尤其是entitybean和stateful两个大鸡肋,莫名其妙的玩意
导致spring和hibernate的大规模流行,3.0出来之后,开始依赖annotation,而非接口
神马的
现在看,spring和ejb越来越像了,更不用说entitybean 3.0本来就是hibernate那个
Gavin King主导的产物
spring+hibernate跟ejb开始殊途同归了
本来spring和hibernate就是看不惯ejb2.0的产物,结果大规模流行之后开始融入ejb3.
0
Rod Johnson和Gavin King都是australian
一个在悉尼,一个在墨尔本,rod有一个音乐的phd学位

【在 g*****g 的大作中提到】
: 我曾经试图读它的guide学ejb,没学会。后来工作中要用,
: 赶鸭子上架,不懂的地方google一下,就整明白了。它的
: guide当个reference凑活,要一步步跟太难了。

avatar
t*r
46
verycd,搜中国人民银行企培视频
发包子给我把:)
avatar
B*g
47
抬头看看谁死了?

【在 t******r 的大作中提到】
: verycd,搜中国人民银行企培视频
: 发包子给我把:)

avatar
t*r
48
?

【在 B*****g 的大作中提到】
: 抬头看看谁死了?
avatar
B*g
49
传智播客创始人张孝祥

【在 t******r 的大作中提到】
: ?
avatar
n*e
50
可以学Groovy/Grails instead. Much easier.
avatar
T*g
51
spring roo , appfuse 都是叫你快速构建的

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
s*d
52
个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。
avatar
t*e
53
这位靠谱,楼主明显还是个新手,连最基本的原理都不懂,还是从最基本的开始学吧。
路漫漫其修远兮,有年头要学的。

deploy

【在 s****d 的大作中提到】
: 个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
: 白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
: spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
: 这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
: 几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
: 到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。

avatar
u*e
54
先core/standard java, 再JSP/Servlet (有了JSTL, EL, JSP也挺干净), 最后边做项
目边学各种Java EE framework.
直接Java EE, 起步还好, 不过最终不扎实, 半吊子.
avatar
u*e
55
"那个又臭又长的JSP..."
其实JSP早就是HTML + Tags + EL. 现在, 如果写JSP, 里面应该看不到Java code了.
Web desinger们懂得.

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
t*e
56
差不多。现在的JSP就是xhtml page了。我估计楼主html都不懂的。

【在 u*e 的大作中提到】
: "那个又臭又长的JSP..."
: 其实JSP早就是HTML + Tags + EL. 现在, 如果写JSP, 里面应该看不到Java code了.
: Web desinger们懂得.
:
: 吧?

avatar
z*s
57
我也开始这么觉得了。
我是菜鸟,一直有个疑问,用struts,spring等等东西,都要在web.xml里面配置<
servlet>,这个servlet到底是啥玩意?离了servlet,struts/spring是不是都进不来了?
谢谢指点。

deploy

【在 s****d 的大作中提到】
: 个人感觉学J2EE还是从servlet入手比较好吧;把servlet的概念和作用搞清楚了就会明
: 白最初sun为啥要搞j2ee了;其他东西我认为都是在上面堆积扩展而已。
: spring mvc, roo, 还有什么eclipse插件都不是主要的,而且没搞清楚servlet之前搞
: 这些东西只会更迷糊。。。 所以我建议找本jsp/servlet的入门书或者tutorial,写
: 几个简单的servlet,编译打包成war文件 (顺便了解下WAR里面的布局),手工deploy
: 到tomcat里运行,把这整个流程弄清楚了,再慢慢去琢磨那些花哨的东西。

avatar
s*s
58
把这个两个例子调通spring就基本上入门了
http://www.iteye.com/topic/1119744
http://www.iteye.com/topic/1081739

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
s*d
59
俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个
子路径,那么请把这个用户请求转交给我的这个WAR文件里面包含的servlet来处理。
当然这个子路径 (context path)可以是你任意的指定的, /myreport只是一个例子而
已。
然后我们看一下浏览器里,地址条中,当用户敲入 http://foo.com/myreport?id=sungod&type=favorite_boards 这样一个URL的时候, 运行在foo.com上面的j2ee容器首先接收到这个URL请求,然后再仔细一看,这里面的路径包含了/myreport, 然后再一查内部的配置表,就知道这个请求只有你上面写的那个servlt才能处理的了。 这个时候容器就把/myreport后面那些乱七八糟的参数 (id, type等等,可以是任意名字和数目)都放进一个叫做 ServletRequest的临时对象里,然后把这个对象作为第一个参数调用你上面写的那个servlet的doGet()函数。
然后回到这个doGet()函数。 这里面干些啥事情完全取决于你. 你可以连到后端数据库
去查sungod最喜欢的版面是哪些,也可以做很复杂的事情 (比如strut或者JSF这些框
架,它自带的servlet里面就会去处理很多跟当前页面相关的信息)。 J2EE容器唯一关
心的,是你最后往它给你准备好的 ServletResponse对象里写了啥东西 (这个
ServletResponse呢,就是容器在调用你的doGet时传进去的第二个参数)。比如,你可
以在查询完数据库之后,把记录格式化成HTML 字符串然后塞进这个ServletResponse对
象里。 当你的doGet()函数返回之后,控制权就又回到了J2EE 容器; 一般来说这个时
候它就会把你塞在ServletResponse对象里的响应直接发回给浏览器,让浏览器更新相
应的页面。。。

了?

【在 z***s 的大作中提到】
: 我也开始这么觉得了。
: 我是菜鸟,一直有个疑问,用struts,spring等等东西,都要在web.xml里面配置<
: servlet>,这个servlet到底是啥玩意?离了servlet,struts/spring是不是都进不来了?
: 谢谢指点。
:
: deploy

avatar
z*s
60
哇,大牛随便一说就洋洋洒洒啊
好文,一下子不完全懂,我需要慢慢消化
太谢谢啦!
如果再有迷津还望继续指点哈

java

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
w*s
62
tomcat不是目录吗?通常放war进去,默认也是展开的

java

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
z*s
63
是不是可以理解为struts也是servlet的一种。任何j2ee扩展都是基于servlet的接口,哪怕
庞大到spring。 比如想用struts,url只能是*.do(或者别的被struts定义的),所有
*.do都要被actionservlet这个servlet接收。而原始的servlet要写不同的servlet接收
不同的request。
我用struts,spring都是jar,用flex的时候用了war。
另外,web.xml不是在容器里面吗?jar里面怎么也有web.xml?

WAR

【在 s****d 的大作中提到】
: 俺就从最简单最基础的层面上随便说说哈。 servlet 其实就是一个谁都可以写的java
: class (当然了,实现的时候需要implement J2EE的那个 HttpServlet interface). 这
: 个class里面最重要的就是一个 doGet() 函数 (好吧,其实还有一个doPost,不过作用
: 是类似的)。 这个函数有哪些参数,应该干啥,下面再说。
: 然后写完这个 servlet class,编译好了,你就可以往任何一个j2ee容器里发布了;这
: 个 J2ee 容器可以是tomcat, jboss, jetty, 也可以是 websphere, webLogic 等等。
: 但是这些容器一般是只接受 WAR 或者 EAR 格式的封装好的 servlet的。 那么这个WAR
: 文件到底是啥呢? 这个其实就是一个类似于JAR的压缩文件,里面除了包含你实现的
: servlet class, 最主要的就是一个叫web.xml 的配置文件。 这个web.xml配置文件最
: 主要的作用,是告诉j2ee 容器: 如果用户访问的URL里面包含了 /myreport 这么一个

avatar
z*s
64
我也没完全搞懂到底啥是jsp。
到底什么是动态网页?我看了半天wiki也没有看明白。
比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
servlet也可以吗?
client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
本而已。jsp剔除掉html的成分之外还有啥?

【在 t*******e 的大作中提到】
: 差不多。现在的JSP就是xhtml page了。我估计楼主html都不懂的。
avatar
z*s
65
尝试回答一下我刚才的问题,javascript不能查数据库,因为js完全在client上,只能
跟web server打交道,而web server不会访问数据库。如果加入java/C等语言到web
server里面,那web server就成了web app container,而不是一般意义的web server
了。
说的不对的话劳高人点拨一下。
================================
================================
update:我已经觉得不太对了。js能访问web server,也应该可以访问app server吧。html都能
访问servlet,js应该也可以吧。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
t*e
66
动态网页我的理解就是有变量,值即时从数据库提取。
client-side scripting只能在browser里运行。用的是客户端的资源。所有和
serversidescrpiting完全不同。
jsp要编译成servlet(Java program)才能与数据库交互。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
s*d
67
差不多吧,struts是一个开发web 应用的框架,这个框架本身确实是用servlet技术 (
和J2EE 提供的其他支撑服务)实现的,只不过对于struts用户来说不需要知道这些细
节。 web.xml是跟着web app走的,一般来说web app都是打包成WAR (或者 EAR);如
果你的项目里用JAR,可能你的模块只是最终组装成WAR的一部分吧,我猜的话。

,哪怕

【在 z***s 的大作中提到】
: 是不是可以理解为struts也是servlet的一种。任何j2ee扩展都是基于servlet的接口,哪怕
: 庞大到spring。 比如想用struts,url只能是*.do(或者别的被struts定义的),所有
: *.do都要被actionservlet这个servlet接收。而原始的servlet要写不同的servlet接收
: 不同的request。
: 我用struts,spring都是jar,用flex的时候用了war。
: 另外,web.xml不是在容器里面吗?jar里面怎么也有web.xml?
:
: WAR

avatar
s*d
68
jsp 就是 servlet; 你在浏览器里输入一个URL http://foo.com/getReport.jsp, J2EE server拿到这个请求后第一步就是先把这个 getReport.jsp 文件转换成一个相应的 servlet class (叫 __getReport.java 之类的名字),然后编译、发布、运行这个自动生成的servlet class. jsp URL里带的参数,比如 http://foo.com/getReport.jsp?id=sungod&report=favoriteBoards 中的 id 和 report, 都会被传进自动生成的servlet.doGet()函数里去。
动态网页俺的理解就是页面的内容不是被HTML designer写死了的,而是可以根据用户
的身份信息以及在页面上点击各种按钮、链接的状况实时显示相应的内容。这些动态内
容一般来说是从数据库里实时查询出来的。
动态网页本身可以用很多手段实现,并不是j2ee或者servlet独家专利; asp, jsp/
servlet + html/javascript, php + html/javascript 等等都可以做到。。。

外。

【在 z***s 的大作中提到】
: 我也没完全搞懂到底啥是jsp。
: 到底什么是动态网页?我看了半天wiki也没有看明白。
: 比如根据用户输入id来查询数据库,jsp/asp都可以,javascript可以吗?html+
: servlet也可以吗?
: client-side scripting和server-side scripting有啥区别?除了跑在不同的side之外。
: 有种说法是servlet就是jsp,我觉得servlet就是java,只不过可以println出来html文
: 本而已。jsp剔除掉html的成分之外还有啥?

avatar
s*d
69
你至少还是明白web server 和 web app server的区别的 :) web server说白了就是
apache httpd server; web app server呢就是加强版的J2EE 容器。 一般来说大的商
用网站都是 web server 在DMZ (防火墙)之外,提供交通流量控制、负载平衡和第一层
安全保护 (过滤掉恶意请求等等),然后把用户请求 (可能来自用户在浏览器地址条
里的输入,也可能是用户当前页面里的javaScript发起的请求)根据URL pattern以及
负载平衡规则转发给DMZ后面的某个web app server去从数据库里提取需要的内容。 当
然发布静态文件也是 web server的强项。
归根结底, client side 的javascript 跟后台打交道都是通过http 协议的;目前市
场上所有的j2ee 容器 (tomcat, weblogic 等等)都自带http 协议的实现,所以
javascript 完全可以直接和这些j2ee 容器通过ajax之类的机制打交道 (在没有web
server的情况下)。

server
。html都能

【在 z***s 的大作中提到】
: 尝试回答一下我刚才的问题,javascript不能查数据库,因为js完全在client上,只能
: 跟web server打交道,而web server不会访问数据库。如果加入java/C等语言到web
: server里面,那web server就成了web app container,而不是一般意义的web server
: 了。
: 说的不对的话劳高人点拨一下。
: ================================
: ================================
: update:我已经觉得不太对了。js能访问web server,也应该可以访问app server吧。html都能
: 访问servlet,js应该也可以吧。
:

avatar
r*s
70
是,
简单一点说就是jsp是server端执行的Java code,
javascript是browser执行的,
跟Java code没关系。
所以javascript要取数据还是要server端的支持的,
通过servlet/jsp/asp/php/Ajax.

【在 s****d 的大作中提到】
: jsp 就是 servlet; 你在浏览器里输入一个URL http://foo.com/getReport.jsp, J2EE server拿到这个请求后第一步就是先把这个 getReport.jsp 文件转换成一个相应的 servlet class (叫 __getReport.java 之类的名字),然后编译、发布、运行这个自动生成的servlet class. jsp URL里带的参数,比如 http://foo.com/getReport.jsp?id=sungod&report=favoriteBoards 中的 id 和 report, 都会被传进自动生成的servlet.doGet()函数里去。
: 动态网页俺的理解就是页面的内容不是被HTML designer写死了的,而是可以根据用户
: 的身份信息以及在页面上点击各种按钮、链接的状况实时显示相应的内容。这些动态内
: 容一般来说是从数据库里实时查询出来的。
: 动态网页本身可以用很多手段实现,并不是j2ee或者servlet独家专利; asp, jsp/
: servlet + html/javascript, php + html/javascript 等等都可以做到。。。
:
: 外。

avatar
w*u
71
怎么还是jsp/servlet
spring没引入啊
avatar
p*t
72
恩,我也纳闷呢,看一个网站,后缀都是.jsp,但是看source code,都象是javascript,
我还以为后缀该改为.js. 当然,我知道jsp在server side,所以我看到的source code
其实不是jsp code.

【在 u*e 的大作中提到】
: "那个又臭又长的JSP..."
: 其实JSP早就是HTML + Tags + EL. 现在, 如果写JSP, 里面应该看不到Java code了.
: Web desinger们懂得.
:
: 吧?

avatar
E*y
73
jsp在backend,source code肯定看不到

javascript,
code

【在 p*********t 的大作中提到】
: 恩,我也纳闷呢,看一个网站,后缀都是.jsp,但是看source code,都象是javascript,
: 我还以为后缀该改为.js. 当然,我知道jsp在server side,所以我看到的source code
: 其实不是jsp code.

avatar
J*B
74
webContent/web-inf/下面有 *.jsp,*.html,配置文件web.xml,face-cfg.xml,tile-def
.xml(front-end 配置文件)都放这下面。src/下是*.java.包括持久化类,service(
business logic),DAO层,*hbm.xml,uitl等,sprin的配置文件 applicationContext.
xml,dataAccessContext.xml;hibernate的配置文件hibernate-config.xml也在这里。
*.js是作为resource 放在Javascript resource下面的 。我讲的都是针对spring,
hibernate,jsf.
那位给跳上来使劲的拍拍,深化下。

【在 E*******y 的大作中提到】
: jsp在backend,source code肯定看不到
:
: javascript,
: code

avatar
p*t
75
对,我知道。

【在 E*******y 的大作中提到】
: jsp在backend,source code肯定看不到
:
: javascript,
: code

avatar
p*t
76
上课吧,自己捣鼓,很容易误入歧途。

吧?

【在 J**B 的大作中提到】
: 自己机器上装TOMCAT,其实好多概念也不清楚。好像现在意识到是把自己的机器变成个
: sever,也不知道这么理解错了么有。 在想是不是买个台式机回来,装成sever啊?看
: 那个又臭又长的JSP,整个人搞的非常frustrated,一片云里雾里。请高人们出来讲讲吧?

avatar
W*e
77
我习惯把jsp或者jspx放在web-inf下面的jsp或者jspx目录里,目录名字不重要,主要
是方便管理jsp代码文件和配置文件
src下的目录根据你用的builder可能不同,比如Maven有自己的规范,用IDE编译可以灵
活一些。
spring的xml配置文件的位置一般在web.xlm里面就指定,加载到时候就可以一个一个初
始化。如果hibernate的xml文件放在子目录,只要把子目录名加上去就可以了。所有配
置文件的加载过程都可以从web.xml找到初始点。
就model的程序组织,有人喜欢按功能管理,每个功能块里面都有相关的service, DAO
,inteface, test等等相关模块,有人喜欢把所有service都放一起,所有DAO也放一起
,具体怎么分编程人员自己安排,有些推荐的best practice,但不好在每个系统都套
用。

def
applicationContext.

【在 J**B 的大作中提到】
: webContent/web-inf/下面有 *.jsp,*.html,配置文件web.xml,face-cfg.xml,tile-def
: .xml(front-end 配置文件)都放这下面。src/下是*.java.包括持久化类,service(
: business logic),DAO层,*hbm.xml,uitl等,sprin的配置文件 applicationContext.
: xml,dataAccessContext.xml;hibernate的配置文件hibernate-config.xml也在这里。
: *.js是作为resource 放在Javascript resource下面的 。我讲的都是针对spring,
: hibernate,jsf.
: 那位给跳上来使劲的拍拍,深化下。

avatar
r*l
78
Most, if not all, Java web framework are based on servlet API, part of the
Java EE standards. The standard war structure is like this:
root
- public folders
- WEB-INF
-- web.xml
-- private resources/folders
-- "lib" folder for (3rd party) libraries
-- "classes" folder for application classes
Anything under WEB-INF cannot be accessed directly.
web.xml is the entry point of dynamic contents. Servlet engine will look for
servlet mappings and map request URLs to appropriate servlets. Most
framework ask user to put frameworks' servlets here so that they can take
control from this entry point. For example, Vaadin use it's com.vaadin.
terminal.gwt.server.ApplicationServlet class, which ultimately inherits
import javax.servlet.http.HttpServlet. Strusts, Sprint MVC, etc., are doing
the same thing with their own classes, which ultimately, inherit HttpServlet
. This makes it possible for you to use multiple frameworks in one web
application, as long as you have proper s defined and mapped. I did
this before.
JSP is just a special servlet. If the servlet engine has JSP support, it
will compile JSPs to servlet classes.
Ear, on the other hand, is much worse regarding standardization. Different application servers demand
their own packaging standard.
The term I use:
- Servlet engine: Tomcat, Jetty, etc. which provide servlet support but not
full Java EE support.
- Application server: Weblogic, GlassFish, JBoss, etc., which provide full
Java EE support. They are often Java EE certified.
All above stuff comes out of memory so there may have typos and minor
mistakes.

,哪怕

【在 z***s 的大作中提到】
: 是不是可以理解为struts也是servlet的一种。任何j2ee扩展都是基于servlet的接口,哪怕
: 庞大到spring。 比如想用struts,url只能是*.do(或者别的被struts定义的),所有
: *.do都要被actionservlet这个servlet接收。而原始的servlet要写不同的servlet接收
: 不同的request。
: 我用struts,spring都是jar,用flex的时候用了war。
: 另外,web.xml不是在容器里面吗?jar里面怎么也有web.xml?
:
: WAR

avatar
m*j
79
多谢~
请问META-INF文件夹里放的都是什么文件啊?

【在 r*****l 的大作中提到】
: Most, if not all, Java web framework are based on servlet API, part of the
: Java EE standards. The standard war structure is like this:
: root
: - public folders
: - WEB-INF
: -- web.xml
: -- private resources/folders
: -- "lib" folder for (3rd party) libraries
: -- "classes" folder for application classes
: Anything under WEB-INF cannot be accessed directly.

avatar
r*l
80
META-INF is not required in WAR. One reason you want to put a META-INF there
is to treat this WAR as a JAR. There may have other reasons but none of
them interests me.
I did something like this: package web application in a WAR together with
some bootstrap classes. The WAR will be loaded by: java -jar ***.war.
The bootstrap classes start up an embedded Jetty server and they deploy the
war file in it. I do need META-INF in this case.

【在 m*****j 的大作中提到】
: 多谢~
: 请问META-INF文件夹里放的都是什么文件啊?

avatar
m*j
81
多谢~
我说在tomcat的doc里看到这么讲META-INF
A /META-INF/context.xml file can be used to define Tomcat specific configura
tion options, such as loggers, data sources, session manager configuration a
nd more. This XML file must contain one Context element, which will be consi
dered as if it was the child of the Host element corresponding to the Host t
o which the Tomcat configuration documentation contains information on the C
ontext element.
不过在他自带的sample project里面有的根本没有这个,有的也是空的
在eclipse的project里面倒是都有这个文件夹,不过里面是个空的MANIFEST.MF文件
there
the
avatar
r*l
82
Then this is Tomcat specific. For war, I like to use generic packaging that
can fit all servlet container.

configura
a
consi
t
C

【在 m*****j 的大作中提到】
: 多谢~
: 我说在tomcat的doc里看到这么讲META-INF
: A /META-INF/context.xml file can be used to define Tomcat specific configura
: tion options, such as loggers, data sources, session manager configuration a
: nd more. This XML file must contain one Context element, which will be consi
: dered as if it was the child of the Host element corresponding to the Host t
: o which the Tomcat configuration documentation contains information on the C
: ontext element.
: 不过在他自带的sample project里面有的根本没有这个,有的也是空的
: 在eclipse的project里面倒是都有这个文件夹,不过里面是个空的MANIFEST.MF文件

avatar
m*j
83
嗯嗯 多谢啦~

that

【在 r*****l 的大作中提到】
: Then this is Tomcat specific. For war, I like to use generic packaging that
: can fit all servlet container.
:
: configura
: a
: consi
: t
: C

avatar
r*l
84
np

【在 m*****j 的大作中提到】
: 嗯嗯 多谢啦~
:
: that

avatar
S*h
85
sungod介绍的很详细了,我再给补两句,为了新手更容易理解些。毕竟自己也是由新手
过来的。
jsp确实就是servlet,但是既然有了servlet(web server里面用来处理httprequest的
对象),为什么又有jsp呢?
其实servlet本身就是一个java class, 它接受http request然后返回一段html文本。
e.g.
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println(" ");
out.println(" Hello World!");
out.println(" ");
out.println(" ");
out.println("

Hello World!

");
out.println(" ");
out.println("");
}
}
但是,如果所有的页面都这么写实在是太麻烦了,一个个html tag写的累死,还不一定
对。
于是大牛们就像怎么就可以提高开发效率,于是呢,他们想出来了jsp(java servlet
page)。其实就是html代码里面嵌入一些java代码片段,这些java代码片段多数是用来
填充textfield什么的,很简单。这样就把后台开发的逻辑和前台ui设计大致隔离开了
(MVC).
现在有了这个Html和java的私生子.jsp文件,web server的任务就是要根据这个.jsp文
件的内容,自动生成一个servlet class,就类似上面的HelloWorld。那怎么生成呢?
其实很简单,web server把.jsp文件里所有的html code都用out.println("")语句生成
,其它代码照抄(我这里说的容易,其实还是很复杂的,不过目的就是这样)。
因为就应了sungod说得那句jsp就是servlet,因为所有的jsp都被自动翻译成一java
class了。而且你自己还能看到这些被自动生成的class文件(源代码),就在tomcat安
装目录
Tomcat 7.0\work\Catalina\localhost\你的项目名称\...
e.g.
login_jsp.java 就是我的login.jsp所对应的servlet class文件~~

【在 s****d 的大作中提到】
: jsp 就是 servlet; 你在浏览器里输入一个URL http://foo.com/getReport.jsp, J2EE server拿到这个请求后第一步就是先把这个 getReport.jsp 文件转换成一个相应的 servlet class (叫 __getReport.java 之类的名字),然后编译、发布、运行这个自动生成的servlet class. jsp URL里带的参数,比如 http://foo.com/getReport.jsp?id=sungod&report=favoriteBoards 中的 id 和 report, 都会被传进自动生成的servlet.doGet()函数里去。
: 动态网页俺的理解就是页面的内容不是被HTML designer写死了的,而是可以根据用户
: 的身份信息以及在页面上点击各种按钮、链接的状况实时显示相应的内容。这些动态内
: 容一般来说是从数据库里实时查询出来的。
: 动态网页本身可以用很多手段实现,并不是j2ee或者servlet独家专利; asp, jsp/
: servlet + html/javascript, php + html/javascript 等等都可以做到。。。
:
: 外。

avatar
b*y
86

ejb现在想想都脑袋疼. 还好的是工作当中没有用过. 说到ejb, 就明白了为啥其他的
language诸如php, RoR等流行了。因为他们都很简单易上手。Sun没了,否则估计还要
搞出个啥比ejb更复杂的东东。

【在 g*****g 的大作中提到】
: 我曾经试图读它的guide学ejb,没学会。后来工作中要用,
: 赶鸭子上架,不懂的地方google一下,就整明白了。它的
: guide当个reference凑活,要一步步跟太难了。

avatar
J*B
87
是啊,是啊。 我也搞不明白EJB,好虫大侠帮我们讲解下吧。

【在 b******y 的大作中提到】
:
: ejb现在想想都脑袋疼. 还好的是工作当中没有用过. 说到ejb, 就明白了为啥其他的
: language诸如php, RoR等流行了。因为他们都很简单易上手。Sun没了,否则估计还要
: 搞出个啥比ejb更复杂的东东。

avatar
J*B
88
给我科普下EJB吧。其他几个框架我觉得还算好理解,就spring的wave开始有点困难,
EJB是看都不想往下看。

【在 g*****g 的大作中提到】
: 我曾经试图读它的guide学ejb,没学会。后来工作中要用,
: 赶鸭子上架,不懂的地方google一下,就整明白了。它的
: guide当个reference凑活,要一步步跟太难了。

avatar
g*g
89
其实ejb的思想还是传承下来了,就是实现简单多了。entity bean就是ORM,见
Hibernate. Session bean见spring。messaging bean还在用。
通常需求都是不怎么变化的,变化的是实现。

【在 J**B 的大作中提到】
: 给我科普下EJB吧。其他几个框架我觉得还算好理解,就spring的wave开始有点困难,
: EJB是看都不想往下看。

avatar
J*B
90
那个annotation是怎么回事,本来描述的东西都放在XML里。现在好像是既有annotation
又有XML.

【在 g*****g 的大作中提到】
: 其实ejb的思想还是传承下来了,就是实现简单多了。entity bean就是ORM,见
: Hibernate. Session bean见spring。messaging bean还在用。
: 通常需求都是不怎么变化的,变化的是实现。

avatar
g*g
91
To reduce the size of XML. spring doesn't use any annotatoin
in 1.x either.

annotation

【在 J**B 的大作中提到】
: 那个annotation是怎么回事,本来描述的东西都放在XML里。现在好像是既有annotation
: 又有XML.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。