V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nick2VIPUser
V2EX  ›  Java

初学 javaWeb,是从 ssh 框架学起还是直接学习 ssm?

  •  
  •   Nick2VIPUser ·
    nickliqian · 2018-02-24 17:40:16 +08:00 · 20369 次点击
    这是一个创建于 2225 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前做过爬虫和 django 项目。

    现在在学习 javaWeb 开发。

    看了一下午的 struts,也从 Eclipse 用到 IntelliJ IDEA,被复杂的配置和环境弄晕了。

    网上看说现在的项目大多数都是 ssm 和 spring-boot,要学可以直接入手 ssm。

    想问各位老哥新人是否有学习 ssh 的必要性?

    大家在 JavaWeb 方面是什么样的学习路径呢?

    另外如果有教程和实战案例推荐那就感激不尽了。

    47 条回复    2019-08-01 18:50:28 +08:00
    p2pCoder
        1
    p2pCoder  
       2018-02-24 17:46:32 +08:00   ❤️ 5
    学 Java 很容易一上来就是框架,servlet jsp 首先学好吧
    xuhaoyangx
        2
    xuhaoyangx  
       2018-02-24 17:47:34 +08:00   ❤️ 2
    servlet jsp 写个项目。
    然后在 ssm,ssh 可以以后维护老项目看
    hysys32
        3
    hysys32  
       2018-02-24 18:05:18 +08:00   ❤️ 1
    ssh 几乎没怎么用了~~~一般都是老项目。。。
    0Kelvin
        4
    0Kelvin  
       2018-02-24 19:06:53 +08:00   ❤️ 2
    为什么不坚持 python 呢,java 人太多了点吧,看看数据挖掘、机器学习不好么
    mikicomo
        5
    mikicomo  
       2018-02-24 19:13:02 +08:00   ❤️ 1
    我觉得 spring mybatis hibernate 学学好感觉基本八九不离十了= =,自己做东西用 springmvc 蛮好用的,不过要是公司用别的你也得学嘛
    pangliang
        6
    pangliang  
       2018-02-24 19:19:23 +08:00   ❤️ 2
    spring mvc 应该不是 servlet 那一套了吧?
    fumichael
        7
    fumichael  
       2018-02-24 19:41:27 +08:00   ❤️ 2
    公司还在用 struts2 开发新的项目,我自己学习 springmvc springboot,又不是一辈子都呆死在一家公司。
    Flicker
        8
    Flicker  
       2018-02-24 20:04:23 +08:00 via Android   ❤️ 1
    2 楼
    panpanpan
        9
    panpanpan  
       2018-02-24 20:10:54 +08:00 via iPhone   ❤️ 1
    2 楼的说法是对的,我司有个面试官每次面试都问 servlet,能排除掉一堆不靠谱的,尤其是培训班速成的那种。
    cyspy
        10
    cyspy  
       2018-02-24 20:16:11 +08:00 via Android   ❤️ 1
    @0Kelvin 本科数学不挂科的就已经是一小部分人了
    yinzhili
        11
    yinzhili  
       2018-02-24 20:18:32 +08:00   ❤️ 1
    我是建议研究 m 也就是 mybatis,意味着可以更多接触原生 SQL,很有好处。
    enzohobmg
        12
    enzohobmg  
       2018-02-24 20:33:04 +08:00   ❤️ 1
    好好学习 天天向上
    Nick2VIPUser
        13
    Nick2VIPUser  
    OP
       2018-02-24 22:00:20 +08:00
    @p2pCoder
    @xuhaoyangx
    @Flicker
    @panpanpan
    谢谢指路,打算先学一下 servlet jsp。
    Nick2VIPUser
        14
    Nick2VIPUser  
    OP
       2018-02-24 22:02:08 +08:00
    @0Kelvin 机器学习这块学历和专业知识要求有点高,自己差太远了。目前公司的项目主要是 Java+Python,所以学 java
    Nick2VIPUser
        15
    Nick2VIPUser  
    OP
       2018-02-24 22:04:33 +08:00
    @mikicomo 感谢,现在就是在网上一搜东西太多了,完全没有方向感
    domty
        16
    domty  
       2018-02-24 22:07:02 +08:00   ❤️ 1
    先把 j2ee 最基本的东西搞明白。
    然后把 Spring 是干嘛的搞明白。
    然后再去考虑映射层和持久化层的框架。

    开始学不用太关注细节,先把最主要的搞清楚就行。
    woscaizi
        17
    woscaizi  
       2018-02-25 00:45:54 +08:00 via iPhone   ❤️ 1
    Hibernate 应该学一学,struts2 别学了,直接 spring mvc。
    wusj
        18
    wusj  
       2018-02-25 07:33:37 +08:00 via Android   ❤️ 2
    学习 Servlets Jsp,可以看看《 Head First Servlets & JSP 》我觉得讲的通俗易懂
    zzlhr
        19
    zzlhr  
       2018-02-25 08:00:50 +08:00 via iPhone   ❤️ 1
    spring boot 大法好
    lonenol
        20
    lonenol  
       2018-02-25 08:07:38 +08:00   ❤️ 1
    现在还有人用 jsp?你们不要吓我..
    geekboy
        21
    geekboy  
       2018-02-25 08:34:34 +08:00 via Android   ❤️ 1
    @lonenol 老项目 jsp,ssh 用不是很正常吗?
    hysys32
        22
    hysys32  
       2018-02-25 08:51:54 +08:00 via iPhone   ❤️ 1
    就从 ssm 开始吧,mybatis 要好得多,spring mvc 也简单和常用很多,jsp 嘛,还是要懂点的,虽然以后一般都用 el 表达式和 freemaker
    anubiskong
        23
    anubiskong  
       2018-02-25 09:17:57 +08:00   ❤️ 2
    我能劝你别学 java 吗?
    abcbuzhiming
        24
    abcbuzhiming  
       2018-02-25 10:24:44 +08:00   ❤️ 1
    现在搞 web 的上来就是一堆框架,我说,就不能认真的去研究一下 http 再来吗
    baozijun
        25
    baozijun  
       2018-02-25 10:48:04 +08:00 via iPhone   ❤️ 1
    @abcbuzhiming servlet 搞完 http 也差不多了
    Nick2VIPUser
        26
    Nick2VIPUser  
    OP
       2018-02-25 10:57:20 +08:00
    @domty 对啊,现在就是把 javaweb 用的东西了解一下是怎么做的,以后公司上项目好给别人搭把手
    Nick2VIPUser
        27
    Nick2VIPUser  
    OP
       2018-02-25 10:57:45 +08:00
    @wusj 谢谢推荐!
    Nick2VIPUser
        28
    Nick2VIPUser  
    OP
       2018-02-25 10:58:46 +08:00
    @anubiskong 老哥能说说原因嘛?我目前学 java 主要是因为公司业务会用到 sprint-boot,所以打算对 javaweb 由浅入深的学一下。
    Nick2VIPUser
        29
    Nick2VIPUser  
    OP
       2018-02-25 11:00:23 +08:00
    @abcbuzhiming 因为之前做过 3 个 python django 的 web 项目,感觉 http 比较基本的东西应该差不多了,所以开始学框架。
    CFO
        30
    CFO  
       2018-02-25 11:00:54 +08:00 via Android   ❤️ 1
    @pangliang 不是 servlet 是什么?
    ittianyu
        31
    ittianyu  
       2018-02-25 11:12:40 +08:00   ❤️ 1
    学 java 怎么也要 6-8 个月的全职时间,一天 12 小时就差不多。我就是这样过来的,从 servlet 到 微服务。
    sonyxperia
        32
    sonyxperia  
       2018-02-25 14:00:39 +08:00   ❤️ 1
    现在 struts 和 hibernate 其实都不多了,除非老项目
    sagaxu
        33
    sagaxu  
       2018-02-25 14:26:49 +08:00 via Android   ❤️ 6
    我建议跳过 servlet,直接从 springboot 开始,熟悉之后再学点 springcloud。hibernate 完全不需要学,往上 spring-data-jpa 走起,往下有 JdbcTemplate,裸写 jdbc 也行。mybatis 和 jsp 之类也可以直接跳过,用到了再学。

    另外一条路线是异步 web,建议入 vertx 的坑,完全忽略 j2ee 那些概念,更接近 nodejs 的理念。入坑 vertx,可以完全忽略 spring,也可以继续用 spring 做 di 和配置管理。

    netty 需要好好研究一下,java 并发编程实践也要仔细读两遍,这些比 http 协议和 servlet 重要的多。
    q397064399
        34
    q397064399  
       2018-02-25 15:37:25 +08:00   ❤️ 1
    先学 并发编程,,了解常见的并发编程模型, 框架都是次要的, 转来转去 Spring 跟 Spring 相关的东西 都离不开线程池并发 AOP DI 那一套。然后了解下 Servlet, 搞清楚什么是线程安全,写 web 代码的时候 注意哪些问题, 然后找个 SSM 的简单项目搭起来,一边学习框架 一边学习 AOP 跟依赖注入 底层接口实现的相关原理跟 API,后续所有框架相关的东西 基本上都离不开这两个东西 。

    不要一开始就用 SpringBoot,Java 搞 web 确实很烦,配置很多 而且很多都是非常繁琐的东西 ,搞得学 Java 变成了学配置,但是配置还是要学的, 毕竟工作是工作,你玩不转配置,实际工作很吃亏 也很费时间,虽然学了配置不会对你编程技术提升有啥帮助,但是配置这东西 玩一下 会了,能给工作节省不少时间。

    最近打算用下 Spring Security OAuth 2,看了一堆官方文档,真是比吃屎还难受, 本来 OAuth2 就是个相当简单的东西,官方文档没给出啥好的示例,最后还是靠一些分析使用的文章搞了起来。
    rim99
        35
    rim99  
       2018-02-25 15:37:37 +08:00 via Android   ❤️ 1
    @sagaxu 我恰好就按你这个路线走过来的。不过,异步和 netty 还没开始看。其实,mybatis 用的公司挺多的,还是学一下比较好。
    q397064399
        36
    q397064399  
       2018-02-25 15:38:07 +08:00   ❤️ 1
    @pangliang #6 很抱歉 还是那套 , 核心的 DispatchServlet 就是 Servlet 的实现类
    bleaker
        37
    bleaker  
       2018-02-25 16:04:25 +08:00   ❤️ 1
    比起学框架,应该先学 web framework 要解决的是哪些问题,要解决这些问题需要做哪些工作,做这些工作需要引入哪些概念,各种框架是如何用自己的模型去抽象这些概念的,这些抽象方式的利弊各有哪些。

    理解了工具为什么被设计成这样之后,才能更好的学习工具,否则很容易被工具层的各种概念搞晕。
    weirdo
        38
    weirdo  
       2018-02-25 18:01:50 +08:00   ❤️ 1
    servlet 和 jsp 吧
    Nick2VIPUser
        39
    Nick2VIPUser  
    OP
       2018-02-25 23:06:21 +08:00
    @sagaxu 非常感谢您的答案!很有用!
    Nick2VIPUser
        40
    Nick2VIPUser  
    OP
       2018-02-25 23:09:13 +08:00
    @q397064399 您说的好详细,感激不尽!关于配置那块我的思路跟您差不多呢~
    Nick2VIPUser
        41
    Nick2VIPUser  
    OP
       2018-02-25 23:11:07 +08:00
    @bleaker 是了,我学框架的首要就是搞懂框架的各个部分分别是干什么用的,在 web 开发中处于什么样的位置,这样才能在实际开发中更快上手。
    pangliang
        42
    pangliang  
       2018-02-26 09:35:42 +08:00   ❤️ 1
    @q397064399 恩, 如果是的话, @Nick2VIPUser 我的意见不仅不要跳过 servlet , 还要从 http 协议, socket 协议这些底层去学

    不需要你特别深入, 你需要知道这些底层是什么负责什么; 然后如果没有 servlet, 你用 socket 实现一个 http server 需要怎么做; 然后有了 servlet 帮你解决了什么; 然后没有 spring 你又有什么麻烦, spring 又帮你解决了什么; 这才是新人需要学的

    那些网上所谓的 24 天学会 xxx, 一上来告诉你 什么各种 bean, xml 怎么配置, 巴拉巴拉, 你只能一脸懵逼根本无法理解
    pangliang
        43
    pangliang  
       2018-02-26 09:43:55 +08:00   ❤️ 1
    并发编程, 是从技术角度考虑怎么解决压力等问题; servlet spring 等框架从业务角度考虑怎么优雅实现 http, 实现业务等问题; 两个角度不同, 缺一不可
    Nick2VIPUser
        44
    Nick2VIPUser  
    OP
       2018-02-26 16:47:27 +08:00
    @pangliang 谢谢老哥悉心指导!
    chenhui7373
        45
    chenhui7373  
       2018-02-26 18:02:52 +08:00 via iPhone
    Core javaee
    gaocc
        46
    gaocc  
       2018-03-04 13:16:04 +08:00
    请问楼主是什么样的 java 程度,java 编程思想看过的吧,能理解个五成以上就很不错了。servlet+jsp 是入门基本不用,但主要能体现一些开发思想,对以后深入了解 spring 也很有好处,想做技术的可以看,想以后做产品的可以不看。然后单位是用 springBoot 是吧,这东西很适合新人也适合老人,但使用事感受是不一样的,新人会觉得开发好简单就是写业务,老人会去翻文档,说搞出 springboot 的团队真厉害,就靠 spring4 的 java 代码自动配置就取缔了 xml 配置。然后咔咔咔自己去模仿着写自动配置,搞出自己觉得好的项目环境。
    说这么多,其实就为了适应 springboot 大不用去花时间去额外了解什么,多看看官方的 springboot 案例就好。等自己有空闲了可以夯实下个各类基础
    PoetAndPoem
        47
    PoetAndPoem  
       2019-08-01 18:50:28 +08:00 via Android
    国内互联网用 mybatis 较多,企业级应用用 hibernate 居多
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2563 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 15:41 · PVG 23:41 · LAX 08:41 · JFK 11:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.